สอบถามวิธีสั่งพิมพ์บิล สั่งครั้งเดียว ให้บิลออกทั้งต้นฉบับ และสำเนา



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

19 เม.ย. 62 , 20:32:02
อ่าน 1101 ครั้ง

kunlek

ทุกครั้งเมื่อกรอกข้อมูลขายสินค้าเสร็จ   ต้องการพิมพ์ใบเสร็จ-ใบกำกับภาษี(ต้นฉบับ 1 ฉบับ +สำเนา 1 ฉบับ) บนกระดาษ A4 ผ่าน  เครื่องพิมพ์ inkjet จะเปิดฟอร์ม ต้นฉบับ 1 ครั้ง และฟอร์มสำเนา 1 ครั้ง ครับ  อย่างจะแก้ปัญหานั้ครับ

 

20 เม.ย. 62 , 05:15:10
ตอบกลับ #1

ปิ่นณรงค์

ที่จริงฟอร์ม ต้นฉบับหรือ ฟอร์มสำเนา ไม่ต้องเปิดขึ้นมาเพื่อจะพิมพ์ก็ได้คับ
ผมสมมุติ ฟอร์มต้นฉบับชื่อ Frm_original
           ฟอร์มสำเนาชื่อ Frm_Copy

คำสั่งที่จะนำไปวางที่ Event ที่ต้องการคือ
โค๊ด: [Select]
Private Sub BtnPrint_Click()

    DoCmd.SelectObject acForm, “Frm_original”, True
    DoCmd.PrintOut , , , , 1
    DoCmd.SelectObject acForm, “Frm_Copy”, True
    DoCmd.PrintOut , , , , 1

End Sub
เท่านี้ก็จะทำการปริ้น ทั้ง 2 ฟอร์ม โดยไม่ต้องเปิดฟอร์มขึ้นมาก็ได้คับ
หมายเหตุ ตรง DoCmd.PrintOut , , , , 1  การกำหนดจำนวนว่าจะปริ้นกี่แผ่นนะครับ
« แก้ไขครั้งสุดท้าย: 20 เม.ย. 62 , 05:42:49 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown, sjs

20 เม.ย. 62 , 11:20:48
ตอบกลับ #2

kunlek

ขึ้น compile error:  expected: end of statement ครับ
สมมติฟอร์มชื่อ V1 และ V2

Private Sub Command278_Click()
       DoCmd.SelectObject acForm, ? v1 ?, True
       
    DoCmd.PrintOut , , , , 1
    DoCmd.SelectObject acForm, ? v2?, True
    DoCmd.PrintOut , , , , 1
End Sub

 

20 เม.ย. 62 , 11:40:21
ตอบกลับ #3

kunlek

เพิ่มเติมครับ  ผมสร้าง command bottom ไว้ในฟอร์มบันทึกรายการขาย  และสร้าง even ที่ command.

 

20 เม.ย. 62 , 15:49:05
ตอบกลับ #4

UnKnown

ขึ้น compile error:  expected: end of statement ครับ
ปัญหาที่เกิดขึ้นอันนี้ผมก็ไม่ทราบว่าเกิดจากอะไรนะครับ(ต้องมีการเปิดฟอร์มมาเพื่อดึงข้อมูลก่อนการสั่งปริ้นหรือเปล่าครับ)


ที่มาบอกกล่าวนี้คือผมใช้วิธีสั่งปริ้นจากรีพอร์ตนะครับ โดยของผมมีการดึงค่าบางส่วนจากหน้าฟอร์มที่เปิดอยู่ด้วย
โค๊ด: [Select]
Private Sub PrintB_Click()
On Error GoTo Err_PrintB_Click

    T_total.Value = T_total_au.Value
    T_total_text.Value = T_BAHTTEXT_auto.Value
    DoCmd.RunCommand acCmdSaveRecord

    Dim stDocName As String

    stDocName = "R_Bill"      'ชื่อรีพอร์ตที่ต้องการให้สั่งปริ้น
    DoCmd.OpenReport stDocName, acNormal

Exit_PrintB_Click:
    Exit Sub

Err_PrintB_Click:
    MsgBox Err.Description
    Resume Exit_PrintB_Click

End Sub


