กระทู้เก่าบอร์ด อ.Yeadram
        
           7,419   12		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        Access2000 ต้องการสั่ง Print เป็น File PDF      
    
      ปัจจุบันผมใช้ Access 2000 ในการทำงานครับ โดยงานเป็นการทำจดหมายแจ้งลูกค้า โดยปกติ ผมเขียนเป็น VBA สร้าง Form กรอกรายละเอียดแล้วกดปุ่มตกลง ก็จะ ให้ Report สั่ง Print จดหมายออกทางเครื่อง Print  ส่วนข้อมูลก็เก็บไว้ใน Table ครับ....  แต่เร็ว ๆ นี้จะเปลี่ยนแจ้งลูกค้าบางส่วน File PDF แล้วแนบผ่าน Mail ไปแทนครับ ไม่ทราบว่าพอจะมี Code หรือ Funtion ที่เขียนลักษณะนี้หรือเปล่าครับ ผมหาแล้วมันไม่เจอ ไปค้นหาในกระทู้เก่า ๆ ก็ยังไม่ตรงกับสิ่งที่ผมต้องการครับ...    
    
  
				12 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R01779    
        
  
      แนะนำ PDFCreator ครับ ที่บริษัทฯใช้อยู่
มีให้สั่งพิมพ์ผ่าน Command Line ให้ใช้ด้วย
สั่งให้พิมพ์แล้วส่งผ่านออกอีเมล์เลยก็ได้
กำหนดโฟล์เดอร์เซฟไฟล์ที่พิมพ์เป็นดีฟอล์ทเลยก็ได้
ผมว่าจะลองเขียนให้สั่งพิมพ์ Excel ผ่าน Access ดู
แต่ยังไม่มีเวลา เลยใช้แบบ Manual ไปก่อน
ที่สำคัญ ... ฟรีครับ
    
  มีให้สั่งพิมพ์ผ่าน Command Line ให้ใช้ด้วย
สั่งให้พิมพ์แล้วส่งผ่านออกอีเมล์เลยก็ได้
กำหนดโฟล์เดอร์เซฟไฟล์ที่พิมพ์เป็นดีฟอล์ทเลยก็ได้
ผมว่าจะลองเขียนให้สั่งพิมพ์ Excel ผ่าน Access ดู
แต่ยังไม่มีเวลา เลยใช้แบบ Manual ไปก่อน
ที่สำคัญ ... ฟรีครับ
        
    3 @R01782    
        
  
      ขอบคุณมากครับ... เดี๋ยวลองไป Download มาใช้ดูก่อน ถ้ามีปัญหาจะเข้ามาขอคำแนะนำใหม่ครับ    
    
  
        
    4 @R01876    
        
  
      ไปทำตามที่ทุกท่านแนะนำได้แล้วครับ......
