กระทู้เก่าบอร์ด อ.Yeadram
        
           6,190   13		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        สร้างปุ่มคำสั่งขึ้นมาเองเพื่อปริ้น Report หน้าปัจจ      
    
      ได้ใช้โค้ดแบบด้านนี้ถูกหรือไม่
แต่ทดลองใช้แล้วตอนแรกใช้งานได้ แต่พอปิดแล้วเปิดขึ้นมาใช้อีกครั้งมัน Error
1.ได้ใส่โค้ดนี้ลงในปุ่ม ของฟอร์มใบส่งสิ้นค้า เพื่อปริ้นใบส่งสินค้า แล้วไม่ได้ผล
2. มันสามารถที่จะใส่โค้ดที่ออื่นได้หรือไม่ หรือจะต้องมีขั้นตอนอย่างไร
พยายามอยู่ยังไม่ได้สักที
Dim strDocName As String
Dim strWhere As String
strDocName = "ปริ้นใบส่งสินค้า" ---------- ชื่อ Report--------
strWhere = "[ลำดับใบส่งสินค้า]=" & me!ลำดับใบส่งสินค้า' -----ชื่อ Key
DoCmd.OpenReport strDocName, acPreview, , strWhere
ภาพที่แสดงการ Error
 
    
    
  แต่ทดลองใช้แล้วตอนแรกใช้งานได้ แต่พอปิดแล้วเปิดขึ้นมาใช้อีกครั้งมัน Error
1.ได้ใส่โค้ดนี้ลงในปุ่ม ของฟอร์มใบส่งสิ้นค้า เพื่อปริ้นใบส่งสินค้า แล้วไม่ได้ผล
2. มันสามารถที่จะใส่โค้ดที่ออื่นได้หรือไม่ หรือจะต้องมีขั้นตอนอย่างไร
พยายามอยู่ยังไม่ได้สักที
Dim strDocName As String
Dim strWhere As String
strDocName = "ปริ้นใบส่งสินค้า" ---------- ชื่อ Report--------
strWhere = "[ลำดับใบส่งสินค้า]=" & me!ลำดับใบส่งสินค้า' -----ชื่อ Key
DoCmd.OpenReport strDocName, acPreview, , strWhere
ภาพที่แสดงการ Error
 
				13 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R10611    
        
  
      - ที่ On Click ตรวจสอบแล้วถูกต้องคะ [Event Procedure] 
และได้ใส่ Code ที่
- [ลำดับใบส่งสินค้า] เป็น AutoNumber คะ
ก็เลยปรับเปลี่ยน Code ตามที่ K. สันติสุข บอก ดังนี้ ถูกต้องหรือไม่
Dim strDocName As String
Dim stWhere As String
strDocName = "ปริ้นใบส่งสินค้า"
stWhere = "[ลำดับใบส่งสินค้า]=" & me!ลำดับใบส่งสินค้า'
DoCmd.OpenReport strDocName, acPreview, , stWhere
ทดลองแล้วมันยังไม่ได้ จึงขอรบกวนขอคำแนะนำอีกครั้งคะ
    
  และได้ใส่ Code ที่
- [ลำดับใบส่งสินค้า] เป็น AutoNumber คะ
ก็เลยปรับเปลี่ยน Code ตามที่ K. สันติสุข บอก ดังนี้ ถูกต้องหรือไม่
Dim strDocName As String
Dim stWhere As String
strDocName = "ปริ้นใบส่งสินค้า"
stWhere = "[ลำดับใบส่งสินค้า]=" & me!ลำดับใบส่งสินค้า'
DoCmd.OpenReport strDocName, acPreview, , stWhere
ทดลองแล้วมันยังไม่ได้ จึงขอรบกวนขอคำแนะนำอีกครั้งคะ
        
    3 @R10612    
        
  
      ทดลองอีกครั้งก็ยัง error เหมือนเดิมคะ โดยปรับเป็นด้านล่างนี้
Private Sub printreal_Click()
Dim strDocName As String
Dim stWhere As String
strDocName = "ปริ้นใบส่งสินค้า" --------> ชื่อรายงาน-----
stWhere = "[ลำดับใบส่งสินค้า]='" & me!ลำดับใบส่งสินค้า & "' "
DoCmd.OpenReport strDocName, acPreview, , stWhere
End Sub
- [ลำดับใบส่งสินค้า] เป็น Autonumber คะ
    
  Private Sub printreal_Click()
Dim strDocName As String
Dim stWhere As String
strDocName = "ปริ้นใบส่งสินค้า" --------> ชื่อรายงาน-----
stWhere = "[ลำดับใบส่งสินค้า]='" & me!ลำดับใบส่งสินค้า & "' "
DoCmd.OpenReport strDocName, acPreview, , stWhere
End Sub
- [ลำดับใบส่งสินค้า] เป็น Autonumber คะ
        
    4 @R10613    
        
  
      มัน error แสดงดังนี้
Run-time error '424'
Object required
เป็นแบบดิฉันทำผิดที่จุดใด พอทราบหรือเปล่าคะ
    
  Run-time error '424'
