Access 2010 Type mismatch
เปิด recordset ในตารางของฐานข้อมูล Access 2010 ด้วยคำสั่ง
Set rst = dbs.OpenRecordset("SELECT * FROM .....)
แล้วเกิดข้อผิดพลาด Type mismatch (Runtime error '13") ทั้ง ๆ ที่เมื่อก่อน (Access 2003) เคยทำได้ไม่มีปัญหา
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT * FROM tblCustomers WHERE custID = 99999999")
Set rst = dbs.OpenRecordset("SELECT * FROM .....)
แล้วเกิดข้อผิดพลาด Type mismatch (Runtime error '13") ทั้ง ๆ ที่เมื่อก่อน (Access 2003) เคยทำได้ไม่มีปัญหา
สาเหตุ
เมื่อก่อน Access 97 กำหนดให้ DAO เป็นค่าเริ่มต้น สำหรับ Microsoft Data Access Objects ต่อมา Access 200 ได้กำหนดให้ ADO เป็นค่าเริ่มต้น
การแก้ไข
ในการประกาศตัวแปร สำหรับฐานข้อมูล (db) และ Recordset (rst) ให้ระบุว่าเป็น DAO ด้วย ก็จะแก้ปัญหา ไม่เกิด Error อีกต่อไป เช่น
Dim dbs As DAO.Database
Dim rst As DAO.RecordsetSet dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT * FROM tblCustomers WHERE custID = 99999999")
ความคิดเห็น
แสดงความคิดเห็น