ปัญหานี้มาจาก ADO จะต้องทำการ Scan ข้อมูลแต่ละ Columnใน Excel worksheet (โดยไม่เกี่ยวกับ Format) โดย Default แล้วจะทำการ Scan ข้อมูลจำนวน 8 rows เพื่อกำหนด data type ดังนั้น หากใน Column มีข้อมูลปนกัน เช่น Text กับ Number ก็อาจจะทำให้เกิดการอ่านค่าผิดได้ และค่าที่ผิดก็จะอ่านได้เป็น Null หรือ Empty
วิธีการแก้ไข ก็คือ ให้แก้ไขค่า Registry
HKLM\Software\Microsoft\Jet\4.0\Engines\Excel
โดยกำหนดค่า TypeGuessRows ซึ่งเป็นชนิด REG_DWORD ให้เป็น 0 (ค่า TypeGuessRows นี้ มีค่า Default = 8 และ สามารถกำหนดค่าได้ระหว่าง 0-16)
สำหรับรายละเอียดของการอ่านข้อมูลจากไฟล์ Excel โดยใช้ ADO สามารถดูได้จาก Link ด้านล่างนี้
How To Use ADO with Excel Data from Visual Basic or VBA
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment