Friday, October 3, 2008

ปัญหาการใช้ ADO อ่านข้อมูลจาก Excel แล้ว Field ที่เป็น Mixed data types อ่านค่าผิดเป็น Null หรือ Empty

ปัญหานี้มาจาก 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

Thursday, October 2, 2008

Show hidden files and folders ไม่ยอม Show

หลังจากที่มี Virus จาก Flash drive หลุดมาอาละวาดในเครื่องได้สัก 2 สัปดาห์ก่อน มาวันนี้ผมจึงค่อยพบว่า เครื่องมันไม่แสดง Hidden files และ Folders จริง ๆ แล้วมันก็ไม่น่าจะแก้ยาก แต่ปัญหามันอยู่ที่พอไปเลือก Show hidden files and folders ที่ Folder options ให้มัน Show พอปิด Screen ไป แล้วเปิดใหม่ มันก็กลับคืนไปเป็น Do not show hidden files and folders เอง

วิธีแก้ไขที่แก้ไขสำเร็จ คือ
1. เปิด Regedit แล้วเข้าไปที่
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL
2. หา "CheckedValue" ซึ่งเป็นชนิด REG_DWORD แล้วกำหนดค่าให้เป็น 1
3. ทดลองกลับไปแก้ไข Show hidden files and folders ใหม่ ซึ่งควรจะกลับเป็นปกติแล้ว