สอบถามเรื่อง VB กับการ Export Query เป็น Excel
กระทู้เก่าบอร์ด อ.Yeadram

 3,458   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 ที่กรองพารามิเตอร์แล้วออกมา) ไม่ทราบว่าพอมีวิธีใดแนะนำบ้างครับ
ขอรบกวนด้วยครับ

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R05079
ก็สามารถใส่ parameter ที่ query ได้เลย
เช่น
Between [Forms]![Report]![input1] And [Forms]![Report]![Input2]

input1 , input2 คือ วันที่บนฟอร์ม

โหลดตัวอย่างโปรแกรมและสอบถามปัญหาต่าง ๆของการใช้งาน ms access เพิ่มได้ที่
http://access.crtrading.net
2 @R05080
คือ ณ ตอนนี้ผมก็ใช้วิธีตามคุณ admin อยู่ครับ แต่ทำได้เพียงให้รันเป็นหน้า Query ออกมา ซึ่งหากจะนำลง Excel ก็ต้อง Copy จากหน้า Query ลงในโปรแกรม 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
4 @R05108
อีกจุดหนึ่งครับ

ลองเปลี่ยนรูปแบบวันที่ใน Reginal Setting 3 จุดด้วยกัน

รูปแบบปี ให้เป็น คริตศักราช

ShortDate = MM/dd/yyyy

Long Date = MM/dd/yyyy

แล้วลองทดสอบดูผลลัพธ์ ว่า ข้อมูลจะออกมาตรงหรือเปล่า

ที่ให้ลองแบบนี้ เนื่องจาก ผมเคยเจอปัญหาข้อมูลรวนเวลา Set รูปวันที่ต่างไปจากนี้ ตอนนี้ผมก็เลยบังคับให้ทุกคนในบริษัทยึดรูปแบบวันที่ตามนี้ และดักไว้อีกชั้นหนึ่งคือ เขียนโค๊ดบังคับเปลี่ยนรูปแบบวันที่เวลาเปิดโปรแกรม
5 @R05112
ผมจะนำคำแนะนำไปประยุกต์ใช้ครับ ขอขอบคุณทุกท่านมากครับที่ให้ความช่วยเหลือ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3529s