เมื่อปิดโปรแกรมแล้วเปิดใหม่ เปิด Report ไม่ได้
กระทู้เก่าบอร์ด อ.Yeadram

 1,293   5
URL.หัวข้อ / URL
เมื่อปิดโปรแกรมแล้วเปิดใหม่ เปิด Report ไม่ได้

ผมสร้าง Report ตัวหนึ่ง ใช้ได้ปกติ แต่เมื่อผมปิดโปรแกรมไปแล้ว
พอเปิดขึ้นมาใหม่ จะเปิดไม่ได้ จะติด Runtime Error 2501 เมื่อ Debug
เข้าไปดู จะเห็นแถบเหลืองที่ คำสั่ง Open Report ผมลองเข้าไปดูใน Query
ก็เปิดได้ปกติ แล้วลองเปิด Report ใหม่ ก็เปิดได้หลักจากเข้าไปเปิด Query
ก็จะใช้งานได้ปกติ แต่เมื่อปิดโปรแกรมไปแล้ว เปิดโปรแกรมขึ้นมาใหม่
จะติดเหมือนเดิม ไม่ทราบว่าเกิดอะไรขึ้น มีแนวทางให้ผมแก้ไขมั้ยครับ

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

1 @R24238
ลอง decompile ดูยังครับ
2 @R24240
อ.สันติสุขก็มักจะถามคำถามผมแบบนี้เลยครับ
จริงๆ คือ ทำไม่เป็น ผมลองเข้าไปที่หน้า โมดูล
ไปที่แทป ดีบัก แล้วเลือก คอมไพ มันก็มักจะไปติด
ตรงที่ไม่เกี่ยวกับที่ผมมีปัญหา อย่างคราวนี้เป็นต้น
ผมทำหลังจากที่ อ.บอก มันก็กลับมาใช้ได้ งง เหมือนกันครับ
3 @R24241
Compile เป็นตัวแปลภาษารูปแบบหนึ่ง มีหน้าที่หลักคือการแปลภาษาโปรแกรมที่มนุษย์เขียนขึ้นไปเป็น ภาษาเครื่องที่คอมพิวเตอร์เข้าใจและทำตามได้ ด้วยคอมไพเลอร์ของภาษานั้นๆ ซึ่งหลักการที่คอมไพเลอร์ใช้ เรียกว่า คอมไพล์ (compile) โดยจะทำการอ่านโปรแกรมภาษาทั้งหมดตั้งแต่ต้นจนจบ แล้วทำการแปลผลทีเดียว

Decompile คือการบอกให้ MS Access ละทิ้งโค้ด VBA ที่ทำการคอมไพล์ ไม่ใช่คำสั่งต้นฉบับภาษาที่เราเขียนขึ้น แต่เป็นคำสั่งที่คอมไพล์ไปแล้ว ซึ่งคอมพิวเตอร์ปฎิบัติตามอยู่ โดยหวังว่าจะช่วยลดความเสียหายที่อาจเกิดขึ้นในคำสั่ง VBA จากการคอมไพล์ โดยการเริ่มต้นใหม่เพื่อล้างค่าต่างๆ ที่ได้เคยคอมไพล์ไปก่อนหน้านี้ทิ้งไป แล้วค่อยทำการคอมไพล์ใหม่อีกครั้ง

ส่วนวิธีการ Decompile ของ MS Access คือการเรียกโปรแกรมแล้วตามด้วยพารามิเตอร์ /decompile เช่น msaccess.exe /decompile "C:\Your Path To\YourDBName.mdb"
หรือดูที่ผมเคยทำคลิปไว้ที่นี่ครับ:
https://youtu.be/knFHRm-bwos
4 @R24242
เวลาโปรแกรม Access ติด compile error มันสามารถที่จะทำให้เกิดปัญหาที่จุดอื่นได้ อันนี้เป็นเรื่องปกติของ Access ครับ ดังนั้นเราควร compile ทุกครั้งที่มีการแก้ไขโค้ดครับ

อีกอย่าง compile กับ decompile นั้นต่างกันครับ ลองดูวิธีทำ decompile ในกระทู้เก่าๆได้ครับ
5 @R24243
ขอบพระคุณ อาจารย์ทั้ง 2 ครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3211s