แต่มีปัญหาอยู่อีกอย่างหนึ่งครับ เนื่องจากงานที่ทำจะมีทั้งต้อง Print เป็น กระดาษ ออกทางเครื่องพิมพ์ และต้อง Print เป็น File PDF ซึ่งเมื่อลองใช้แล้วจะต้องคอยไปเปลี่ยน Printer ก่อนจะสั่งพิมพ์อยู่ตลอดเนื่องจากข้อมูลลูกค้าที่ได้รับมาจะปนกันอยู่ตลอดระหว่างเป็นกระดาษ กับ File PDF ไม่ทราบว่าพอจะมี Code ที่ถ้าสั่งเป็น PDF จะไปเปลี่ยน Printer ให้อัตโนมัติ หรือเปล่าครับ หรือว่าให้เรียกค่า Printer ให้ Set ก่อนพิมพ์ก็ได้ครับ เพราะทุกวันนี้จะต้องไปที่ Start > Setting>Printer and Fax ตลอดเลยมันทำให้เสียเวลาและเกิดข้อผิดพลาดในการทำงานครับ...
    
  แต่มีปัญหาอยู่อีกอย่างหนึ่งครับ เนื่องจากงานที่ทำจะมีทั้งต้อง Print เป็น กระดาษ ออกทางเครื่องพิมพ์ และต้อง Print เป็น File PDF ซึ่งเมื่อลองใช้แล้วจะต้องคอยไปเปลี่ยน Printer ก่อนจะสั่งพิมพ์อยู่ตลอดเนื่องจากข้อมูลลูกค้าที่ได้รับมาจะปนกันอยู่ตลอดระหว่างเป็นกระดาษ กับ File PDF ไม่ทราบว่าพอจะมี Code ที่ถ้าสั่งเป็น PDF จะไปเปลี่ยน Printer ให้อัตโนมัติ หรือเปล่าครับ หรือว่าให้เรียกค่า Printer ให้ Set ก่อนพิมพ์ก็ได้ครับ เพราะทุกวันนี้จะต้องไปที่ Start > Setting>Printer and Fax ตลอดเลยมันทำให้เสียเวลาและเกิดข้อผิดพลาดในการทำงานครับ...
        
    5 @R01878    
        
  
      ถ้าคุณสั่งพิมพ์โดยการกดที่รูป เครื่องพิมพ์ ก็มักจะพิมพ์ออกที่ Default Printer ทำให้ต้องยุ่งยากต่อการไปเปลี่ยน Default Printer ทุกครั้ง   แต่ถ้าคุณสั่งพิมพ์โดยการกดคีย์ Ctrl-P หรือเมนู File > Print ...  มันก็จะขึ้นเป็น Printer Dialog เพื่อให้เลือกเครื่องพิมพ์ที่จะพิมพ์แทนครับ ทำให้ง่ายต่อการเลือกเครื่องพิมพ์มากกว่าการเปลี่ยน Defualt Printer
อย่างไรก็ตาม มันขึ้นกับ Application นั้นๆว่าออกแบบมาอย่างไรนะครับ ที่ผมบอกไป ไม่ตายตัว
    
  อย่างไรก็ตาม มันขึ้นกับ Application นั้นๆว่าออกแบบมาอย่างไรนะครับ ที่ผมบอกไป ไม่ตายตัว
        
    6 @R01880    
        
  
      ขอบคุณครับ คุณสันติสุข พอดีว่า Application ที่ได้สร้างขึ้นมาเมื่อใส่ข้อมูลครบแล้ว กด Enter ระบบจะทำการ Save แล้ว Print ให้ทันทีครับ ตอนนี้ที่ผมคิดแก้ไขในระยะสั้นก็คือเมื่อเขียน Code ให้ Save แล้วให้ไปตรวจสอบค่า ChackBox ว่าติ๊กให้เป็น Pdf หรือไม่ในกรณีใช่ให้ทำการ Load Printer ขึ้นมาเพื่อให้ Set Printer ก่อน ครับ แต่ประเด็นคือไม่รู้ว่าจะเขียน Code ด้วยคำสั่งอะไรเพื่อให้ Printer ขึ้นมาครับ...    
    
  
        
    7 @R01881    
        
  
      ไม่ทราบว่าในเครื่อง มี comdlg32.ocx หรือเปล่าครับ ดูใน c:\windows\system32 ครับ
