Here we go again! Access 2K BUG?
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 368   3
URL.หัวข้อ / URL
Here we go again! Access 2K BUG?

มีคนถามไว้ที่ http://www.utteraccess.com/forums/showflat.php?Cat=&Board=access_2000&Number=196585&Forum=All_Forums&Words=TimK&Match=Username&Searchpage=0&Limit=25&Old=allposts&Main=196462&Search=true#Post196585

เรื่องมันมีอยู่ว่า เขาใช้ Access 2000 พัฒนาโปรแกรมอย่างต่อเนื่อง จึงมีการปรับปรุง Form อยู่เป็นประจำ พอมาถึงตอนที่จะนำไป Update ให้ผู้ใช้ต่างๆ เขาใช้วิธีส่งไฟล์ใหม่ไปให้ แต่ให้ผู้ใช้คลิกปุ่ม แล้วให้ทำการลบ Form เก่า แล้วค่อยนำ Form ตัวล่าสุดมาแทน

แต่สิ่งที่เขาเจอคือคำว่า คำว่า Name conflict with existing module.

ซึ่งถ้าลบ Form เป้าหมายโดยการคลิกที่ Form แล้วกดปุ่ม Delete จะไม่มีปัญหาดังกล่าว

แต่เขาต้องการใช้ DeleteObject method เพราะไม่ต้องการให้ผู้ใช้คลิกลบเอง

ผมได้ลองจำลองเหตุการณ์ดู โดย

1. สร้าง Form ขึ้นมาอันหนึ่ง ใส่โค้ดอะไรลงไปก็ได้ เพื่อให้มีการสร้าง Class Object ของ Form ขึ้น ซึ่งใน Access 97 เราจะไม่เห็น Class Object นี้ตอนอยู่ใน VB Editor หรือตอนที่เรากำลังเขียนโค้น

2. โอนตารางนี้ออกไปไว้ในอีกฐานข้อมูลหนึ่ง เพื่อจะนำเข้ามาใหม่

3. ใช้ DeleteObject method เพื่อลบตารางเป้าหมาย ลบได้ครับ แต่ Class Object หรือโค้ดของ Form นี้ไม่ถูกลบไปด้วยครับ

4. ลองใช้ TransferDatabase เพื่อนำ Form จากอีกฐานหนึ่งเข้ามา
Bingo เจอ Error เหมือนเขาแจ้งไว้ครับ และก็ Hang ไปเลย

ผมว่าตัวนี้เป็น Bug อีกตัวหนึ่งของ Access 2000 ครับ

นอกจากนั้นผมได้ลองกับ Access 2002 ปรากฏว่า ทำได้ครับ แต่ยังมีบักเล็กน้อย ผมแก้ไขโดยการใช้ Rename method แทน แต่ไม่ได้น่าเกลียดเหมือน Access 2000

ผมใช้โค้ดนี้ครับ

code:--------------------------------------------------------------------------------
Sub TestDel()
DoCmd.DeleteObject acForm, "Form1"
End Sub

Sub ImpNow()
DoCmd.TransferDatabase acImport, "Microsoft Access", _
CurrentProject.Path & "\testbugs2xp.mdb", acForm, "Form1", "form3"
End Sub

Sub test()
DoCmd.Rename "Form1", acForm, "Form3"
End Sub
--------------------------------------------------------------------------------

3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R02393
เรียน อ.สุภาพ
ผมใช้ ACCESS2000 ก็เจอปัญหานี้ มาตั้งแต่ 1/10/2001
1. เมื่อลบ form แล้ว เจอ Bug เหมือนที่ อ.แจ้ง แต่ผมไม่ทราบว่าเป็น Bug คิดว่าคงทำอะไรผิด เสียเวลาไปนานพอดู
2. เจอ Bug ตัวนี้ เป็นบางครั้ง คือไม่ทุกครั้งที่ทำ พออ่านกระทู้ของ อ. ถึงกระจ่าง

วิธีแก้ส่วนตัวที่ผมใช้อยู่แต่เดิมนะครับ
ผมใช้วิธีเปิด db1 ใหม่ขึ้นมา 1 ตัวแล้ว
1. Link table เหมือนเดิม
2. Import -> Query, Form, Report, Module และทุกอย่างของโปรแกรมเดิมเข้ามาที่ db1 ใหม่นี้
3. ลบ db เก่าทิ้ง

ผมจะลองวิธีใหม่ของ อ. ดูนะครับ

ขอบคุณครับ

2 @R02400
ทาง MS เขาแนะนำให้ติดตั้ง SP3 ของ Office 2000 ก็จะหายครับ

แต่ผมยังไม่ได้ลอง

ให้ลองอ่านบทความเกี่ยวกับเรื่องนี้ที่ http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b304548 ดูครับ
3 @R02427
ขอบคุณ อ.สุภาพครับ พอรู้รายละเอียดแล้ว ก็สบายใจครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0601s