กระทู้เก่าบอร์ด อ.Yeadram
        
           4,391   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.7020s
    
      
		
แล้วก็สั่งรันมาโครนี้ จากปุ่มคำสั่งเดิมของคุณครับ