Page 1 of 1
ดึงข้อมูลวันที่จาก access มาแสดงบน excel ให้ตรงกันอย่างไร
Posted: Tue Aug 19, 2014 4:13 pm
by numilike
สวัสดีค่ะ ชื่อนุ่มนะคะ
คือนุ่มมีปัญหา เกี่ยวกับการดึงวันที่ จาก Access มาแสดง บน Excel ค่ะ
ในฐานข้อมูล มีวันที่ เช่น
12/09/2014 แสดงเป็น 09/12/2014 แสดงผิดค่ะ
แต่ถ้าเป็น
26/09/2014 แสดงเป็น 26/09/2014 ขึ้นถูกต้องค่ะ
ดูได้จากรูป ข้อมูลใน excel ค่ะ นุ่มทำสีเหลืองๆไว้
table design ของฐานข้อมูลก็เป็น date/time กำหนดถูกต้องแล้ว
ลองเปลี่ยนเป็น type เป็น text แล้ว ปรากฏว่าขึ้นถูกต้อง แต่ดันเรียงลำดับวันผิดหมดเลยค่ะ
นุ่มควรจะแก้ไขอย่างไรดีคะ
รบกวนผู้ใจดี ช่วยแนะแนวทางแก้ไขปัญหาด้วยค่ะ
ขอบคุณล่วงหน้าค่ะ
Re: ช่วยด้วยค่ะ ดึงข้อมูลวันที่จาก access มาบน excel ไม่ตรงก
Posted: Tue Aug 19, 2014 4:38 pm
by snasui
numilike wrote:รบกวนผู้ใจดี ช่วยแนะแนวทางแก้ไขปัญหา ชี้ทางสว่างให้นุ่มด้วยเถิด ด ด ด ดดด ดดด ><"

อ่านกฎทุกข้อด้านบน

แล้วแก้ไขข้อความด้วยครับ
Re: ดึงข้อมูลวันที่จาก access มาแสดงบน excel ไม่ตรงกันค่ะ
Posted: Tue Aug 19, 2014 5:03 pm
by snasui

วิธีการดึงข้อมูลที่แจ้งมานั้นมีวิธีการอย่างไรบ้าง ลองลำดับมาให้ด้วยครับ
Re: ดึงข้อมูลวันที่จาก access มาแสดงบน excel ให้ตรงกันอย่างไ
Posted: Tue Aug 19, 2014 5:14 pm
by numilike
ข้อมูลอยู่ในฐานข้อมูลของ Access จะรัน macro ใน excel แล้วดึงข้อมูลจาก Access มาแสดง
วิธีการดึงข้อมูล
- เริ่มจากใช้ Query Crosstab table ข้อมูล ใน access ซึ่งก็ได้ตรงตามความต้องการ ข้อมูลถูกต้องค่ะ
- แล้วนำ code Query นั้น ไปใส่ใน excel ที่จะรัน macro
code Query
TRANSFORM First(C25.Qty) AS FirstOfQty
SELECT C25.Issue_Date, C25.Supplier_Code, C25.Delivery_Time, C25.Part_No, C25.Receiving_Location, C25.Line_Feed, C25.Dock_Code, C25.Delivery_Order, C25.Remark
FROM C25
GROUP BY C25.Issue_Date, C25.Supplier_Code, C25.Delivery_Time, C25.Part_No, C25.Receiving_Location, C25.Line_Feed, C25.Dock_Code, C25.Delivery_Order, C25.Remark
ORDER BY C25.Delivery_Date
PIVOT C25.Delivery_Date;
code ในส่วนดึงข้อมูลมาใส่ใน workbook
With ThisWorkbook
Workbooks.Add
For J = 0 To rs.Fields.Count - 1
ActiveCell.Offset(0, J).Value = rs.Fields(J).Name
Next
ActiveCell.Offset(1, 0).CopyFromRecordset rs
End With
รันผ่าน โอเค ไม่ติด error ใดๆค่ะ
แต่ข้อมูลวันที่ที่แสดงใน excel ไม่ตรงกับใน access ดังภาพที่เคยโพสค่ะ
Re: ดึงข้อมูลวันที่จาก access มาแสดงบน excel ให้ตรงกันอย่างไ
Posted: Tue Aug 19, 2014 5:22 pm
by snasui

