กระทู้เก่าบอร์ด อ.Yeadram
1,344 3
URL.หัวข้อ /
URL
เลื่อนข้อมูลใน recordset
จากโค้ด
Private Sub cmdNext_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tbl1")
Me.txtnvgID = rs!ID
rs.MoveNext
End Sub
เมื่อกดปุ่มแล้ว ทำไมข้อมูลมันไม่เลื่อนไปอ่ะค่ะ ทั้งที่ใช้ rs.MoveNext แล้ว
Private Sub cmdNext_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tbl1")
Me.txtnvgID = rs!ID
rs.MoveNext
End Sub
เมื่อกดปุ่มแล้ว ทำไมข้อมูลมันไม่เลื่อนไปอ่ะค่ะ ทั้งที่ใช้ rs.MoveNext แล้ว
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R02099
ขอบคุณค่ะ
แล้วทำไมพอกดปุ่มซ้ำแล้วข้อมูลยังเป็นค่าเดิมไม่เลื่อนไปอ่ะคะ?
แล้วทำไมพอกดปุ่มซ้ำแล้วข้อมูลยังเป็นค่าเดิมไม่เลื่อนไปอ่ะคะ?
3 @R02100
Set rs = db.OpenRecordset("tbl1")
ทุกครั้งที่คุณกด คุณก็สั่งให้มันเปิดใหม่ทุกครั้ง (เปิดครั้งที่แล้วก็ยังไม่ได้ปิด)
ทุกครั้งที่มันเปิดใหม่ ถ้ามีเรคคอร์ด มันก็จะไปอยู่ที่เรคคอร์ดแรก ดังนั้นในการกดครั้งนี้ ในโค้ดชุดนี้ สรุปว่า คุณสั่งให้มันไปเรคคอร์ดที่ สอง (ตายตัว)
คุณวางแนวความคิดผิดครับ ทำให้วางลำดับกระบวนงานได้ยากหรือ ผิดหมดเลยครับ
คุณจะเลื่อนเรคคอร์ดของอะไร ของแหล่งข้อมูลบนฟอร์มนี้หรือเปล่า หรือว่า tbl1 เป็นแหล่งข้อมูลภายนอก
ถ้าการเลื่อนเรคคอร์ดของฟอร์มปัจจุบัน (ซึ่งฟอร์มปัจจุบันมีแหล่งข้อมูลอยู่แล้ว) ให้คุณใช้คำสั่ง
Private Sub cmdNext_Click()
docmd.gotorecord..................
End sub
บรรทัดเดียวครับ จบเลย
แต่ถ้าที่คุณทำ คิดจะเลื่อนเรคคอร์ดของแหล่งข้อมูลอื่น ต้องคิดใหม่
ทุกครั้งที่คุณกด คุณก็สั่งให้มันเปิดใหม่ทุกครั้ง (เปิดครั้งที่แล้วก็ยังไม่ได้ปิด)
ทุกครั้งที่มันเปิดใหม่ ถ้ามีเรคคอร์ด มันก็จะไปอยู่ที่เรคคอร์ดแรก ดังนั้นในการกดครั้งนี้ ในโค้ดชุดนี้ สรุปว่า คุณสั่งให้มันไปเรคคอร์ดที่ สอง (ตายตัว)
คุณวางแนวความคิดผิดครับ ทำให้วางลำดับกระบวนงานได้ยากหรือ ผิดหมดเลยครับ
คุณจะเลื่อนเรคคอร์ดของอะไร ของแหล่งข้อมูลบนฟอร์มนี้หรือเปล่า หรือว่า tbl1 เป็นแหล่งข้อมูลภายนอก
ถ้าการเลื่อนเรคคอร์ดของฟอร์มปัจจุบัน (ซึ่งฟอร์มปัจจุบันมีแหล่งข้อมูลอยู่แล้ว) ให้คุณใช้คำสั่ง
Private Sub cmdNext_Click()
docmd.gotorecord..................
End sub
บรรทัดเดียวครับ จบเลย
แต่ถ้าที่คุณทำ คิดจะเลื่อนเรคคอร์ดของแหล่งข้อมูลอื่น ต้องคิดใหม่
Time: 0.2997s
rs.MoveNext
End Sub
มันอาจจะเลื่อนแล้วก็ได้ แต่คุณ End sub ไปซะก่อน เลยไม่เห็นอะไร
จริงๆ แล้วมันน่าจะเป็นอย่างนี้นะครับ
Set db = CurrentDb()
Set rs = db.OpenRecordset("tbl1")
rs.MoveNext
Me.txtnvgID = rs!ID
End Sub