กระทู้เก่าบอร์ด อ.Yeadram
3,454 5
URL.หัวข้อ /
URL
สอบถามเรื่อง VB กับการ Export Query เป็น Excel
คือปัจจุบันเวลาผมจะดึงข้อมูลใน Access ผมจะสร้าง Query ขึ้นมาตัวนึง (เป็นข้อมูลที่ไม่มีวันที่พารามิเตอร์เข้ามาเกี่ยวข้อง) แล้วก็ฝังโค้ด VBA ไว้ในปุ่ม ดังนี้
DoCmd.OutputTo acOutputQuery, "Export", acFormatXLS, "C:\Export_MobilePhone.xls", False
แต่ปัจจุบันจะมีข้อมูลบางอย่างที่เงื่อนไขการ Export จะไม่ได้ตรงๆเหมือนแต่ก่อน กล่าวคือผมต้องสร้างฟอร์มให้ user ใส่ start - End Date แล้วจึงกดปุ่ม Export ให้เป็น Excel ออกมา (เป็นการใช้พารามิเตอร์กรองข้อมูลใน Query ที่สร้างไว้อีกที) (ปัจจุบันทำได้แค่ให้รันหน้า Query ที่กรองพารามิเตอร์แล้วออกมา) ไม่ทราบว่าพอมีวิธีใดแนะนำบ้างครับ
ขอรบกวนด้วยครับ
DoCmd.OutputTo acOutputQuery, "Export", acFormatXLS, "C:\Export_MobilePhone.xls", False
แต่ปัจจุบันจะมีข้อมูลบางอย่างที่เงื่อนไขการ Export จะไม่ได้ตรงๆเหมือนแต่ก่อน กล่าวคือผมต้องสร้างฟอร์มให้ user ใส่ start - End Date แล้วจึงกดปุ่ม Export ให้เป็น Excel ออกมา (เป็นการใช้พารามิเตอร์กรองข้อมูลใน Query ที่สร้างไว้อีกที) (ปัจจุบันทำได้แค่ให้รันหน้า Query ที่กรองพารามิเตอร์แล้วออกมา) ไม่ทราบว่าพอมีวิธีใดแนะนำบ้างครับ
ขอรบกวนด้วยครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R05080
คือ ณ ตอนนี้ผมก็ใช้วิธีตามคุณ admin อยู่ครับ แต่ทำได้เพียงให้รันเป็นหน้า Query ออกมา ซึ่งหากจะนำลง Excel ก็ต้อง Copy จากหน้า Query ลงในโปรแกรม Excel ตรงๆครับ
โดยสิ่งที่ผมต้องการคือ ให้ออกมาในรูปของการ Export ไฟล์เป็น Excel เลยครับ
โดยสิ่งที่ผมต้องการคือ ให้ออกมาในรูปของการ Export ไฟล์เป็น Excel เลยครับ
3 @R05098
' Import library DAO 3.6
dim dSTART
dSTART = inputbox("ระบุวันที่เริ่มต้น yyyy-mm-dd")
if isnull(dStart) then exit sub
dim dFINISH
dFINISH = inputbox("ระบุวันที่สิ้นสุด yyyy-mm-dd")
if isnull(dFINISH) or dSTART > dFINISH then exit sub
Dim mq As QueryDef
Dim db As DAO.Database
Set db = CurrentDb
Set mq = db.QueryDefs("Export")
sq = "SELECT F1, F2 ,F3 FROM TABLE1 WHERE F2 BETWEEN #" & cdate(dSTART) & "# and #" & cdate(dFINISH) & "#;"
mq.Sql = sq
Set mq = Nothing
Set db = Nothing
DoCmd.OutputTo acOutputQuery, "Export", acFormatXLS, "C:\Export_MobilePhone.xls", False
dim dSTART
dSTART = inputbox("ระบุวันที่เริ่มต้น yyyy-mm-dd")
if isnull(dStart) then exit sub
dim dFINISH
dFINISH = inputbox("ระบุวันที่สิ้นสุด yyyy-mm-dd")
if isnull(dFINISH) or dSTART > dFINISH then exit sub
Dim mq As QueryDef
Dim db As DAO.Database
Set db = CurrentDb
Set mq = db.QueryDefs("Export")
sq = "SELECT F1, F2 ,F3 FROM TABLE1 WHERE F2 BETWEEN #" & cdate(dSTART) & "# and #" & cdate(dFINISH) & "#;"
mq.Sql = sq
Set mq = Nothing
Set db = Nothing
DoCmd.OutputTo acOutputQuery, "Export", acFormatXLS, "C:\Export_MobilePhone.xls", False
4 @R05108
อีกจุดหนึ่งครับ
ลองเปลี่ยนรูปแบบวันที่ใน Reginal Setting 3 จุดด้วยกัน
รูปแบบปี ให้เป็น คริตศักราช
ShortDate = MM/dd/yyyy
Long Date = MM/dd/yyyy
แล้วลองทดสอบดูผลลัพธ์ ว่า ข้อมูลจะออกมาตรงหรือเปล่า
ที่ให้ลองแบบนี้ เนื่องจาก ผมเคยเจอปัญหาข้อมูลรวนเวลา Set รูปวันที่ต่างไปจากนี้ ตอนนี้ผมก็เลยบังคับให้ทุกคนในบริษัทยึดรูปแบบวันที่ตามนี้ และดักไว้อีกชั้นหนึ่งคือ เขียนโค๊ดบังคับเปลี่ยนรูปแบบวันที่เวลาเปิดโปรแกรม
ลองเปลี่ยนรูปแบบวันที่ใน Reginal Setting 3 จุดด้วยกัน
รูปแบบปี ให้เป็น คริตศักราช
ShortDate = MM/dd/yyyy
Long Date = MM/dd/yyyy
แล้วลองทดสอบดูผลลัพธ์ ว่า ข้อมูลจะออกมาตรงหรือเปล่า
ที่ให้ลองแบบนี้ เนื่องจาก ผมเคยเจอปัญหาข้อมูลรวนเวลา Set รูปวันที่ต่างไปจากนี้ ตอนนี้ผมก็เลยบังคับให้ทุกคนในบริษัทยึดรูปแบบวันที่ตามนี้ และดักไว้อีกชั้นหนึ่งคือ เขียนโค๊ดบังคับเปลี่ยนรูปแบบวันที่เวลาเปิดโปรแกรม
5 @R05112
ผมจะนำคำแนะนำไปประยุกต์ใช้ครับ ขอขอบคุณทุกท่านมากครับที่ให้ความช่วยเหลือ
Time: 0.3190s
เช่น
Between [Forms]![Report]![input1] And [Forms]![Report]![Input2]
input1 , input2 คือ วันที่บนฟอร์ม
โหลดตัวอย่างโปรแกรมและสอบถามปัญหาต่าง ๆของการใช้งาน ms access เพิ่มได้ที่
http://access.crtrading.net