กำหนด Recordset ยังไงครับ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 397   10
URL.หัวข้อ / URL
กำหนด Recordset ยังไงครับ

คือผมสร้าง Text64 และ cmd Search
จะต้องเขียนโค้ดที่ cmdSearch รับค่าจากText64 ซึ่งเป็นเลขทะเบียน ยังไงครับ เพื่อทำให้
เมื่อกดปุ่ม ให้ เรคคอร์ด เลื่อนไปตาม เลข ทะเบียนครับ

ผมลองดูตัวอย่างในเว็บแล้วไม่เข้าใจ และไม่รู้จะทำยังไงดีครับ
ขอความอนุเคราะห์ด้วยครับ
ขอบคุณครับ *** Edited by Supap Chaiya *** 12/2/2003 9:55:59 AM

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

1 @R05645
Private Sub cmdSearch_Click()
reg_no.SetFocus
DoCmd.FindRecord [Text64]
End Sub
2 @R05646
ขอบคุณครับคุณ bb1รบกวนอีกครั้งนะครับ
1เมื่อค้นหาไม่เจอ ผมอยากให้แสดง Msgbox"ไม่มีเลขระเบียนที่ท่านต้องการ"
จะต้องทำยังไงเพิ่มเติมครับ
2.ถ้าอยู่เรคคอร์ดแรก อยากให้ ปุ่มรายการก่อนหน้านี้ ใช้งานไม่ได้ชั่วคราว
3.ถ้าอยู่เรคคอร์ดสุดท้าย อยากให้ ปุ่มรายการถัดไป ใช้งานไม่ได้ชั่วคราว
4.อยากให้ข้อความ" จำนวนเร็คคอร์ดที่ 1 / 23" แสดงบน Text50
คุณ bb1 เขียนโค้ดให้ 2 บรรทัด ก็สามารถใช้งานได้ตามความต้องการ
ต้องขอขอบคุณอีกครั้งครับ
3 @R05653
ผมลองทำโดยดูตัวอย่างจาก ขุมทรัพย์ Part 1 ที่ อ.สุภาพเคยนำมาให้ดาวน์โหลด
ได้อย่างนี้ครับ
Private Sub Form_Current()
Dim recClone As Recordset
Set recClone = Me.RecordsetClone()
recClone.Bookmark = Me.Bookmark
recClone.MovePrevious
cmdPrevious.Enabled = Not (recClone.BOF)
cmdFirst.Enabled = Not (recClone.BOF)
recClone.MoveNext
recClone.MoveNext
cmdLast.Enabled = Not (recClone.EOF)
cmdNext.Enabled = Not (recClone.EOF)
recClone.MovePrevious
Me![Text50] = "จำนวนเร็คคอร์ดที่ " & (recClone.AbsolutePosition + 1) & "/" & DCount("reg_no", "tbregister")
recClone.Close
End Sub

Private Sub cmdSearch_Click()
reg_no.SetFocus
DoCmd.FindRecord [Text64]
If Text64 <> reg_no Then MsgBox "ไม่มีระเบียนที่ท่านต้องการ"
End Sub
4 @R05656
คุณ bb1
ผมไม่รู้จะขอบคุณยังไง เอาเป็นว่าขอบคุณมากครับ
ผมดูโค้ดที่คุณให้มากับที่ผมลองหัดทำเอง ผมจึงรู้ว่าผมหลงทางไปไกลจริงๆ
มิหนำซ้ำยังไม่รู้ด้วยว่าจะเริ่มต้นยังไงดี
ผ่านไปได้ หนึ่งขั้น


5 @R05693
ใช้กับ AccXP ไม่ได้ครับ
มันมีแถบสีเหลือง บรรทัดนี้ครับ Set recClone = Me.RecordsetClone()

6 @R05695
ลองเปลี่ยน

Dim recClone As Recordset

ให้เป็น

Dim recClone As Object

