เลื่อนข้อมูลใน recordset
กระทู้เก่าบอร์ด อ.Yeadram

 1,278   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 แล้ว

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

1 @R02098
คุณจะรู้ได้ยังไง คุณจะสังเกตจากตรงไหน ว่ามันเลื่อนหรือไม่เลื่อน

    rs.MoveNext
End Sub

มันอาจจะเลื่อนแล้วก็ได้ แต่คุณ End sub ไปซะก่อน เลยไม่เห็นอะไร

จริงๆ แล้วมันน่าจะเป็นอย่างนี้นะครับ
Set db = CurrentDb()
Set rs = db.OpenRecordset("tbl1")
    rs.MoveNext
    Me.txtnvgID = rs!ID
End Sub
2 @R02099
ขอบคุณค่ะ

แล้วทำไมพอกดปุ่มซ้ำแล้วข้อมูลยังเป็นค่าเดิมไม่เลื่อนไปอ่ะคะ?
3 @R02100
Set rs = db.OpenRecordset("tbl1")
ทุกครั้งที่คุณกด คุณก็สั่งให้มันเปิดใหม่ทุกครั้ง (เปิดครั้งที่แล้วก็ยังไม่ได้ปิด)
ทุกครั้งที่มันเปิดใหม่ ถ้ามีเรคคอร์ด มันก็จะไปอยู่ที่เรคคอร์ดแรก ดังนั้นในการกดครั้งนี้ ในโค้ดชุดนี้ สรุปว่า คุณสั่งให้มันไปเรคคอร์ดที่ สอง (ตายตัว)

คุณวางแนวความคิดผิดครับ ทำให้วางลำดับกระบวนงานได้ยากหรือ ผิดหมดเลยครับ

คุณจะเลื่อนเรคคอร์ดของอะไร ของแหล่งข้อมูลบนฟอร์มนี้หรือเปล่า หรือว่า tbl1 เป็นแหล่งข้อมูลภายนอก
ถ้าการเลื่อนเรคคอร์ดของฟอร์มปัจจุบัน (ซึ่งฟอร์มปัจจุบันมีแหล่งข้อมูลอยู่แล้ว) ให้คุณใช้คำสั่ง
Private Sub cmdNext_Click()
docmd.gotorecord..................
End sub
บรรทัดเดียวครับ จบเลย

แต่ถ้าที่คุณทำ คิดจะเลื่อนเรคคอร์ดของแหล่งข้อมูลอื่น ต้องคิดใหม่
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2633s