นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

Our Shangri-La
Ico64
Kittisakdi Choomalee

ภาควิชาเวชศาสตร์ชุมชน คณะแพทยศาสตร์ มหาวิทยาลัยสงขลานครินทร์
เครือข่าย
สมาชิก · ติดตาม: 0 · ผู้ติดตาม: 16

อ่าน: 2473
ความเห็น: 3

ก้าวย่าง ทางเดิน ลืมเลือนคืนวัน ดั้นด้นไป: เผลอ(เรอ)แบบไม่มีเสียงของ Access (๒)

ใจดีแถมให้เริ่ดไปเลย

มาต่อกันอีกบันทึกนะครับ กับเรื่องชวนปวดหัว

หลังจากที่ความพยายามในการเปิดดูชุดคำสั่งหรือ code VB ของปุ่มคำสั่งของฟอร์มในแฟ้มข้อมูล Access ผ่าน properties ของปุ่มคำสั่งทำไม่ได้แล้ว ผมก็ลองหาวิธีอื่นในการเข้าไปดู VB code

จากคำแนะนำจากข้อความที่แสดงข้อผิดพลาดเมื่อกดปุ่มคำสั่ง ทำให้ทราบว่าหากต้องการเข้าไปดู VB code ก็ให้เปิดฟอร์มนั้นขึ้นทำงานพร้อมทั้งกดปุ่ม Alt+F11 เพื่อเรียกโปรแกรม MS Vistual Basic เปิด VB code ของฟอร์มนั้น ๆ

ในรูปจะเป็นตัวอย่าง VB code ของฟอร์มจากแฟ้มข้อมูลที่สร้างจากโปรแกรม Access

เมื่อลองเรียก MS Vistual Basic ให้เปิด VB Code ของฟอร์มที่มีปัญหาพบว่า MS VB ไม่สามารถเปิด VB code ของฟอร์มที่มีปัญหาได้ เกิดการแฮงค์ค้างของโปรแกรม MS VB

และเมื่อลองทำตามข้อแนะนำจากหน้าเวปของ Microsoft เองที่แนะนำเอาไว้ว่า เนื่องจากชุดคำสั่งหรือ VB code ในฟอร์มที่มีปัญหาอาจจะอ้างอิง (reference) ถึงไลบรารี (library) ที่ไม่มีอยู่จริง ให้ยุติการอ้างอิงถึงไลบรารีที่ไม่มีอยู่จริง โดย

โดยทำการเปิด VB code ของฟอร์มที่มีปัญหาผ่านโปรแกรม MS VB แล้วให้ยกเลิกการอ้างอิงไลบรารีที่ไม่มีอยู่จริง

ท่านผู้อ่านที่รักยังจำได้ใช่ไหมครับว่า เมื่อใช้ MS VB เปิดดู VB code ของฟอร์มที่มีปัญหาก็จะทำให้โปรแกรม MS VB แฮงค์ค้าง

แต่อาการแฮงค์ค้างของ MS VB จะเป็นเฉพาะส่วนที่เป็นหน้าต่างของ VB code view หรือหน้าต่างสำหรับแสดง VB code เท่านั้น หน้าต่างอื่น ๆ ยังทำงานได้ปกติ

ดังนั้นเมื่อเปิดโปรแกรม MS VB พร้อมทั้งเรียก VB code ของฟอร์มที่มีปัญหาขึ้นมาแล้ว ให้คลิกที่เมนู Tools เลือก Reference

จะมีหน้าต่างแสดงการอ้างอิงถึงไลบรารีหรือแอฟฟลิเคชันอื่น ๆ ของฟอร์มนั้น ๆ อยู่ ให้มองหาตรงที่มีคำว่า Missing อยู่แล้วทำการยกเลิกการอ้างอิง

ดังในรูปจะเห็นว่ามีการอ้างอิงถึงไลบรารี MS Windows Common Controls 6.0 (SP6)

