กระทู้เก่าบอร์ด อ.Yeadram
9,601 23
URL.หัวข้อ /
URL
สั่งพิพม์ให้มีคำว่า ต้นฉบับ และ สำเนาเป็นชุด
อยากได้codeที่พิมพ์Report คำว่า ต้นฉบับ และสำเนา ของ access
ตอนนี้ทำเรื่องใบเสร็จรับเงินอยู่
ตอนนี้ทำเรื่องใบเสร็จรับเงินอยู่
23 Reply in this Topic. Dispaly 2 pages and you are on page number 1
2 @R06020
ไม่อยากทำรายงาน2ชุดนะค่ะ รบกวนด้วยค่ะ
พอมีวิธีแนะนำไหมค่ะ
พอมีวิธีแนะนำไหมค่ะ
3 @R06023
พิมพ์บนกระดาษต่อเนื่องแบบมี copy นะเหรอครับ
สงสัยจะไม่ได้ แนะนำให้สั่งทำจากโรงพิมพ์เป็นแบบ pre print form เลยครับ
สงสัยจะไม่ได้ แนะนำให้สั่งทำจากโรงพิมพ์เป็นแบบ pre print form เลยครับ
4 @R06026
ทำชุดเดียวแต่ มีLabel สำเนาถูกต้อง ตรงที่ต้องการ
แล้วสั่งให้ Visible เป็น No ไว้ก่อน แล้วเวลาสั่งปริ้น
เสร็จขั้นตอนก็ให้ ระบุให้ Label นั้น Visible = True
แล้วสั่งให้ Visible เป็น No ไว้ก่อน แล้วเวลาสั่งปริ้น
เสร็จขั้นตอนก็ให้ ระบุให้ Label นั้น Visible = True
5 @R06035
เรียนคุณunพอยกตัวอย่างได้ไหมค่ะ ยัง งง อยู่ค่ะ
พอดีเพิ่งเริ่มหัดใช้Access ด้วยค่ะ
ขอบคุณมากค่ะ
พอดีเพิ่งเริ่มหัดใช้Access ด้วยค่ะ
ขอบคุณมากค่ะ
6 @R06036
1.สร้างรายงานที่ต้องการครับ 1 รายงาน
โดยตรงอักษรที่แตกต่างระหว่างตัวจริงกับสำเนา ให้ใช้ Label เพิ่มขึ้นมา เช่น สำเนาถูกต้อง สมมุติว่าชื่อ LabelTxt แล้วเราสั่ง LabelTxt ตัวนี้ให้การมองเห็นเป็น No ไว้ก่อน
2.ในหน้าฟอร์ม กำหนดกล้องข้อความเปล่าๆ 1 กล่อง สมมุติว่าชื่อ chkprint แล้วซ่อนไว้ให้มองไม่เห็น
3.ที่ตัวรายงาน Event on Open
if Forms!ชื่อฟอร์ม!chkprint=1 Then
Me.LabelTxt.visible = True
end if
4.ที่ปุ่มคำสั่งปริ้น Event on Click
me.chkprint =1
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal
ผมไม่ได้ลองขั้นตอนนะครับ แต่อ่านแล้วน่าจะเข้าใจ ไอเดียนะครับ ลองสลับขั้นตอนดูถ้าไม่ได้
โดยตรงอักษรที่แตกต่างระหว่างตัวจริงกับสำเนา ให้ใช้ Label เพิ่มขึ้นมา เช่น สำเนาถูกต้อง สมมุติว่าชื่อ LabelTxt แล้วเราสั่ง LabelTxt ตัวนี้ให้การมองเห็นเป็น No ไว้ก่อน
2.ในหน้าฟอร์ม กำหนดกล้องข้อความเปล่าๆ 1 กล่อง สมมุติว่าชื่อ chkprint แล้วซ่อนไว้ให้มองไม่เห็น
3.ที่ตัวรายงาน Event on Open
if Forms!ชื่อฟอร์ม!chkprint=1 Then
Me.LabelTxt.visible = True
end if
4.ที่ปุ่มคำสั่งปริ้น Event on Click
me.chkprint =1
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal
ผมไม่ได้ลองขั้นตอนนะครับ แต่อ่านแล้วน่าจะเข้าใจ ไอเดียนะครับ ลองสลับขั้นตอนดูถ้าไม่ได้
7 @R06037
เรียนคุณ un ขอบคุณค่ะ ทำได้แล้ว
8 @R07341
เรียนคุณ un และ ปอง ผมมีปัญหาเดีวกัน ผมลองทำตามขั้นตอนของคุณ Un แล้วปรากฏว่าขึ้นสำเนาถูกต้องอย่างเดียว
รบกวนช่วยชี้แนะนำเพิ่มเติมหน่อย
สิ่งที่ต้องการ คือ กดพิมพ์รายงานแล้วให้ออกสองแผ่น
แผ่นแรกเป็นต้นฉบับ
แผ่นสองเป็นสำเนา
และเมื่อปริ้นท์ไปแล้วทุกครั้งที่จะกลับมาปริ้นท์ใหม่ให้ปริ้นแค่สำเนาแผ่นเดียว
(ตัวต้นฉบับจะปริ้นท์แค่เฉพาะครั้งแรกเท่านั้น)
ขอขอบคุถณอาจารย์ทุกท่านล่วงหน้าครับ
รบกวนช่วยชี้แนะนำเพิ่มเติมหน่อย
สิ่งที่ต้องการ คือ กดพิมพ์รายงานแล้วให้ออกสองแผ่น
แผ่นแรกเป็นต้นฉบับ
แผ่นสองเป็นสำเนา
และเมื่อปริ้นท์ไปแล้วทุกครั้งที่จะกลับมาปริ้นท์ใหม่ให้ปริ้นแค่สำเนาแผ่นเดียว
(ตัวต้นฉบับจะปริ้นท์แค่เฉพาะครั้งแรกเท่านั้น)
ขอขอบคุถณอาจารย์ทุกท่านล่วงหน้าครับ
9 @R07347
โจทย์
1 ต้องรู้ว่า เป็นการพิมพ์ ครั้งแรก หรือไม่
โดยการสร้าง ฟิลด์ที่ ตารางใบเสร็จ สมมุติชื่อ chkFirstPrint เป็น text ความยาว 1 ตัวอักษร (ถ้าพิมพ์ครั้งแรก เราจะ update ให้เป็น Y ถ้าพิมพ์ครั้งถัดไป จะตรวจสอบว่าพิมพ์ครั้งแรกหรือยังจากค่านี้)
2 พิมพ์รายงานครั้งเดียว แต่ออก 2 แผ่น แผ่นแรกเป็น"ต้นฉบับ" แผ่นที่ สองเป็น"สำเนา"
ความแตกต่างของรายงานอยู่ที่ตัวอักษร
สิ่งที่ต้องทำคือ ตรวจสอบค่า ในฟิลด์ chkFirstPrint ตารางใบเสร็จ ว่า เป็น "Y" หรือไม่
ถ้าไม่ใช่ มีค่า ="" หรือ Null ให้พิมพ์ 2 ครั้ง โดยส่งค่า "ต้นฉบับ" และ "สำเนา" ไปด้วย
if IsNull(DlookUp("[chkFirstPrint]","ชื่อตารางใบเสร็จ","[ฟิลด์เลขที่ใบเสร็จ]= " & เลขที่ใบเสร็จ)) then
mysql="Update ชื่อตารางใบเสร็จ Set chkFirstPrint = 'Y' " & _
"Where ชื่อฟิลด์เลขที่ใบเสร็จ = " & เลขที่ใบเสร็จ
docmd.runsql mysql
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal,"ต้นฉบับ"
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal,"สำเนา"
Else
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal,"สำเนา"
Endif
3 ที่รายงาน เขียน Event Procedure ที่
Private Sub Report_Open
IF Not IsNull(Openargs) then
' ชื่อ label ที่ต้องการ ให้พิมพ์ คำว่าต้นฉบับ/สำเนา สมมุติชื่อ lblTopic จะได้ว่า
lblTopic.Caption=Openargs
End if
End sub
ยังไม่ได้ทดลองนะครับ ลองทำดูว่า work หรือไม่ ติดปัญหาตรงไหน
1 ต้องรู้ว่า เป็นการพิมพ์ ครั้งแรก หรือไม่
โดยการสร้าง ฟิลด์ที่ ตารางใบเสร็จ สมมุติชื่อ chkFirstPrint เป็น text ความยาว 1 ตัวอักษร (ถ้าพิมพ์ครั้งแรก เราจะ update ให้เป็น Y ถ้าพิมพ์ครั้งถัดไป จะตรวจสอบว่าพิมพ์ครั้งแรกหรือยังจากค่านี้)
2 พิมพ์รายงานครั้งเดียว แต่ออก 2 แผ่น แผ่นแรกเป็น"ต้นฉบับ" แผ่นที่ สองเป็น"สำเนา"
ความแตกต่างของรายงานอยู่ที่ตัวอักษร
สิ่งที่ต้องทำคือ ตรวจสอบค่า ในฟิลด์ chkFirstPrint ตารางใบเสร็จ ว่า เป็น "Y" หรือไม่
ถ้าไม่ใช่ มีค่า ="" หรือ Null ให้พิมพ์ 2 ครั้ง โดยส่งค่า "ต้นฉบับ" และ "สำเนา" ไปด้วย
if IsNull(DlookUp("[chkFirstPrint]","ชื่อตารางใบเสร็จ","[ฟิลด์เลขที่ใบเสร็จ]= " & เลขที่ใบเสร็จ)) then
mysql="Update ชื่อตารางใบเสร็จ Set chkFirstPrint = 'Y' " & _
"Where ชื่อฟิลด์เลขที่ใบเสร็จ = " & เลขที่ใบเสร็จ
docmd.runsql mysql
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal,"ต้นฉบับ"
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal,"สำเนา"
Else
DoCmd.OpenReport "ชื่อรายงาน", acViewNormal, "", "", acNormal,"สำเนา"
Endif
3 ที่รายงาน เขียน Event Procedure ที่
Private Sub Report_Open
IF Not IsNull(Openargs) then
' ชื่อ label ที่ต้องการ ให้พิมพ์ คำว่าต้นฉบับ/สำเนา สมมุติชื่อ lblTopic จะได้ว่า
lblTopic.Caption=Openargs
End if
End sub
ยังไม่ได้ทดลองนะครับ ลองทำดูว่า work หรือไม่ ติดปัญหาตรงไหน
10 @R07348
เรียน คุณ ditasilk
ขึ้น error = "Compile error:"
"Syntax error"
ตรงบรรทัด mysql="Update ชื่อตารางใบเสร็จ Set chkFirstPrint = 'Y' " & _
"Where ชื่อฟิลด์เลขที่ใบเสร็จ = " & เลขที่ใบเสร็จ
ผมใช้ access 2007
รบกวนด้วยครับ
ขึ้น error = "Compile error:"
"Syntax error"
ตรงบรรทัด mysql="Update ชื่อตารางใบเสร็จ Set chkFirstPrint = 'Y' " & _
"Where ชื่อฟิลด์เลขที่ใบเสร็จ = " & เลขที่ใบเสร็จ
ผมใช้ access 2007
รบกวนด้วยครับ
11 @R07349
1 เพิ่ม บรรทัด
dim mysql as string
ก่อน mysql ="Update ......
2 ขอประโยค คำสั่งนี้ ที่คุณน้องใหม่ เขียนเป็นประโยคของตัวเอง post ให้ดูหน่อยครับ ว่า
2.1 ชื่อตาราง ชื่ออะไร
2.2 ชื่อฟิลด์เลขที่ใบเสร็จ
2.3 เลขที่ใบเสร็จ เก็บข้อมูลเป็นประเภท Numberic หรือ text
dim mysql as string
ก่อน mysql ="Update ......
2 ขอประโยค คำสั่งนี้ ที่คุณน้องใหม่ เขียนเป็นประโยคของตัวเอง post ให้ดูหน่อยครับ ว่า
2.1 ชื่อตาราง ชื่ออะไร
2.2 ชื่อฟิลด์เลขที่ใบเสร็จ
2.3 เลขที่ใบเสร็จ เก็บข้อมูลเป็นประเภท Numberic หรือ text
12 @R07350
1. Private Sub Command31_Click()
Dim mysq1 As String
If IsNull(DLookup("chkFirstPrint", "invoiceACC", "InvoiceNo=" & InvoiceNo)) Then
mysq1 = "Update InvoiceACC set chkFirstPrint = 'y' " &
"where InvoiceNo = " & InvoiceNo
DoCmd.RunSQL mysql
DoCmd.OpenReport "ReportAcc", acViewNormal, "", "", acWindowNormal, "ต้นฉบับบ" <= (ไม่รู้ว่าพิมพ์ตามนี้หรือเปล่า)
DoCmd.OpenReport "ReportAcc", acViewNormal, "", "", acWindowNormal, "สำเนา" <= (ไม่รู้ว่าพิมพ์ตามนี้หรือเปล่า)
Else
DoCmd.OpenReport "ReportAcc", acViewNormal, "", "", acWindowNormal, "สำเนา" <= (ไม่รู้ว่าพิมพ์ตามนี้หรือเปล่า)
End If
End Sub
2. ชื่อตาราง = invoiceACC
ชื่อฟิลด์เลขที่ในเสร็จ = InvoiceNo
เลขที่ใบเสร็จ = autonumber
รบกวนลงรายละเอียดหน่อยนะครับผมมือใหม่ไม่ค่อยเข้าใจ ยังไงก็แนะนำด้วยนะครับ เป็นพระคุณอย่างสูง
Dim mysq1 As String
If IsNull(DLookup("chkFirstPrint", "invoiceACC", "InvoiceNo=" & InvoiceNo)) Then
mysq1 = "Update InvoiceACC set chkFirstPrint = 'y' " &
"where InvoiceNo = " & InvoiceNo
DoCmd.RunSQL mysql
DoCmd.OpenReport "ReportAcc", acViewNormal, "", "", acWindowNormal, "ต้นฉบับบ" <= (ไม่รู้ว่าพิมพ์ตามนี้หรือเปล่า)
DoCmd.OpenReport "ReportAcc", acViewNormal, "", "", acWindowNormal, "สำเนา" <= (ไม่รู้ว่าพิมพ์ตามนี้หรือเปล่า)
Else
DoCmd.OpenReport "ReportAcc", acViewNormal, "", "", acWindowNormal, "สำเนา" <= (ไม่รู้ว่าพิมพ์ตามนี้หรือเปล่า)
End If
End Sub
2. ชื่อตาราง = invoiceACC
ชื่อฟิลด์เลขที่ในเสร็จ = InvoiceNo
เลขที่ใบเสร็จ = autonumber
รบกวนลงรายละเอียดหน่อยนะครับผมมือใหม่ไม่ค่อยเข้าใจ ยังไงก็แนะนำด้วยนะครับ เป็นพระคุณอย่างสูง
13 @R07351
If IsNull(DLookup("[chkFirstPrint]", "invoiceACC", "InvoiceNo=" & InvoiceNo)) Then
ให้ใส่ก้ามปูกำกับชื่อฟิลด์
mysq1 = "Update InvoiceACC set chkFirstPrint = 'y' " &
"where InvoiceNo = " & InvoiceNo
กรณีเขียนบรรทัดเดียวกัน ไม่ต้องมี &
mysq1 = "Update InvoiceACC set chkFirstPrint = 'y' where InvoiceNo = " & InvoiceNo
กรณีเขียนไม่อยู่ในบรรทัดเดียวกัน ต้องมี & _
เชื่อมการขึ้นบรรทัดใหม่
DoCmd.RunSQL mysql1
คุณน้องใหม่ตั้งชื่อ mysql1 เวลาอ้างอิงต้องใช้ชื่อเดียวกันครับ
DoCmd.OpenReport "ReportAcc", acViewNormal, , , acWindowNormal, "ต้นฉบับ"
DoCmd.OpenReport "ReportAcc", acViewNormal, , , acWindowNormal, "สำเนา"
คำว่า ต้นฉบับ และ สำเนา เป็นค่าที่ส่งไปให้ รายงาน เพื่อพิมพ์คำ ๆนี้
คุณลองเปลี่ยนเป็น อย่างอื่นดูซิครับ เช่นชื่อตัวเอง แล้วเปิดรายงานดู จะเห็นชื่อตัวเองในรายงาน จะได้เข้าใจมากขึ้น
ให้ใส่ก้ามปูกำกับชื่อฟิลด์
mysq1 = "Update InvoiceACC set chkFirstPrint = 'y' " &
"where InvoiceNo = " & InvoiceNo
กรณีเขียนบรรทัดเดียวกัน ไม่ต้องมี &
mysq1 = "Update InvoiceACC set chkFirstPrint = 'y' where InvoiceNo = " & InvoiceNo
กรณีเขียนไม่อยู่ในบรรทัดเดียวกัน ต้องมี & _
เชื่อมการขึ้นบรรทัดใหม่
DoCmd.RunSQL mysql1
คุณน้องใหม่ตั้งชื่อ mysql1 เวลาอ้างอิงต้องใช้ชื่อเดียวกันครับ
DoCmd.OpenReport "ReportAcc", acViewNormal, , , acWindowNormal, "ต้นฉบับ"
DoCmd.OpenReport "ReportAcc", acViewNormal, , , acWindowNormal, "สำเนา"
คำว่า ต้นฉบับ และ สำเนา เป็นค่าที่ส่งไปให้ รายงาน เพื่อพิมพ์คำ ๆนี้
คุณลองเปลี่ยนเป็น อย่างอื่นดูซิครับ เช่นชื่อตัวเอง แล้วเปิดรายงานดู จะเห็นชื่อตัวเองในรายงาน จะได้เข้าใจมากขึ้น
14 @R07352
เพิ่มอีกจุด ที่ใส่ก้ามปู
If IsNull(DLookup("[chkFirstPrint]", "invoiceACC", "[InvoiceNo]=" & InvoiceNo)) Then
ให้ใส่ก้ามปูกำกับชื่อฟิลด์
If IsNull(DLookup("[chkFirstPrint]", "invoiceACC", "[InvoiceNo]=" & InvoiceNo)) Then
ให้ใส่ก้ามปูกำกับชื่อฟิลด์
15 @R07374
ได้แล้วครับ คุณ ditasilk นี้สุดยอดเลยครับ
แต่ขอรบกวนอีกสักสองอย่างนะครับคื่อ
1. เมื่อสั่งปริ้นท์ในครั้งแรกสามารถแสดง "ต้นฉบับ" ได้แต่แสดงแค่แผ่นเดียวไม่แสดงแผ่นที่สองที่เป็นสำเนา
2. ทุกครั้งสั่งพิมพ์ในครั้งแรก จะขึ้นหน้าต่างปอปอัพแจ้ง ให้กด "Yes" หรือ "No" เพื่ออัพเดทเรคคอร์ด (ครั้งต่อไปจะไม่แจ้ง) อยากจะให้ไม่ต้องมีหน้าต่างถาม
ด้วยความเคารพ ขอบคุณครับ
แต่ขอรบกวนอีกสักสองอย่างนะครับคื่อ
1. เมื่อสั่งปริ้นท์ในครั้งแรกสามารถแสดง "ต้นฉบับ" ได้แต่แสดงแค่แผ่นเดียวไม่แสดงแผ่นที่สองที่เป็นสำเนา
2. ทุกครั้งสั่งพิมพ์ในครั้งแรก จะขึ้นหน้าต่างปอปอัพแจ้ง ให้กด "Yes" หรือ "No" เพื่ออัพเดทเรคคอร์ด (ครั้งต่อไปจะไม่แจ้ง) อยากจะให้ไม่ต้องมีหน้าต่างถาม
ด้วยความเคารพ ขอบคุณครับ
16 @R07375
ข้อ 1 พิมพ์แผ่นเดียวหรือครับ ผมไม่ได้ทดลองดูครับ
ข้อ 2 เปิด ms access --> TOOLS(เครื่องมือ)--->OPTION(ตัวเลือก)
----> tab แก้ไข/ค้นหา อยู่ติดกับ TAB General(ทั่วไป)
---->.ในกรอบ ยืนยัน (confirm) เอา เครื่องหมายใน check box ตรง action query ออก กด ok
ทดสอบดูครับว่า ยังแสดงอาการอยู่อีกรึเปล่า
ส่วนข้อ 1
สั่งพิมพ์ครั้งที่ 1
DoCmd.OpenReport "ReportAcc", acViewNormal, , , acWindowNormal, "ต้นฉบับ"
สั่งพิมพ์ครั้งที่ 2
DoCmd.OpenReport "ReportAcc", acViewNormal, , , acWindowNormal, "สำเนา
ถ้ายังไม่ได้เดี๋ยวหาวิธีอื่นดู แต่ขอทดสอบดูก่อน ตอนนี้ยังไม่ว่างเลยครับ
เขียน ระบบ inventory ให้น้องๆ อยู่
ข้อ 2 เปิด ms access --> TOOLS(เครื่องมือ)--->OPTION(ตัวเลือก)
----> tab แก้ไข/ค้นหา อยู่ติดกับ TAB General(ทั่วไป)
---->.ในกรอบ ยืนยัน (confirm) เอา เครื่องหมายใน check box ตรง action query ออก กด ok
ทดสอบดูครับว่า ยังแสดงอาการอยู่อีกรึเปล่า
ส่วนข้อ 1
สั่งพิมพ์ครั้งที่ 1
DoCmd.OpenReport "ReportAcc", acViewNormal, , , acWindowNormal, "ต้นฉบับ"
สั่งพิมพ์ครั้งที่ 2
DoCmd.OpenReport "ReportAcc", acViewNormal, , , acWindowNormal, "สำเนา
ถ้ายังไม่ได้เดี๋ยวหาวิธีอื่นดู แต่ขอทดสอบดูก่อน ตอนนี้ยังไม่ว่างเลยครับ
เขียน ระบบ inventory ให้น้องๆ อยู่
17 @R07376
ครับได้แผ่นเดียว
DoCmd.OpenReport "reportacc", acViewPreview, , "[InvoiceNo] = [Forms]![invoiceacc1].[InvoiceNo]", acWindowNormal, "ต้นฉบับ"
DoCmd.OpenReport "reportacc", acViewPreview, , "[InvoiceNo] = [Forms]![invoiceacc1].[InvoiceNo]", acWindowNormal, "สำเนา"
(ผมเพิ่มติมในส่วนที่ให้แสดงเฉพราะหน้าฟอร์มปัจจุบันเท่านั้นลงไป) ไม่ทราบเกียวหรือเปล่าแต่ไม่น่าใช่ แต่ทุกอย่างโอเคหมดยกเว้นที่ไม่ปริ้นท์สองแผ่นเท่านั้นครับ
DoCmd.OpenReport "reportacc", acViewPreview, , "[InvoiceNo] = [Forms]![invoiceacc1].[InvoiceNo]", acWindowNormal, "ต้นฉบับ"
DoCmd.OpenReport "reportacc", acViewPreview, , "[InvoiceNo] = [Forms]![invoiceacc1].[InvoiceNo]", acWindowNormal, "สำเนา"
(ผมเพิ่มติมในส่วนที่ให้แสดงเฉพราะหน้าฟอร์มปัจจุบันเท่านั้นลงไป) ไม่ทราบเกียวหรือเปล่าแต่ไม่น่าใช่ แต่ทุกอย่างโอเคหมดยกเว้นที่ไม่ปริ้นท์สองแผ่นเท่านั้นครับ
18 @R07378
'กำหนดตัวแปร i เป็นจำนวนเต็ม
Dim i As Integer
'สั่งให้ เปิด report 2 รอบ โดยใช้ For .... Next
' เริ่มตั้งแต่ i=1 ไปจนถึง 2
For i = 1 To 2
'สั่งให้เปิด report แล้ว พิมพ์
'ตอนส่งค่า ให้ตรวจสอบค่า i
' ถ้า=1 ให้ส่งคำว่า ต้นฉบับ
' ถ้า=2 ให้ส่งคำว่า สำเนา
DoCmd.OpenReport "reportacc", acViewNormal, "", "", acWindowNormal, IIf(i = 1, "ต้นฉบับ", "สำเนา")
Next
ตรวจสอบแล้ว ใช้ได้จริงครับ
ต้องฉลองกันหน่อยนะครับ
วันพ่อ อย่าลืมดูแลพ่อ ด้วยนะครับ
Dim i As Integer
'สั่งให้ เปิด report 2 รอบ โดยใช้ For .... Next
' เริ่มตั้งแต่ i=1 ไปจนถึง 2
For i = 1 To 2
'สั่งให้เปิด report แล้ว พิมพ์
'ตอนส่งค่า ให้ตรวจสอบค่า i
' ถ้า=1 ให้ส่งคำว่า ต้นฉบับ
' ถ้า=2 ให้ส่งคำว่า สำเนา
DoCmd.OpenReport "reportacc", acViewNormal, "", "", acWindowNormal, IIf(i = 1, "ต้นฉบับ", "สำเนา")
Next
ตรวจสอบแล้ว ใช้ได้จริงครับ
ต้องฉลองกันหน่อยนะครับ
วันพ่อ อย่าลืมดูแลพ่อ ด้วยนะครับ
19 @R07385
ไม่ทราบว่าผมใส่แบบนี้ถูกไหมครับ
ใส่แล้วมันก็ยังไม่ผ่านเหมือนเดินครับ
Private Sub Command31_Click()
Dim i As Integer
Dim mysq1 As String
If IsNull(DLookup("[chkFirstPrint]", "invoiceACC", "[InvoiceNo]=" & InvoiceNo)) Then
mysq1 = "Update InvoiceACC set [chkFirstPrint] = 'y' " & _
"where InvoiceNo = " & InvoiceNo
DoCmd.RunSQL mysq1
For i = 1 To 2
DoCmd.OpenReport "reportacc", acViewPreview, , "[InvoiceNo] = [Forms]![invoiceacc1].[InvoiceNo]", acWindowNormal, IIf(i = 1, "µé¹©ºÑº", "ÊÓà¹Ò")
Next
End If
End Sub
ใส่แล้วมันก็ยังไม่ผ่านเหมือนเดินครับ
Private Sub Command31_Click()
Dim i As Integer
Dim mysq1 As String
If IsNull(DLookup("[chkFirstPrint]", "invoiceACC", "[InvoiceNo]=" & InvoiceNo)) Then
mysq1 = "Update InvoiceACC set [chkFirstPrint] = 'y' " & _
"where InvoiceNo = " & InvoiceNo
DoCmd.RunSQL mysq1
For i = 1 To 2
DoCmd.OpenReport "reportacc", acViewPreview, , "[InvoiceNo] = [Forms]![invoiceacc1].[InvoiceNo]", acWindowNormal, IIf(i = 1, "µé¹©ºÑº", "ÊÓà¹Ò")
Next
End If
End Sub
20 @R07386
แนะนำคุณน้องใหม่อย่างนี่ครับ
1 ทำตาม ที่แนะนำก่อน เช่นสั่งให้พิมพ์ acViewNormal อย่าพึ่งไป acViewPreview
2 เอา Condition ออกก่อน
แล้วลองทำตามดูว่า
1 กดครั้งเดียว พิมพ์ 2 ใบ
2 ใบแรกเป็น ต้นฉบับ ใบที่สองเป็น สำเนา
ให้เป็นตามนี้ก่อน
แล้วค่อย apply ใส่ เงื่อนไข หรืออื่น ๆ
จะได้งานตามที่ต้องการ ครับ
1 ทำตาม ที่แนะนำก่อน เช่นสั่งให้พิมพ์ acViewNormal อย่าพึ่งไป acViewPreview
2 เอา Condition ออกก่อน
แล้วลองทำตามดูว่า
1 กดครั้งเดียว พิมพ์ 2 ใบ
2 ใบแรกเป็น ต้นฉบับ ใบที่สองเป็น สำเนา
ให้เป็นตามนี้ก่อน
แล้วค่อย apply ใส่ เงื่อนไข หรืออื่น ๆ
จะได้งานตามที่ต้องการ ครับ
Time: 0.2502s
ชุดแรก ต้นฉบับ
ชุดสอง ก็สำเนา
ทำให้เหมือนกันแต่แก้แค่ label เท่านั้น
แล้วก็เีรียกคำสั่ง
docmd.openreport "ต้นฉบับ"
docmd.openreport "สำเนา"