สร้างปุ่มคำสั่งขึ้นมาเองเพื่อปริ้น Report หน้าปัจจ
กระทู้เก่าบอร์ด อ.Yeadram

 5,904   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



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

1 @R10595
- ที่ On Click ของปุ่มพิมพ์นี้ (ใน property sheet) อ้างอิงคำว่า [Event Procedure] หรือไม่ หรืออ้างอิงที่อื่น ให้ตรวจสอบด้วยว่า สะกดได้ถูกต้องหรือไม่

- [ลำดับใบส่งสินค้า] เป็นฟิลด์ประเภท Text หรือ Numeric ถ้าเป็น Text ต้องแก้เป็น strWhere = "[ลำดับใบส่งสินค้า]='" & me!ลำดับใบส่งสินค้า & "' "
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

ทดลองแล้วมันยังไม่ได้ จึงขอรบกวนขอคำแนะนำอีกครั้งคะ
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 คะ
4 @R10613
มัน error แสดงดังนี้

Run-time error '424'
Object required

เป็นแบบดิฉันทำผิดที่จุดใด พอทราบหรือเปล่าคะ
5 @R10624
[ลำดับใบส่งสินค้า] เป็นประเภท AutoNumber ซึ่งเทียบเท่ากับ Long Integer ดังนั้นมันเป็น Numeric ครับ ไม่ต้องแก้ตามที่ผมบอก ที่คุณเขียนมาแต่แรกนั้นถูกแล้ว

อีกอย่างที่จะให้ลองคือ me!ลำดับใบส่งสินค้า ให้แก้เป็น me![ลำดับใบส่งสินค้า] จริงๆผมไม่แนะนำให้ตั้งชื่ออะไรเป็นภาษาไทยนะครับ ไม่มั่นใจว่ามีปัญหาอย่างไรหรือไม่

และลองว่า ถ้าคำสั่งมีแค่ DoCmd.OpenReport strDocName, acPreview (ไม่มีต่อท้าย ,, stWhere ดูว่าจะเกิด error อีกไหม ถ้าเกิด ก็น่าจะเป็น error มาจากโค้ดในตัวรายงานแล้วหล่ะครับ

6 @R10625
ปล. เขียน คะ กับ ค่ะ ให้ถูกด้วย คะ เสียงสูง ค่ะ เสียงต่ำกว่า
7 @R10630
ขอบคุณคะ
8 @R10632
ขอบคุณคะ ต้องเขียน ขอบคุณค่ะ
9 @R10633
ได้ทดลองอย่างไรก็ไม่ได้มีวิธีอื่นที่จะแนะนำหรือไม่
ดิฉันได้เปลี่ยนชื่อเป็นภาษาอังกฤษแล้ว และ ปรับโค้ดก็ยังไม่ได้

ตอนนี้ คุณสันติสุขพอวิธีอื่นแนะหรือไม่
ขอคำแนะนำ
10 @R10635
ส่งโปรแกรมมาที่ accboard@gmail.com พอมีเวลาแล้วผมจะดูให้ ถ้าเป็นไฟล์นามสกุล .acxxx ให้แปลงเป็นฟอร์แมทของ Access 2002/2003 ที่มีนามสกุลเป็น .mdb ด้วยครับ
11 @R10775
ลอง คำสั่ง Save ดูยังครับ

ผมเข้าใจว่า น่าจะเกิดจาก พิมพ์ข้อมูลแล้วยังไม่ได้ SAVE ครับ


    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

หากใครมี คำสั่ง SAVE ตรงๆ ช่วยบอกทีนะครับ
12 @R10785
ปัญหา ที่ว่านี่คือ ไม่ได้ เซฟ ก่อน สั่งพิมพ์ หรือเปล่าครับ

คำสั่งเซฟ

    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70


ถ้าใครมี คำสั่งเซฟตัวอื่นบอกด้วยนะครับ กำลังหาอยู่ครับ
13 @R10787
เรียนท่าน Teerapat คำสั่ง Save
อ่านเจอที่นี่แหละครับ แต่จำไม่ได้ว่าท่านได้เขียน (ขออภัยด้วย)

Me.Dirty = False
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3434s