ผมทำการยกเลิกการอ้างอิงไลบรารีดังกล่าว (uncheck) แล้วกับมาที่หน้าต่างของ MS VB อีกครั้ง ปิด เปิดขึ้นมาใหม่ ก็ยังมีข้อความแสดงข้อผิดพลาดเช่นเดิม ไม่มีอะไรเปลี่ยนแปลง

เมื่อมาถึงจุดนี้แล้วหากจะดั้นด้นค้นหาเพียรพยายามต่อไปก็คงจะต้องลงทุนลงแรงไปมากกว่านี้ก็กะไรอยู่

ผมเลยยุติการเพียรพยายามแก้ไขแฟ้มข้อมูลที่มีปัญหา

ทางเลือกในการแก้ปัญหานี้นั้นผมมีทางเลือกอยู่แล้วครับ แต่ในครั้งแรกนั้นก็ลองพยายามแก้ไขแฟ้มข้อมูลเดิมดูก่อน เมื่อลองทำดูแล้วไม่มีวี่แววว่าจะสำเร็จก็เลยต้องกลับไปใช้ทางเลือกที่เตรียมไว้

ผมมีแฟ้มข้อมูลต้นฉบับอยู่ เพียงแต่ส่วนที่มีการปรับแต่งนิดหน่อยเมื่อไม่กี่วันผ่านมานั้น ผมไม่ได้เก็บแฟ้มข้อมูลสำรองไว้

เมื่อเปิดแฟ้มข้อมูลได้อยู่ เพียงแต่ฟังก์ชั่นต่าง ๆ ที่เขียนไว้เป็น VB code นั้นไม่ทำงาน ยังอุ่นใจได้ว่าข้อมูลทั้งหลายที่มีอยู่ในแฟ้มข้อมูลนั้นยังอยู่ ไม่หายไปไหนแน่นอน

วิธีการ

วิธีการก็คือสร้างแฟ้มข้อมูลจากโปรแกรม Access 2003 เปล่า ๆ ขึ้นมา ๑ แฟ้มข้อมูล จากนั้น นำเข้าข้อมูลที่เป็นตาราง (Table) ซึ่งเป็นส่วนที่เก็บข้อมูล จากแฟ้มข้อมูลที่เสียหายมาใส่ในแฟ้มข้อมูลเปล่าที่สร้างขึ้น

เท่านี้ก็ได้ข้อมูลทั้งหมดคืนมาแล้วครับ

ที่เหลือก็เป็น ฟอร์ม แบบสอบถาม (Query) รายงาน (report) แมโคร (macro) อันนี้ผมใช้วิธีการนำเข้า (import) มาจากแฟ้มข้อมูลเดิมที่สำรองเอาไว้ก่อนหน้านี้

เท่านี้ก็ได้ทุกอย่างครบแล้วครับ

จากนั้นทำการปรับแต่งส่วนที่แก้ไขเพิ่มเติมไปเมื่อหลายวันก่อนนิดหน่อย ทดสอบฟังก์ชันต่าง ๆ พบว่าทำงานได้ปกติ

เรียบร้อยโรงเรียนแชร์ครับ

แต่

สิ่งที่ต้องตามหาต่อไปก็คือ สิ่งต่าง ๆ เหล่านี้ เกิดขึ้นมาได้อย่างไร

ทราบไหมครับว่าเกิดขึ้นมาได้อย่างไร

เหตุเกิดจาก เครื่องคอมพิวเตอร์ที่ใช้ทำงานอยู่ของพี่เจ้าหน้าที่ที่ภาควิชาฯ เกิดไม่สบายขึ้นมาก็เลยต้องส่งไปให้ศูนย์ซ่อมเครื่องมือแพทย์จัดการรักษาซะ

ทางศูนย์ซ่อมฯ ก็ใจดีเหลือหลายจัดการติดตั้งระบบให้ใหม่ทั้งหมด และใจดีแถมติดตั้งชุดออฟฟิศให้เป็นรุ่น ๒๐๐๗

