กระทู้เก่าบอร์ด อ.Yeadram
        
           1,579   3		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        เปลี่ยนเรคคอร์ดหนึ่ง เรคคอร์ดเปลี่ยนตาม      
    
      ดิฉันต้องการเลือกรหัสใน combo box แล้ว ให้ชื่อ และนามสกุล มาแสดงในช่องที่ได้กำหนดไว้โดยใช้คำสั่งตามข้างล่างนี้ 
Private Sub Combo48_Change()
Dim InformantID1, informantName1 As String
Dim MyDB As DAO.Database
Dim MyRec As DAO.Recordset
Dim MySQL, MySQL1 As String
Set MyDB = CurrentDb()
InformantID1 = Combo48.Value
Me.informantName.Value = " "
MySQL = "Select * From Table1"
Set MyRec = MyDB.OpenRecordset(MySQL)
Do Until MyRec![InformantID] = InformantID1
MyRec.MoveNext
Loop
informantName1 = MyRec![Name(TH)] & " " & MyRec![Surname(TH)]
Me.informantName = informantName1
MyRec.Close
MyDB.Close
End Sub
เมื่อคลิกเลือกข้อมูลใน combo แล้ว ช่องที่ระบุไว้แสดงค่ะ แต่ดันแสดงทุกเรคคอร์ดเลยค่ะ
อ. รู้ไหมคะว่าเป็นเพราะสาเหตุอันใด จากโค้ด ดิฉันเขียนผิดหรือเปล่าคะ
ขอบพระคุณล่วงหน้าค่ะ
    
  Private Sub Combo48_Change()
Dim InformantID1, informantName1 As String
Dim MyDB As DAO.Database
Dim MyRec As DAO.Recordset
Dim MySQL, MySQL1 As String
Set MyDB = CurrentDb()
InformantID1 = Combo48.Value
Me.informantName.Value = " "
MySQL = "Select * From Table1"
Set MyRec = MyDB.OpenRecordset(MySQL)
Do Until MyRec![InformantID] = InformantID1
MyRec.MoveNext
Loop
informantName1 = MyRec![Name(TH)] & " " & MyRec![Surname(TH)]
Me.informantName = informantName1
MyRec.Close
MyDB.Close
End Sub
เมื่อคลิกเลือกข้อมูลใน combo แล้ว ช่องที่ระบุไว้แสดงค่ะ แต่ดันแสดงทุกเรคคอร์ดเลยค่ะ
อ. รู้ไหมคะว่าเป็นเพราะสาเหตุอันใด จากโค้ด ดิฉันเขียนผิดหรือเปล่าคะ
ขอบพระคุณล่วงหน้าค่ะ
				3 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R08900    
        
  
      ขออภัยค่ะ
**จากโค้ด ช่องที่ระบุไว้ก็คือtext box ชื่อ informantName ใช่ไหมคะ และเนื่องจากcombo นี้อยู่บนฟรอ์มค่ะ พอเลือกข้อมูล(รหัส)ใน combo แล้ว text box ดังกล่าวจะแสดงชื่อของรหัสที่เลือกใน combo ค่ะ เมื่อกรอกข้อมูลในฟรอ์มหน้านี้เสร็จ กด Next reccord ค่าที่ขึ้นในฟอร์มก่อนหน้า(เรคคอร์ดก่อนหน้า) จะขึ้นที่ฟอร์มอื่นๆด้วยค่ะ
ไม่ทราบว่าอธิบายแบบนี้พอเข้าใจหรือยังคะ....จะลองแก้ไขโค้ดตามนะคะ
-/\- ขอบพระคุณค่ะ
    
    
  **จากโค้ด ช่องที่ระบุไว้ก็คือtext box ชื่อ informantName ใช่ไหมคะ และเนื่องจากcombo นี้อยู่บนฟรอ์มค่ะ พอเลือกข้อมูล(รหัส)ใน combo แล้ว text box ดังกล่าวจะแสดงชื่อของรหัสที่เลือกใน combo ค่ะ เมื่อกรอกข้อมูลในฟรอ์มหน้านี้เสร็จ กด Next reccord ค่าที่ขึ้นในฟอร์มก่อนหน้า(เรคคอร์ดก่อนหน้า) จะขึ้นที่ฟอร์มอื่นๆด้วยค่ะ
ไม่ทราบว่าอธิบายแบบนี้พอเข้าใจหรือยังคะ....จะลองแก้ไขโค้ดตามนะคะ
-/\- ขอบพระคุณค่ะ
        
    3 @R08901    
        
    
      ที่ปุ่ม Next record ให้ใส่ Code นี้เพิ่มต่อในบรรทัดต่อไปคือ
If IsNull(Combo48) Or Combo48 = "" Then
Me.informantName = Null
Else
Me.informantName = MyRec![Name(TH)] & " " & MyRec![Surname(TH)]
End If
    
  If IsNull(Combo48) Or Combo48 = "" Then
Me.informantName = Null
Else
Me.informantName = MyRec![Name(TH)] & " " & MyRec![Surname(TH)]
End If
      Time: 0.7824s
    
      
		
** ตรงที่บอกว่าเมื่อคลิกเลือกข้อมูล combo แล้ว ช่องที่ระบุไว้แสดงทุกเรคคอร์ด ตรงนี้ไม่เข้าใจความหมายครับ เนื่องจาก Combo Box ไม่น่าจะแสดงข้อมูลทุกเรคคอร์ด เหมือน List Box นิครับ
ลองแก้ไขเป็นแบบนี้ดูให้กระชับและสั้นลง
Private Sub Combo48_Change()
Dim MyDB As DAO.Database
Dim MyRec As DAO.Recordset
Set MyDB = CurrentDb()
Set MyRec = MyDB.OpenRecordset("Table1")
Me.informantName.Value = ""
Do Until MyRec![InformantID] = Combo48.Value
MyRec.MoveNext
Loop
Me.informantName = MyRec![Name(TH)] & " " & MyRec![Surname(TH)]
MyRec.Close
MyDB.Close
End Sub