วันอังคารที่ 6 พฤศจิกายน พ.ศ. 2555

Access 2010 Type mismatch

เปิด recordset ในตารางของฐานข้อมูล Access 2010 ด้วยคำสั่ง

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.Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT * FROM tblCustomers WHERE custID = 99999999")
 




ไม่มีความคิดเห็น:

แสดงความคิดเห็น