ยกลับมาที่ภาคฯ

ผู้ใช้ก็ไม่ได้สังเกต ไม่ได้จดจำ ไม่รู้ว่าหากรุ่นของออฟฟิศต่างกันก็จะทำให้ทำงานไม่ได้หรืออาจจะทำให้แฟ้มข้อมูลเสียหายได้

จัดการทำงานตามปกติ ซึ่งกระบวนการนี้ผมไม่ทราบว่ามีขั้นตอนที่เกิดขึ้นอย่างไร และพี่เจ้าหน้าที่ทำอะไรไปบ้าง

ผมเข้าใจว่าเจ้า Access 2007 นี่จัดการไปแปลงแฟ้มข้อมูลที่สร้างจากรุ่น ๒๐๐๓ ให้กลายเป็นรุ่น ๒๐๐๗ ผลที่ได้คือ ส่วนของ VB code ทั้งหมดไม่สามารถใช้งานได้ ไม่ว่าจะนำไปเปิดด้วย Access รุ่นไหนก็ตาม (๒๐๐๓, ๒๐๐๗, ๒๐๑๐)

ถ้าผมจำไม่ผิดนะครับหากแฟ้มข้อมูลที่สร้างจาก Access 97 เมื่อนำมาเปิดกับ Access 2003 นั้น VB code ยังทำงานได้อยู่ แต่จาก ๒๐๐๓ ไป ๒๐๐๗ นี่ซิครับ ตายเรียบ

ทั้งหมดที่เขียนมา ๒ บันทึกน่ะครับ ก็เขียน ๆ ให้ผู้อ่านงงเล่น ๆ กันเท่านั้นเองครับ ใจความสำคัญอยู่ในท้ายบันทึกนี้ครับ

แหมเป็นไปได้นะ

เราเอง

 

หมวดหมู่บันทึก: เรื่องทั่วไป
สัญญาอนุญาต: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
สร้าง: 21 กันยายน 2555 19:08 แก้ไข: 21 กันยายน 2555 19:08 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ: Ico24 ServiceMan, Ico24 anni, และ 3 คนอื่น.
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

เรียนท้าวแชร์ว่า ช่วงนี้เราจะเทคทีมกับ Our Shangri-La

มาหักมุมเอาตอนท้าย ปัญหาคล้ายๆ กันกับที่เจอใน VB 6.0 เมื่อเกิด MISSING คือให้ Download ส่วนที่หายไปมาเติม เช่น http://www.microsoft.com/en-us/download/details.aspx?id=10019

บางครั้งก็ช่วยได้แม้จะใช้ Office ไม่ตรง Version ก็ตามครับ

ผมลองตามไปหามาแล้วครับท่านเซอร์ แต่ไม่สำเร็จทั้งลอง browse และให้ชี้ไปยังไฟล์ที่ต้องการแล้ว ก็ยังเหมือนเดิมครับ เลยไม่ได้เขียนไว้ กลัวยาวครับ

อิอิอิ

ในไฟล์นี้มีฟอร์มอยู่ ๓ ฟอร์ม ที่ใช้งานหลัก ๆ  ๒ ฟอร์ม ส่วนอีกฟอร์มนั้น ไม่ใช้งานแต่ไม่ได้ลบทิ้งไป

เมื่อใช้ MS VB เปิดฟอร์มทั้ง ๓ พบว่า ๒ ฟอร์มที่ใช้งาน ไม่สามารถเปิดได้ (เปิดแล้วนิ่งไปนาน) ส่วนฟอร์มที่ไม่ใช้งานเปิดได้ปกติ รูปแรกในบันทึกนี้เป็นฟอร์มที่ไม่ได้ใช้งาน แต่เปิดได้ในไฟล์เดียวกันครับ

ถ้ายังไงไว้ค่อยแกะ ๆ ดูใหม่ครับ

แกะเพื่อหาแพะนะครับ

อิอิอิ

เราเอง

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 3.230.1.126
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