ปัจจุบัน กำหนด Regional and Language ไว้อย่างไร หมายถึงเป็น Thai หรือเป็นแบบอื่นครับ
สำหรับการ Post Code ให้แสดงเป็น Code ดูตัวอย่างได้จากกระทู้นี้ เพื่อสะดวกในการอ่านและนำไปทดสอบครับ
viewtopic.php?f=3&t=1187
Re: ดึงข้อมูลวันที่จาก access มาแสดงบน excel ให้ตรงกันอย่างไ
Posted: Tue Aug 19, 2014 6:26 pm
by numilike
กำหนดเป็น Thai ค่ะ
Re: ดึงข้อมูลวันที่จาก access มาแสดงบน excel ให้ตรงกันอย่างไ
Posted: Tue Aug 19, 2014 6:36 pm
by snasui

หากเป็นเช่นนั้นแสดงว่า Record Set มีปัญหาในการเก็บค่า ข้อมูลประเภทเดียวกันแต่เก็บต่างกัน ซึ่งไม่ควรเกิดปัญหาเช่นนั้นครับ
ลองทดสอบดึงข้อมูลด้วย Query โดยไม่ต้องทำ Crosstab ดึงมาเป็น Data ปกติเพื่อจะดูว่าได้ค่าที่ถูกต้องหรือไม่ การทำ Crosstab สามารถทำใน Excel ด้วย PivotTable ได้ครับ
Re: ดึงข้อมูลวันที่จาก access มาแสดงบน excel ให้ตรงกันอย่างไ
Posted: Tue Aug 19, 2014 7:37 pm
by numilike
ขอบคุณค่ะ จะลองทำดูนะคะ
pivot table เคยลองทำแล้วค่ะ แต่ error ตลอด เลยใช้วิธีนี้แทนค่ะ
Re: ดึงข้อมูลวันที่จาก access มาแสดงบน excel ให้ตรงกันอย่างไ
Posted: Wed Aug 20, 2014 7:48 am
by numilike
snasui wrote:
หากเป็นเช่นนั้นแสดงว่า Record Set มีปัญหาในการเก็บค่า ข้อมูลประเภทเดียวกันแต่เก็บต่างกัน ซึ่งไม่ควรเกิดปัญหาเช่นนั้นครับ
ลองทดสอบดึงข้อมูลด้วย Query โดยไม่ต้องทำ Crosstab ดึงมาเป็น Data ปกติเพื่อจะดูว่าได้ค่าที่ถูกต้องหรือไม่ การทำ Crosstab สามารถทำใน Excel ด้วย PivotTable ได้ครับ
ทดลองดึงแบบปกติ ไม่ทำ Crosstab แล้วค่ะ ปรากฏว่าวันที่ออกมาตรงกับฐานข้อมูลค่ะ
ถ้าเป็นแบบนี้ เรามีวิธีแก้อย่างอื่นไหมคะ โดยที่เราไม่ใช้ PivotTable
Re: ดึงข้อมูลวันที่จาก access มาแสดงบน excel ให้ตรงกันอย่างไ
Posted: Wed Aug 20, 2014 5:00 pm
by snasui

วิธีการอื่น หากเป็นไปได้คือ Loop เข้าไปใน Element ของ RecordSet > ตรวจสอบค่า > เปลียนค่าตามต้องการ
หากไม่ได้ก็ใช้ Array เก็บค่าของ RecordSet แล้ว Loop จาก Element ของ Array เพื่อตรวจสอบค่า > เปลี่ยนค่าตามต้องการ
หากไม่ได้ก็ Loop ใน Range ทีเ่ป็นผลลัพธ์เพื่อตรวจสอบค่า > เปลี่ยนค่าตามต้องการ
Re: ดึงข้อมูลวันที่จาก access มาแสดงบน excel ให้ตรงกันอย่างไ
Posted: Wed Aug 20, 2014 5:06 pm
by numilike
ขอบคุณนะคะ
ตอนนี้ทำได้แล้วค่ะ
แก้ไขที่ Excel โดยให้ format เป็น text แล้วใส่ค่าให้ Cell ช่องนั้นๆเป็น DATEVALUE *1 ค่ะ
ขอบคุณอีกครั้งค่ะ