กระทู้เก่าบอร์ด อ.Yeadram
4,204 17
URL.หัวข้อ /
URL
มีวิธีสั่งปริ๊น โดยไม่ต้อง พรีวิวไหม
คือผมใช้คำสั่งด้านล่างนี้สั่งปริ๊นจากหน้าฟอร์ม แต่เอกสารที่ผมต้องการปริ๊น
มีทั้งหมด 8 ชุด เวลาปริ๊น มันก็จะเปิดหน้าที่จะปริ๊น สั่งปริ๊น แล้วก็ปิดรายงาน
ทำแบบนี้ทั้งหมด 8 ครั้ง เครื่องผม สเปคมันก็ไม่ค่อยสูงนัก เวลามันโหลดรายงานขึ้นมาแต่ละทีก็เลยต้องใช้เวลาหน่อย
เลยอยากจะทราบว่ามีวิธีที่เราจะสั่งปริ๊นได้เลย โดยที่ไม่ต้องแสดง พรีวิว
ก่อนได้ไหม แบบว่า ระบุืชื่อรายงาน ระบุหน้า แล้วก็ปริ๊นเลย
ถ้าทำได้มันก็จะได้เบาแรง เจ้าคอมความเร็วเต่า ของผมไปได้เยอะเลยครับ
รบกวน ทุกท่านแนะนำด้วยครับ
DoCmd.OpenReport "Rp001", acViewPreview
DoCmd.PrintOut acPages, sig, sig
DoCmd.Close acReport, "Rp001"
มีทั้งหมด 8 ชุด เวลาปริ๊น มันก็จะเปิดหน้าที่จะปริ๊น สั่งปริ๊น แล้วก็ปิดรายงาน
ทำแบบนี้ทั้งหมด 8 ครั้ง เครื่องผม สเปคมันก็ไม่ค่อยสูงนัก เวลามันโหลดรายงานขึ้นมาแต่ละทีก็เลยต้องใช้เวลาหน่อย
เลยอยากจะทราบว่ามีวิธีที่เราจะสั่งปริ๊นได้เลย โดยที่ไม่ต้องแสดง พรีวิว
ก่อนได้ไหม แบบว่า ระบุืชื่อรายงาน ระบุหน้า แล้วก็ปริ๊นเลย
ถ้าทำได้มันก็จะได้เบาแรง เจ้าคอมความเร็วเต่า ของผมไปได้เยอะเลยครับ
รบกวน ทุกท่านแนะนำด้วยครับ
DoCmd.OpenReport "Rp001", acViewPreview
DoCmd.PrintOut acPages, sig, sig
DoCmd.Close acReport, "Rp001"
17 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R04363
เพิ่มเติมครับ
หน้าที่จะปริ๊น มาจาก เท็กบ็อกซ์ที่ OnForm อยู่ในขณะนั้น
sig = CLng(Left(ID, 3))
หน้าที่จะปริ๊น มาจาก เท็กบ็อกซ์ที่ OnForm อยู่ในขณะนั้น
sig = CLng(Left(ID, 3))
3 @R04365
ลองแล้วครับ ชุดแรกมันออกมาตามหน้าที่เรา ระบุไว้ ตามนี้
sig = CLng(Left(ID, 3))
DoCmd.OpenReport "Rp001", acViewPreview
DoCmd.PrintOut acPages, sig, sig
DoCmd.Close acReport, "Rp001"
แต่พอชุดแรกหมด
มันสั่งพิมพ์หมดทุกหน้าต่อเลยครับ มี 8 รายงาน
ก็ออกมาทุกหน้า ของ 8 รายงานเลยครับ
รบกวนด้วยครับ
sig = CLng(Left(ID, 3))
DoCmd.OpenReport "Rp001", acViewPreview
DoCmd.PrintOut acPages, sig, sig
DoCmd.Close acReport, "Rp001"
แต่พอชุดแรกหมด
มันสั่งพิมพ์หมดทุกหน้าต่อเลยครับ มี 8 รายงาน
ก็ออกมาทุกหน้า ของ 8 รายงานเลยครับ
รบกวนด้วยครับ
4 @R04366
จากตัวอย่างมาโครที่แนะนำ มันไม่น่าจะพิมพ์รายงานอื่นๆนอกจากที่เราระบุในมาโครนั้นได้
ลองสั่นรันมาโครอย่างเดียว โดยยังไม่ต้องไปผูกมาโครนี้กับอะไร ดูซิว่ามันโอเคไหม
ลองสั่นรันมาโครอย่างเดียว โดยยังไม่ต้องไปผูกมาโครนี้กับอะไร ดูซิว่ามันโอเคไหม
5 @R04368
ลองแล้วครับ มันไม่ขึ้นพรีวิว แต่ว่ามันสั่งปริ๊นทั้งรายงานเลย
ผมต้องการให้มันสั่งปริ๊น แค่หน้าที่มีเลขหน้าเท่ากับ
เท็กบอกซ์ ที่ชื่อว่า ID ตามโค้ด ด้านล่างนี้ น่ะครับ
sig = CLng(Left(ID, 3))
DoCmd.OpenReport "Rp001", acViewPreview
DoCmd.PrintOut acPages, sig, sig
DoCmd.Close acReport, "Rp001"
แต่ผมมีทั้งหมด 8 รายงาน
ที่ต้องการให้มันปริ๊นเฉพาะหน้าที่ต้องการน่ะครับ
ท่านใดพอจะแนะนำได้ ก็ขอรบกวนด้วยครับ
ขอบคุณ คุณ "ผ่านมา" ที่สละเวลามาตอบให้ครับ
ผมต้องการให้มันสั่งปริ๊น แค่หน้าที่มีเลขหน้าเท่ากับ
เท็กบอกซ์ ที่ชื่อว่า ID ตามโค้ด ด้านล่างนี้ น่ะครับ
sig = CLng(Left(ID, 3))
DoCmd.OpenReport "Rp001", acViewPreview
DoCmd.PrintOut acPages, sig, sig
DoCmd.Close acReport, "Rp001"
แต่ผมมีทั้งหมด 8 รายงาน
ที่ต้องการให้มันปริ๊นเฉพาะหน้าที่ต้องการน่ะครับ
ท่านใดพอจะแนะนำได้ ก็ขอรบกวนด้วยครับ
ขอบคุณ คุณ "ผ่านมา" ที่สละเวลามาตอบให้ครับ
6 @R04369
เท่าที่ทราบ ถ้าต้องการพิมพ์เลือกหน้า มันก็ต้องพรีวิวก่อนครับ ไม่ก็...ซื้อแรมเพิ่ม หรือเปลี่ยนเครื่องใหม่เลย (ตอบสไตล์ไมโครซอฟท์เลย )
7 @R04370
เรียนคุณ นครินทร์
ผมไม่ค่อยเข้าใจความต้องการของคุณเท่าใดนัก แต่ขอเดาว่าคุณต้องการเลือกหน้าเอกสารที่ต้องการพิมพ์(ไม่ได้พิมพ์ทั้งหมด) งั้นลองแบบนี้นะครับ
สร้างมาโครตามรูปนี้
แล้วเพิ่มคำสั่งที่มาโครเดิมอีกหนึ่งคำสั่งตามรูปในกระทู้ถัดไปครับ
ผมไม่ค่อยเข้าใจความต้องการของคุณเท่าใดนัก แต่ขอเดาว่าคุณต้องการเลือกหน้าเอกสารที่ต้องการพิมพ์(ไม่ได้พิมพ์ทั้งหมด) งั้นลองแบบนี้นะครับ
สร้างมาโครตามรูปนี้
แล้วเพิ่มคำสั่งที่มาโครเดิมอีกหนึ่งคำสั่งตามรูปในกระทู้ถัดไปครับ
8 @R04371
คำสั่งที่สองครับ
ลองดูนะครับ
ลองดูนะครับ
9 @R04372
คุณมีกี่รายงานก็สร้างมาโครแบบเดียวกันนี้ ของแต่ละรายงานครับ
จากนั้นคุณก็ไปเขียนโค้ดให้รันมาโครที่ต้องการเท่านั้น เช่น
DoCmd.RunMacro....... หรือหากไม่ต้องการเขียนโค้ด คุณก็สั่งรันมาโครได้จาก Event ที่ต้องการ ตามรูปนี้ก็ได้ครับ
จากนั้นคุณก็ไปเขียนโค้ดให้รันมาโครที่ต้องการเท่านั้น เช่น
DoCmd.RunMacro....... หรือหากไม่ต้องการเขียนโค้ด คุณก็สั่งรันมาโครได้จาก Event ที่ต้องการ ตามรูปนี้ก็ได้ครับ
10 @R04373
" เท่าที่ทราบ ถ้าต้องการพิมพ์เลือกหน้า มันก็ต้องพรีวิวก่อนครับ ไม่ก็...ซื้อแรมเพิ่ม หรือเปลี่ยนเครื่องใหม่เลย "
ถ้าเป็นอย่างนั้น ก็คงต้องทำใจ กับ ทนรอ อย่างเดียวละครับ
ขอบคุณ อ.สันติสุข ครับผม
ขอบคุณ คุณ "ผ่านมา" ที่สละเวลา ให้คำแนะนำครับ
ต้องขออ??ัย ที่อธิบายความต้องการ ไม่ชัดเจนด้วยครับผม
ทำให้เข้าใจไม่ตรงกัน ขอบคุณมากครับผม
ถ้าเป็นอย่างนั้น ก็คงต้องทำใจ กับ ทนรอ อย่างเดียวละครับ
ขอบคุณ อ.สันติสุข ครับผม
ขอบคุณ คุณ "ผ่านมา" ที่สละเวลา ให้คำแนะนำครับ
ต้องขออ??ัย ที่อธิบายความต้องการ ไม่ชัดเจนด้วยครับผม
ทำให้เข้าใจไม่ตรงกัน ขอบคุณมากครับผม
11 @R04374
ที่ MAcro ลองเล่นคำสั่ง PrintOut ดูนะครับ ใส่จำนวนว่าจะเอากี่ชุดก็ได้ครับ ถ้าเป็นAccess2007จะไม่แสดงคำสั่งนี้ เขียนเข้าไปก็ไม่ได้ ผมเลยเปิด Access2003 แล้วCopyเข้ามาวางครับ
ไม่รู้ว่าตรงคำถามรึเปล่า เผื่อช่วยได้บ้าง แหะๆ
ไม่รู้ว่าตรงคำถามรึเปล่า เผื่อช่วยได้บ้าง แหะๆ
12 @R04375
แก้ไขรูปที่1ครับ รูปมันซ้ำ รูปนี้ให้มันตรงกับฟอร์มที่เปิดครับ
13 @R04377
ผมไม่ค่อยเก่งเรื่องโค้ดน่ะครับ
เท่าที่ดู ถ้าเดาไม่ผิด
เป็นการใช้ คำสั่ง OpenReport กรองเอาหน้าที่เราต้องการใช่ไหมครับ
แล้วใช้คำสั่ง PrintOut สั่งปริ๊น ทั้งหมด โดยที่ไม่ต้อง Preview
จะลองเอาไปศึกษาดูครับ
ขอบคุณสำหรับคำแนะนำครับ
เท่าที่ดู ถ้าเดาไม่ผิด
เป็นการใช้ คำสั่ง OpenReport กรองเอาหน้าที่เราต้องการใช่ไหมครับ
แล้วใช้คำสั่ง PrintOut สั่งปริ๊น ทั้งหมด โดยที่ไม่ต้อง Preview
จะลองเอาไปศึกษาดูครับ
ขอบคุณสำหรับคำแนะนำครับ
14 @R04380
ใช่ครับ ให้มัน OpenReport แล้วปริ๊น ตามOrderID ที่กำลังเปิดอยู่ที่หน้าฟอร์มในขณะนั้นน่ะครับ
ถ้าไม่เอาตาม OrderID ก็เลือกชื่อฟิล์ดอื่นแทนเอาครับ
ถ้าไม่เอาตาม OrderID ก็เลือกชื่อฟิล์ดอื่นแทนเอาครับ
15 @R04381
ถ้าจะรบกวน ขอ โค้ดลงให้ชัดๆ พร้อมกับคำอธิบาย
ด้วยสักเล็กน้อย พอเข้าใจ พอคลำทางไปต่อได้
จะได้ไหมครับ ไม่ค่อยเก่งเรื่องโค้ดน่ะครับ
ต้องขอรบกวนอีกสักครั้งครับผม
ด้วยสักเล็กน้อย พอเข้าใจ พอคลำทางไปต่อได้
จะได้ไหมครับ ไม่ค่อยเก่งเรื่องโค้ดน่ะครับ
ต้องขอรบกวนอีกสักครั้งครับผม
16 @R04383
ทำได้แล้วครับ หลังจาก งม อยู่เกือบ ชั่วโมง
ขอบคุณคุณ "BenTen" มากครับ
ที่สละเวลามาให้คำแนะนำ
ขอบคุณครับผม
ขอบคุณคุณ "BenTen" มากครับ
ที่สละเวลามาให้คำแนะนำ
ขอบคุณครับผม
17 @R04389
ขอโทษครับ ที่ยังไม่ทันเพิ่มเนื้อหาต่อครับ พึ่งกลับมาครับ ยินดีด้วยนะครับผม
Time: 0.3352s
แล้วก็สั่งรันมาโครนี้ จากปุ่มคำสั่งเดิมของคุณครับ