หรือตัวอย่างโค้ดฉบับย่อที่ผมใช้ปุ่มเดียวสั่งปริ้นรีพอร์ตหน้าต้นฉบับ,สำเนา ครับ
'สังให้เปิดรีพอร์ต "ชื่อรีพอร์ต" ,acNormal = สั่งปริ้นเลย / acPreview =เปิดหน้าแสดงตัวอย่าง
โค๊ด: [Select]
Private Sub Print_CusCopy_Click()
    Me.txtBilltype = "ต้นฉบับ"
    DoCmd.OpenReport "R_vaBill_meNameCus", acNormal 
    Me.txtBilltype = "> สำเนา <"
    DoCmd.OpenReport "R_vaBill_meNameCus", acNormal
End Sub
« แก้ไขครั้งสุดท้าย: 20 เม.ย. 62 , 16:42:47 โดย UnKnown »

 

20 เม.ย. 62 , 23:33:16
ตอบกลับ #5

kunlek

ขออนุญาตนำกระทู้จาก อ.สุภาพ มาแสดง  แต่ผมก็ยังไม่เข้าใจในข้อ 3.  ตรงที่ tool
bar และ on action  อยู่ตรงไหน?
1.ใน Report สร้าง Label ขึ้นมาหนึ่งอันเขียนอะไรก็ได้ แล้วตั้งค่า Visible
เป็น No เพื่อเวลา Preview จะได้ไม่เห็น สมมุติ Label ชื่อ LblCopy
2.สร้าง Function ขึ้นมาหนึ่งตัวเก็บไว้ใน Module

Function PrtCopy( )
Reports!RptCopy.Visible=True

Reports!RptCopy.Caption ="ต้นฉบับ"
Docmd.Printout , , ,1

Reports!RptCopy.Caption ="สำเนา"
Docmd.Printout , , ,1
End Function

3.ทำปุ่มไว้ใน Toolbar โดย OnAction ให้เลือก Function ตามข้อที่ 2 ใส่ไว้ในReport ที่ต้องเราต้องการ

เวลาใช้คือเปิด Report ที่เราได้กำหนดไว้เป็นแบบ Preview เมื่อต้องการพิมพ์ก็กดปุ่มที่เราได้สร้าง ก็จะได้ รายงาน 2 ชุด โดยชุดที่ 1 จะมีคำว่า "ต้นฉบับ" ส่วนชุดที่ 2 จะมีคำว่า "สำเนา"
คิดว่าคงจะมีประโยชน์กับคนอื่นบ้าง เลยเล่าสู่กันฟังครับ
สรุป ผมก็ยังทำไม่ได้ครับ

 

21 เม.ย. 62 , 08:22:31
ตอบกลับ #6

ปิ่นณรงค์

ขึ้น compile error:  expected: end of statement ครับ
สมมติฟอร์มชื่อ V1 และ V2 



Private Sub Command278_Click()
    DoCmd.SelectObject acForm, “V1”, True
    DoCmd.PrintOut , , , , 1
    DoCmd.SelectObject acForm, “V2”, True
    DoCmd.PrintOut , , , , 1


ระหว่างเครื่องหมาย " กับชื่อฟอร์ม ต้องติดกันนะคับ แต่ของท่านเหมือนจะมีการเคาะ SpaceBar ด้วยนะครับ มันเลยแจ้ง ERROR
ผมลองเคาะ Space Bar ให้มีช่องว่างระหว่าง ชื่อฟอร์ม Error ก็เกิดครับ ลองแก้ไขดูใหม่นะครับ :grin: :grin:
« แก้ไขครั้งสุดท้าย: 21 เม.ย. 62 , 08:46:35 โดย ปิ่นณรงค์ »
:love: :grin:
 

23 เม.ย. 62 , 22:22:18
ตอบกลับ #7

kunlek

ผมทำ report invoice โดยเชื่อมโยงจาก quiry และทุกครั้งต้องถามเลขที่บิล มีวิธีใดทางลัด ป้อนข้อมูลในฟอร์มขาย สั่งพิมพ์บิลได้เลย ขอคำแนะนำครับ

 

23 เม.ย. 62 , 23:14:28
ตอบกลับ #8

ปิ่นณรงค์

ผมทำ report invoice โดยเชื่อมโยงจาก quiry และทุกครั้งต้องถามเลขที่บิล มีวิธีใดทางลัด ป้อนข้อมูลในฟอร์มขาย สั่งพิมพ์บิลได้เลย ขอคำแนะนำครับ
report invoice เชื่อมโยงจาก Query อยู่แล้วมี Field เก็บเลขที่บิลอยู่แล้ว
ก็ไปกำหนด Criteria ใน Query Field ที่เก็บเลขที่บิล
=Forms![ชื่อฟอร์ม]!txt_Bill
เท่านี้เวลาเปิดรายงานก็จะแสดงข้อมูลที่มีเลขที่บิลนั้นขึ้นมาคับ