ถ้ามีนะครับ ใช้ตัวนี้แหละครับ ง่ายดี
เปิดฟอร์มในมุมมองออกแบบ สั่งโชว์ toolbar "เครื่องมือ"
ตรงไอคอนทีเป็นรูปฆ้อนไขว้กันอยู่ (more controls) ให้คลิ๊กแล้วเลื่อนหา
Microsoft common dialog control (sp6)
ลองศึกษาการใช้ตาม google ได้ครับ ถ้าใช้ได้คล่อง มันมีประโยชน์มากนะครับ
- showopen ไว้ค้นหาและเลือกไฟล์จากในเครื่องของเรา
- showsave ไว้ระบุพาธ ที่จะเซฟไฟล์
- showcolor ไว้เลือกสี จาก system palace
- showprinter ไว้เลือก เครื่องปริ๊นท์เวลาจะปริ๊นท์
เวลาผมโค้ด เพื่อให้โปรแกรมค้นหาไฟล์ หรือค้นหาตำแหน่งที่จะเซฟไฟล์ export ผมใช้ตัวนี้แหละครับ ได้ทุกงาน เมื่อกี้ลองใช้คำสั่ง showprinter ดู มันก็น่าจะได้ตามที่คุณต้องการนะครับ
มีใน google หลายหน้ามากครับ สอนวิธีใช้ วิธีวางคำสั่ง มันเป็นคอนโทรลที่ไม่มีรูปร่างเวลาแสดงผล (หมายความว่าอยากวางตรงไหนก็ได้ เพราะมันไม่บังคอนโทรลตัวอื่นๆ)
ผมเห็นหลายกระทู้หลายความเห็นที่พากันไปเอาโค้ด หรือพากันเขียนโค้ดขึ้นใหม่ เพื่อจะ browse file ผมอยากแนะนำจังว่า ทำไมไม่เอา คอมโพเน้นท์ตัวนี้มาใช้กัน แต่กลัวว่าจะเขียนยาวแล้วปัญหาตามมาเยอะเนื่องจาก ผู้ใช้บางรายไม่ได้ติดตั้ง vb6 อย่างผม หลายๆ คอมโพเน้นท์จึงหาใช้ไม่ค่อยได้
ถ้าเกิดว่าสนใจอยากลองใช้ คอมโพเน้นท์ตัวนี้ แล้วไปหาที่เครื่องไม่เจอ ขอมาได้นะครับ เดี๋ยวส่งให้ // ผมไม่แน่ใจว่า คอมโพเนนท์ตัวนี้แถมมากับ window หรือ office หรือ vb6 กันแน่เหมือนกันครับ
 
รูปตัวอย่างนี้เพื่อให้นึกภาพออกเท่านั้นนะครับ เวลาใช้จริงอาจต้องปรับแต่งพวก properties อีกนิดหน่อย และวางคำสั่งเพิ่มเติมอีกหน่อยครับ
    
  ถ้ามีนะครับ ใช้ตัวนี้แหละครับ ง่ายดี
เปิดฟอร์มในมุมมองออกแบบ สั่งโชว์ toolbar "เครื่องมือ"
ตรงไอคอนทีเป็นรูปฆ้อนไขว้กันอยู่ (more controls) ให้คลิ๊กแล้วเลื่อนหา
Microsoft common dialog control (sp6)
ลองศึกษาการใช้ตาม google ได้ครับ ถ้าใช้ได้คล่อง มันมีประโยชน์มากนะครับ
- showopen ไว้ค้นหาและเลือกไฟล์จากในเครื่องของเรา
- showsave ไว้ระบุพาธ ที่จะเซฟไฟล์
- showcolor ไว้เลือกสี จาก system palace
- showprinter ไว้เลือก เครื่องปริ๊นท์เวลาจะปริ๊นท์
เวลาผมโค้ด เพื่อให้โปรแกรมค้นหาไฟล์ หรือค้นหาตำแหน่งที่จะเซฟไฟล์ export ผมใช้ตัวนี้แหละครับ ได้ทุกงาน เมื่อกี้ลองใช้คำสั่ง showprinter ดู มันก็น่าจะได้ตามที่คุณต้องการนะครับ
มีใน google หลายหน้ามากครับ สอนวิธีใช้ วิธีวางคำสั่ง มันเป็นคอนโทรลที่ไม่มีรูปร่างเวลาแสดงผล (หมายความว่าอยากวางตรงไหนก็ได้ เพราะมันไม่บังคอนโทรลตัวอื่นๆ)
ผมเห็นหลายกระทู้หลายความเห็นที่พากันไปเอาโค้ด หรือพากันเขียนโค้ดขึ้นใหม่ เพื่อจะ browse file ผมอยากแนะนำจังว่า ทำไมไม่เอา คอมโพเน้นท์ตัวนี้มาใช้กัน แต่กลัวว่าจะเขียนยาวแล้วปัญหาตามมาเยอะเนื่องจาก ผู้ใช้บางรายไม่ได้ติดตั้ง vb6 อย่างผม หลายๆ คอมโพเน้นท์จึงหาใช้ไม่ค่อยได้
ถ้าเกิดว่าสนใจอยากลองใช้ คอมโพเน้นท์ตัวนี้ แล้วไปหาที่เครื่องไม่เจอ ขอมาได้นะครับ เดี๋ยวส่งให้ // ผมไม่แน่ใจว่า คอมโพเนนท์ตัวนี้แถมมากับ window หรือ office หรือ vb6 กันแน่เหมือนกันครับ
 
