กระทู้เก่าบอร์ด อ.Yeadram
        
           3,651   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.2252s
    
      
		
เช่น
Between [Forms]![Report]![input1] And [Forms]![Report]![Input2]
input1 , input2 คือ วันที่บนฟอร์ม
โหลดตัวอย่างโปรแกรมและสอบถามปัญหาต่าง ๆของการใช้งาน ms access เพิ่มได้ที่
http://access.crtrading.net