กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
        
           473   2		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        ฟอร์ม  เปลี่ยน Controlsource  ขณะรันไทม์ได้หรือไม่ครับ      
		
    
      ผมสร้างฟอร์มโดยใช้ Controlsource  สร้างจาก Query  โดยฟิลด์เงื่อนไข =1 (status=1) 
เมื่อเปิดฟอร์มแล้ว สามารถคลิ๊กปุ่มเลือกดูได้ตามเงื่อนไขครับ ฟิลด์เงื่อนไข =2 (status=2)
ผมลองทำแล้วมันขึ้น Run-time error '3065'
ไม่สามารถปฏิบัติการคิวรีได้
โดยผมเขียนโค๊ดดังนี้ครับ
(ฟอร์มเป็น Continous Form ส่วนปุ่มคำสั่งวางไว้บน Header ของฟอร์มครับ)
 
Private Sub Cmdlevel2_Click()
 
'ต้องการฟิลด์เงื่อนไข =2 (status=2)
 
Dim dbs As Database
Dim SQL As String
Set dbs = CurrentDb
dbs.Execute "SELECT payedlist_st.payedlist_id, payedlist_st.st_id, std.stsex, std.stname, std.stlastname, std.stnowstudy_id, std.stnowclass, std.level, payedlist_st.term, payedlist_st.date_payst, payedlist_st.date_payst2, payedlist_st.status, std.pic, std.remain, payedlist_st.sum_rate, payedlist_st.remark FROM std INNER JOIN payedlist_st ON std.st_id = payedlist_st.st_id WHERE (((payedlist_st.status)=2));"
dbs.Close
 
End Sub
 
ช่วยแนะนำด้วยครับ
    
  เมื่อเปิดฟอร์มแล้ว สามารถคลิ๊กปุ่มเลือกดูได้ตามเงื่อนไขครับ ฟิลด์เงื่อนไข =2 (status=2)
ผมลองทำแล้วมันขึ้น Run-time error '3065'
ไม่สามารถปฏิบัติการคิวรีได้
โดยผมเขียนโค๊ดดังนี้ครับ
(ฟอร์มเป็น Continous Form ส่วนปุ่มคำสั่งวางไว้บน Header ของฟอร์มครับ)
Private Sub Cmdlevel2_Click()
'ต้องการฟิลด์เงื่อนไข =2 (status=2)
Dim dbs As Database
Dim SQL As String
Set dbs = CurrentDb
dbs.Execute "SELECT payedlist_st.payedlist_id, payedlist_st.st_id, std.stsex, std.stname, std.stlastname, std.stnowstudy_id, std.stnowclass, std.level, payedlist_st.term, payedlist_st.date_payst, payedlist_st.date_payst2, payedlist_st.status, std.pic, std.remain, payedlist_st.sum_rate, payedlist_st.remark FROM std INNER JOIN payedlist_st ON std.st_id = payedlist_st.st_id WHERE (((payedlist_st.status)=2));"
dbs.Close
End Sub
ช่วยแนะนำด้วยครับ
				2 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    1 @R00944    
        
  
      Execute จะใช้ได้เฉพาะกับ Action Queries เช่น Append, Delete, Update เท่านั้นครับ 
 
ถ้าต้องการที่จะเปลี่ยน RecordSource ของฟอร์ม ให้ใช้อย่างนี้ครับ 
 
Private Sub Cmdlevel2_Click()  
    Me.RecordSource = "SELECT payedlist_st.payedlist_id, payedlist_st.st_id, " _ 
       & "std.stsex, std.stname, std.stlastname, std.stnowstudy_id, std.stnowclass, " _ 
       & "std.level, payedlist_st.term, payedlist_st.date_payst, " _ 
       & "payedlist_st.date_payst2, payedlist_st.status, std.pic, std.remain, " _ 
       & "payedlist_st.sum_rate, payedlist_st.remark FROM std INNER JOIN " _ 
       & "payedlist_st ON std.st_id = payedlist_st.st_id " _ 
       & "WHERE (((payedlist_st.status)=2));"  
End Sub  
    
    
  
        
    2 @R00945    
        
    
      แม่นจริง ๆครับอาจารย์ ตรง ๆเลยขอบพระคุณเป็นอย่างสูงครับ  
ผมอ่านตำราตั้งหลายเล่มแต่ทำไม่ได้สักที เพิ่งจะทำได้นี่แหละครับที่นี่แม่นจริง ๆเลย    
    
  
      Time: 0.0514s
    
      
		