รูปตัวอย่างนี้เพื่อให้นึกภาพออกเท่านั้นนะครับ เวลาใช้จริงอาจต้องปรับแต่งพวก properties อีกนิดหน่อย และวางคำสั่งเพิ่มเติมอีกหน่อยครับ
        
    8 @R01882    
        
  
      ทำอย่างง่ายๆครับ
DoCmd.OpenReport "ชื่อรายงาน", acViewPreview
SendKeys "^p", True
แค่นี้มันก็จะเปิด Print Dialog ครับ
    
  DoCmd.OpenReport "ชื่อรายงาน", acViewPreview
SendKeys "^p", True
แค่นี้มันก็จะเปิด Print Dialog ครับ
        
    9 @R01883    
        
  
      ขอบคุณสำหรับคำแนะนำครับ คุณ yeadram เครื่องผมมี comdlg32.ocx ครับ 
เดี๋ยวจะลองทำดูตามคุณ yeadram และ คุณสันติสุข ส่วนได้ผลอย่างไรจะแจ้งให้ทราบครับ...
    
    
  เดี๋ยวจะลองทำดูตามคุณ yeadram และ คุณสันติสุข ส่วนได้ผลอย่างไรจะแจ้งให้ทราบครับ...
        
    10 @R01889    
        
  
      คุณ yeadram  เครื่องผมมี comdlg32.ocx แต่ผมทำตามที่คุณบอกแต่ไม่เจอตัว 
Microsoft common dialog control (sp6) ครับ...
คุณสันติสุข ผมลองใส่ Code ตามนี้
DoCmd.OpenReport "R_Letter_O_PLPS", acViewNormal,Sendkeys ^P, "ID='" & Txtid.Value & "'" พอ Run ดูมันขึ้น Compile Error ครับ ส่วนถ้าใส่ "^p" แบบนี้มันแจ้งว่า code ผิดครับ...
    
    
  Microsoft common dialog control (sp6) ครับ...
คุณสันติสุข ผมลองใส่ Code ตามนี้
DoCmd.OpenReport "R_Letter_O_PLPS", acViewNormal,Sendkeys ^P, "ID='" & Txtid.Value & "'" พอ Run ดูมันขึ้น Compile Error ครับ ส่วนถ้าใส่ "^p" แบบนี้มันแจ้งว่า code ผิดครับ...
        
    11 @R01891    
        
  
      ที่ให้ไป มัน 2 คำสั่งครับ 2 บรรทัดครับ ไม่ใช่คำสั่งเดียว อย่าเอามาเขียนติดกัน    
    
  
        
    12 @R01892    
        
    
      คุณ yeadram  ผมลืมลงทะเบียนกับตัว OS ก่อน เลยมองไม่เห็น ตอนนี้ขึ้นแล้วจะลอง Code ดูครับ
คุณสันติสุข ขอบคุณครับผมไม่รอบคอบเอง ไม่ได้ดูให้ดีก่อน เดี๋ยวจะลองทำดูอีกทีครับ แล้วจะแจ้งผลกับไปครับ
    
  คุณสันติสุข ขอบคุณครับผมไม่รอบคอบเอง ไม่ได้ดูให้ดีก่อน เดี๋ยวจะลองทำดูอีกทีครับ แล้วจะแจ้งผลกับไปครับ
      Time: 0.0600s
    
      
		
http://www.cutepdf.com/Products/CutePDF/writer.asp
จะสร้าง virtual printer ชื่อ CuteWriter ขึ้นมาให้ เวลาพิมพ์ก็สั่งพิมพ์ออกที่มัน แล้วจะแสดงไดอะล็อกซ์ให้เลือกว่าจะเก็บ pdf ลงในโฟลเดอร์อะไร