เปลี่ยนเรคคอร์ดหนึ่ง เรคคอร์ดเปลี่ยนตาม
กระทู้เก่าบอร์ด อ.Yeadram

 1,417   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 แล้ว ช่องที่ระบุไว้แสดงค่ะ แต่ดันแสดงทุกเรคคอร์ดเลยค่ะ

อ. รู้ไหมคะว่าเป็นเพราะสาเหตุอันใด จากโค้ด ดิฉันเขียนผิดหรือเปล่าคะ

ขอบพระคุณล่วงหน้าค่ะ

3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R08899
ผมลองดูแล้วไม่เห็น Code มีปัญหานะครับ

** ตรงที่บอกว่าเมื่อคลิกเลือกข้อมูล 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
2 @R08900
ขออภัยค่ะ

**จากโค้ด ช่องที่ระบุไว้ก็คือ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
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3719s