กระทู้เก่าบอร์ด อ.Yeadram
        
           1,654   4		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        checkbox เลือกเพื่อพิมพ์รายงาน      
     
อยากเรียนถามว่าถ้าหากเราจะออกรายงานพิมพ์บัตรนักเรียน โดยต้องการเลือกเอาเฉพาะที่เราเลือกเช็ค เช่นต้องการเลือกพิมพ์บัตร ม.1 ก็เช็คช่อง ม.1 และมี preview ออกมาให้ดูก่อนพิมพ์ จะต้องเขียนโค้ดยังไงคะ จะต้องทำคิวรี่เพิ่มอีกหรือไม่คะ
ขอบคุณค่ะ
				4 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R12928    
        
  
      เรียนปรึกษาอาจารย์อีกจุดค่ะ คือ ช่วงชั้นที่ 3 (rptStudentCard3) คลิกเลือก ม,ต้นได้แล้วค่ะ แต่ว่าระดับ ม.ปลาย ไม่ขึ้นเลยค่ะ คือ ชื่อรายงานม.ต้น ม.ปลาย (rptStudentCard4) คนละชื่อกันค่ะ เป็นเพราะใส่ผิดตรงไหนหรือเปล่าคะ
Private Sub Frame1_Click()
DoCmd.OpenReport "rptStudentCard3", acPreview, , "[Level] = " & Frame1
End Sub
Private Sub Frame28_Click()
DoCmd.OpenReport "rptStudentCard4", acPreview, , "[Level] = " & Frame28
End Sub
รบกวนอาจารย์ด้วยค่ะ
    
  Private Sub Frame1_Click()
DoCmd.OpenReport "rptStudentCard3", acPreview, , "[Level] = " & Frame1
End Sub
Private Sub Frame28_Click()
DoCmd.OpenReport "rptStudentCard4", acPreview, , "[Level] = " & Frame28
End Sub
รบกวนอาจารย์ด้วยค่ะ
        
    3 @R12929    
        
  
      1 ตรวจสอบค่าของ checkbox แต่ละตัวใน frame28 ว่าค่าถูกต้องหรือไม่
ค่าของมันเป็น 1 2 3 หรือ 4 5 6
2 rptStudentCard4 เป็นรายงานที่ใช้แหล่งข้อมูลจากคิวรี่หรือไม่ ถ้าใช่ ต้องตรวจสอบด้วยว่า คิวรี่นั้น มีการใช้เงื่อนไข ใดๆ หรือไม่ ถ้าคิวรี่นั้นมีการใช้เงื่อนไข เงื่อนไขนั้น ขัดแย้งกับ เงื่อนไขที่คุณส่งไปหรือไม่ ("[Level] = " & Frame28)
ถ้าตามตัวอย่างที่คุณส่งมา แล้วคุณคิดจะใช้การส่งเงื่อนไขผ่านฟอร์ม ผมขอแนะนำว่า รายงานแต่ละตัวของคุณให้ใช้ ตารางต้นทางเป็นแหล่งข้อมูลได้เลย ไม่จำเป็นต้องสร้างคิวรี่ครับ แล้วการส่งเงื่อนไขจากฟอร์มผ่านคำสั่ง openreport จะไม่มีปัญหาเรื่องของ "เงื่อนไขที่ขัดแย้งกัน"
    
  ค่าของมันเป็น 1 2 3 หรือ 4 5 6
2 rptStudentCard4 เป็นรายงานที่ใช้แหล่งข้อมูลจากคิวรี่หรือไม่ ถ้าใช่ ต้องตรวจสอบด้วยว่า คิวรี่นั้น มีการใช้เงื่อนไข ใดๆ หรือไม่ ถ้าคิวรี่นั้นมีการใช้เงื่อนไข เงื่อนไขนั้น ขัดแย้งกับ เงื่อนไขที่คุณส่งไปหรือไม่ ("[Level] = " & Frame28)
ถ้าตามตัวอย่างที่คุณส่งมา แล้วคุณคิดจะใช้การส่งเงื่อนไขผ่านฟอร์ม ผมขอแนะนำว่า รายงานแต่ละตัวของคุณให้ใช้ ตารางต้นทางเป็นแหล่งข้อมูลได้เลย ไม่จำเป็นต้องสร้างคิวรี่ครับ แล้วการส่งเงื่อนไขจากฟอร์มผ่านคำสั่ง openreport จะไม่มีปัญหาเรื่องของ "เงื่อนไขที่ขัดแย้งกัน"
        
    4 @R12931    
        
    
      ขอบพระคุณอาจารย์มากค่ะ เป็นไปตามที่อาจารย์บอกไว้เลย ที่แท้ค่า checkbox แต่ละตัวใน frame28 ผิดนี่เอง 
ขอบพระคุณอาจารย์มากๆค่ะ
    
  ขอบพระคุณอาจารย์มากๆค่ะ
      Time: 0.0605s
    
      
		
เปิด help ศึกษา การใช้คำสั่ง docmd.openreport
มันจะมีอาร์กิวเมนต์ให้ระบุ
เงื่อนไขของคุณให้ระบุในส่วนของ Where
ลักษณะการเปิดรายงานให้ระบุในส่วนของ AcView
เช่นในฟอร์มมีเฟรมชื่อ frame0
ใน frame0 มีสมาชิก checkbox 6 ตัว
แต่ละตัว มีค่าเรียงลำดับ
ตัวแรก ซึ่งเขียนคำกำกับ (Label) ว่า ม.1 มีค่าของคอนโทรล คือ 1
ตัวที่สอง ซึ่งเขียนคำกำกับ ว่า ม.2 มีค่าของคอนโทรล คือ 2
...
ดังนั้นเมื่อใดมีการติ๊กช่อง ค่าของ checkbox ตัวที่ถูกติ๊ก ก็จะส่งไปยังค่าของ Frame0 คุณก็เอาค่าของตัวนี้ไปเป็นเงื่อนไขระบุ ชั้น
docmd.openreport "Report1",acPreview,,"[Level] = " & Frame0