ดูครับ
7 @R05699
เปลียนแล้วยังเหมือนเดิมครับ
Private Sub Form_OnConnect()
Dim recClone As Object
Set recClone = Me.RecordsetClone()
recClone.Bookmark = Me.Bookmark
recClone.MovePrevious
cmdPrevious.Enabled = Not (recClone.BOF)
cmdFirst.Enabled = Not (recClone.BOF)
recClone.MoveNext
recClone.MoveNext
cmdLast.Enabled = Not (recClone.EOF)
cmdNext.Enabled = Not (recClone.EOF)
recClone.MovePrevious
Me![Text50] = "¨Ó¹Ç¹àÃ礤ÍÃì´·Õè " & (recClone.AbsolutePosition + 1) & "/" & DCount("reg_no", "tbregister")
recClone.Close
End Sub

ผมเปลี่ยนไปใช้ 97 เหมือนเดิมดีกว่า
ขอบคุณครับ
8 @R05718
จากโค้ด
Private Sub cmdSearch_Click()
reg_no.SetFocus
DoCmd.FindRecord [Text64]
If Text64 <> reg_no Then MsgBox "ไม่มีระเบียนที่ท่านต้องการ"
End Sub


ผมลองเพิ่มโค้ดเพื่อให้มันตรวจสอบว่ากรอกเลขทะเบียนในText64 หรือยัง
พอลองทดสอบมันใช้ไม่ได้ครับ มันมีแถบสีเหลืองที่ DoCmd.FindRecord [Text64] ผมจะต้องแก้ไขตรงไหนครับ
Private Sub cmdSearch_Click()
Text64.SetFocus
If (Text64 = "") Then MsgBox "คุณยังไม่กรอกเลขทะเบียน"
reg_no.SetFocus
DoCmd.FindRecord [Text64]
If Text64 <> reg_no Then MsgBox "ไม่มีระเบียนที่ท่านต้องการ"
End Sub

ขอบคุณครับ
9 @R05725
ลองอย่างนี้ดูครับ
Private Sub cmdSearch_Click()
If IsNull(Text64) Then
MsgBox "คุณยังไม่กรอกเลขทะเบียน"
Else
reg_no.SetFocus
DoCmd.FindRecord [Text64]
End If
If Text64 <> reg_no Then MsgBox "ไม่มีระเบียนที่ท่านต้องการ"
End Sub
10 @R05730
ใช้ได้แล้วครับคุณ bb1
ขอบคุณครับ
.......................................................................................................
ผมขออนุญาตถามทุกคนต่อนะครับ

จากโค้ดข้างล่างนะครับเมื่อคลิกปุ่ม AddNew ทำไมมันใช้ ไม่ได้ครับ
มันจะมีแถบสีเหลืองที่ บรรทัด recClone.Bookmark = Me.Bookmark ครับ แต่พอเอาบรรทัดนี้ออกไป มันสามารถทำงานได้ครับกดเพิ่มข้อมูลได้
แต่ตรงนี้(recClone.AbsolutePosition + 1) มันเป็น เลข 1 ตลอดครับ ถึงแม้ว่าจะเลื่อนไประเบียนที่ 2 3 4 มันก็ยังเป็น เลข 1 เหมือนเดิม จะแก้ยังไงครับ

....................................................

Private Sub Form_Current()
Dim recClone As Recordset
Set recClone = Me.RecordsetClone()
recClone.Bookmark = Me.Bookmark
Me![txtRecord] = "ระเบียนที่ " & (recClone.AbsolutePosition + 1) & " จากทั้งหมด " & DCount("txtBookID", "tblBook") & " ระเบียน"
recClone.Close
End Sub

Private Sub cmdAddNew_Click()
On Error GoTo Err_cmdAddNew_Click


DoCmd.GoToRecord , , acNewRec

Exit_cmdAddNew_Click:
Exit Sub

Err_cmdAddNew_Click:
MsgBox Err.Description
Resume Exit_cmdAddNew_Click

End Sub

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