กระทู้เก่าบอร์ด อ.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 แล้ว ช่องที่ระบุไว้แสดงค่ะ แต่ดันแสดงทุกเรคคอร์ดเลยค่ะ
อ. รู้ไหมคะว่าเป็นเพราะสาเหตุอันใด จากโค้ด ดิฉันเขียนผิดหรือเปล่าคะ
ขอบพระคุณล่วงหน้าค่ะ
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.3719s
** ตรงที่บอกว่าเมื่อคลิกเลือกข้อมูล 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