เท่านี้เวลาเปิดรายงานเลขที่บิลจะปรากฎขึ้นมาทันทีครับ
« แก้ไขครั้งสุดท้าย: 23 เม.ย. 62 , 23:32:10 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

24 เม.ย. 62 , 15:34:21
ตอบกลับ #9

kunlek

ที่เงื่อนไข คิวรี่ ของเดิมที่ใช้อยู่ดังนี้ครับ  [เลขที่บิล]  ให้ผมเปลี่ยนเป็น FORM![voucher_s]![voucher_id]  ถูกต้องไหมครับ 

 

24 เม.ย. 62 , 15:35:23
ตอบกลับ #10

kunlek

จะส่งรูป อัปโหลดไม่ขึ้นครับ

 

24 เม.ย. 62 , 15:37:38
ตอบกลับ #11

ปิ่นณรงค์

ที่เงื่อนไข คิวรี่ ของเดิมที่ใช้อยู่ดังนี้ครับ  [เลขที่บิล]  ให้ผมเปลี่ยนเป็น FORM![voucher_s]![voucher_id]  ถูกต้องไหมครับ

Forms![voucher_s]![voucher_id]

ที่ forms ต้องมีตัว s ด้วยนะครับ
:love: :grin:
 

24 เม.ย. 62 , 15:56:26
ตอบกลับ #12

kunlek

ขอบพระคุณอย่างสูงครับ ผมใช้ FORMS![บันทึกขาย]![voucher_id] พิมพ์ได้ทันที ... ขอเพิ่มเติมครับ ต่อเนื่องกัน ผมมีฟอร์มหลายฟอร์มเช่นชื่อฟอร์ม 1บันทึกขายสินค้า 2. บันทึกรายได้บริการ ฯลฯ   ที่โยงกับ คิวรี่ q_vocher นี้ แสดงว่าผมต้องมี คิวรี่ตามจำนวนฟอร์มที่โยง หรือครับ 

 

24 เม.ย. 62 , 16:33:37
ตอบกลับ #13

ปิ่นณรงค์

ตามจริงแล้วไม่ต้องไปกำหนดที่ Query ตัวนั้นตรงๆก็ได้คับ

เราไปกำหนดที่ RecordSource ของ ตัวรายงาน หรือ ฟอร์ม เอาก็ได้คับ ที่ RecordSource ของรายงานหรือฟอร์ม กด เครื่องหมาย ... เพื่อตั้งค่าคิวรี่ หรือ ตารางที่ต้องการเชื่อมต่อแล้วกำหนด Criteria ที่ตัวรายงานนี้เลยคับ

ขั้นตอนที่ 1




ขั้นตอนที่ 2



จากตัวอย่างที่ผม Upload ไปนั้นสังเกตุว่าที่ Query1 ผมไม่ได้กำหนด Criteria ไว้นะครับ
แต่จะกำหนด ที่จะให้เงื่อนไขมาจาก Forms ไหน Control ชื่ออะไร มาที่ตัวรายงานแทน
« แก้ไขครั้งสุดท้าย: 24 เม.ย. 62 , 16:57:49 โดย ปิ่นณรงค์ »
:love: :grin:
 

24 เม.ย. 62 , 22:46:51
ตอบกลับ #14

kunlek

อจ.ครับ ผมลบ criteria ใน คิวรี่หลัก แล้วไปที่รายงาน ไปกำหนดเงือนไขคิวรี่ที่ recordsource  ผมสามารถสั่งพิมพ์ฟอร์มที่ผมสั่ง command ไว้ในฟอร์ม แต่สังเกตุว่า
1. คิวรี่หลัก ที่ผมไปลบออกก่อนมากำหนดคิวรี่ที่ recordsource ของ report  แล้ว creteria กลับมาตามเดิม จริงๆๆต้องมีหรือไม่มี  ถ้าต้องไม่มี แต่ทำไมผมมี?
2. เมื่อเกิดเหตุการข้อ 1 ทำให้เกิดปัญหาที่ว่า คิวรี่หลักouh ถูก report เชื่อมโยงหลายๆๆ report
ช่วยแนะนำหน่อยครับ ขอบพระคุณ ณ ที่นี้ครับ

 

24 เม.ย. 62 , 22:51:38
ตอบกลับ #15

kunlek

พอดี file *.accdb ที่แนบมาผมเปิดไม่ได้ เพราะมีแต่  ms access รุ่นเก่า


 


บอร์ดเรียนรู้ Access สำหรับคนไทย