Object required
เป็นแบบดิฉันทำผิดที่จุดใด พอทราบหรือเปล่าคะ
        
    5 @R10624    
        
  
      [ลำดับใบส่งสินค้า] เป็นประเภท AutoNumber ซึ่งเทียบเท่ากับ Long Integer ดังนั้นมันเป็น Numeric ครับ ไม่ต้องแก้ตามที่ผมบอก ที่คุณเขียนมาแต่แรกนั้นถูกแล้ว
อีกอย่างที่จะให้ลองคือ me!ลำดับใบส่งสินค้า ให้แก้เป็น me![ลำดับใบส่งสินค้า] จริงๆผมไม่แนะนำให้ตั้งชื่ออะไรเป็นภาษาไทยนะครับ ไม่มั่นใจว่ามีปัญหาอย่างไรหรือไม่
และลองว่า ถ้าคำสั่งมีแค่ DoCmd.OpenReport strDocName, acPreview (ไม่มีต่อท้าย ,, stWhere ดูว่าจะเกิด error อีกไหม ถ้าเกิด ก็น่าจะเป็น error มาจากโค้ดในตัวรายงานแล้วหล่ะครับ
    
    
  อีกอย่างที่จะให้ลองคือ me!ลำดับใบส่งสินค้า ให้แก้เป็น me![ลำดับใบส่งสินค้า] จริงๆผมไม่แนะนำให้ตั้งชื่ออะไรเป็นภาษาไทยนะครับ ไม่มั่นใจว่ามีปัญหาอย่างไรหรือไม่
และลองว่า ถ้าคำสั่งมีแค่ DoCmd.OpenReport strDocName, acPreview (ไม่มีต่อท้าย ,, stWhere ดูว่าจะเกิด error อีกไหม ถ้าเกิด ก็น่าจะเป็น error มาจากโค้ดในตัวรายงานแล้วหล่ะครับ
        
    6 @R10625    
        
  
      ปล. เขียน คะ กับ ค่ะ ให้ถูกด้วย  คะ เสียงสูง  ค่ะ เสียงต่ำกว่า    
    
  
        
    7 @R10630    
        
  
      ขอบคุณคะ    
    
  
        
    8 @R10632    
        
  
      ขอบคุณคะ ต้องเขียน ขอบคุณค่ะ  
    
    
   
    
        
    9 @R10633    
        
  
      ได้ทดลองอย่างไรก็ไม่ได้มีวิธีอื่นที่จะแนะนำหรือไม่
ดิฉันได้เปลี่ยนชื่อเป็นภาษาอังกฤษแล้ว และ ปรับโค้ดก็ยังไม่ได้
ตอนนี้ คุณสันติสุขพอวิธีอื่นแนะหรือไม่
ขอคำแนะนำ
    
  ดิฉันได้เปลี่ยนชื่อเป็นภาษาอังกฤษแล้ว และ ปรับโค้ดก็ยังไม่ได้
ตอนนี้ คุณสันติสุขพอวิธีอื่นแนะหรือไม่
ขอคำแนะนำ
        
    10 @R10635    
        
  
      ส่งโปรแกรมมาที่ [email protected]  พอมีเวลาแล้วผมจะดูให้ ถ้าเป็นไฟล์นามสกุล .acxxx ให้แปลงเป็นฟอร์แมทของ Access 2002/2003 ที่มีนามสกุลเป็น .mdb ด้วยครับ    
    
  
        
    11 @R10775    
        
  
      ลอง คำสั่ง Save ดูยังครับ
ผมเข้าใจว่า น่าจะเกิดจาก พิมพ์ข้อมูลแล้วยังไม่ได้ SAVE ครับ
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
หากใครมี คำสั่ง SAVE ตรงๆ ช่วยบอกทีนะครับ
    
    
  ผมเข้าใจว่า น่าจะเกิดจาก พิมพ์ข้อมูลแล้วยังไม่ได้ SAVE ครับ
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
หากใครมี คำสั่ง SAVE ตรงๆ ช่วยบอกทีนะครับ
        
    12 @R10785    
        
  
      ปัญหา ที่ว่านี่คือ ไม่ได้ เซฟ ก่อน สั่งพิมพ์ หรือเปล่าครับ
คำสั่งเซฟ
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
ถ้าใครมี คำสั่งเซฟตัวอื่นบอกด้วยนะครับ กำลังหาอยู่ครับ
    
  คำสั่งเซฟ
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
ถ้าใครมี คำสั่งเซฟตัวอื่นบอกด้วยนะครับ กำลังหาอยู่ครับ
        
    13 @R10787    
        
    
      เรียนท่าน Teerapat คำสั่ง Save
อ่านเจอที่นี่แหละครับ แต่จำไม่ได้ว่าท่านได้เขียน (ขออภัยด้วย)
Me.Dirty = False
    
  อ่านเจอที่นี่แหละครับ แต่จำไม่ได้ว่าท่านได้เขียน (ขออภัยด้วย)
Me.Dirty = False
      Time: 0.3249s
    
      
		
- [ลำดับใบส่งสินค้า] เป็นฟิลด์ประเภท Text หรือ Numeric ถ้าเป็น Text ต้องแก้เป็น strWhere = "[ลำดับใบส่งสินค้า]='" & me!ลำดับใบส่งสินค้า & "' "