กระทู้เก่าบอร์ด อ.Yeadram
2,342 5
URL.หัวข้อ /
URL
rs.recordcount ออกมาได้ 1
นู๋เขียนโค้ด
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblBPrint")
Me.lblNum.Caption = rs.RecordCount
ในตารางมันมี 50 เร็คคอร์ด
แต่ทำไมมันแสดงมา แค่ 1 ที่ lblNum
เป็นเพราะไรค่ะ
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblBPrint")
Me.lblNum.Caption = rs.RecordCount
ในตารางมันมี 50 เร็คคอร์ด
แต่ทำไมมันแสดงมา แค่ 1 ที่ lblNum
เป็นเพราะไรค่ะ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R02044
จะ COUNT ได้ทุก RECORD เมื่อมันอยู่ RECORD สุดท้ายครับ
ถ้าเปิด เฉยๆ มันจะอยู่ที่ RECORD ที่ 1 มันก็เลยได้ 1
ถ้าเปิด เฉยๆ มันจะอยู่ที่ RECORD ที่ 1 มันก็เลยได้ 1
3 @R02045
ขออธิบายหน่อย เดี๋ยวจะเข้าใจผิดนะครับ .RecordCount จะแสดงจำนวนเรคอร์ดตามที่มันได้อ่านเข้ามาใน buffer ของระบบแล้ว ถ้าเรคอร์ดมีขนาดใหญ่ ก็อาจจะอ่านได้เพียงเรคอร์ดเดียวตั้งแต่เริ่มเปิด Recordset มา ดังนั้นจึงได้ค่าเป็น 1 แต่นี่ก็ไม่เสมอไปครับ อาจได้ 2, 3, 4 หรืออะไรก็แล้วแต่ แต่เมื่อเราสั่ง .MoveLast แล้ว ก็จะทำให้ระบบต้องไปอ่านเรคอร์ดจนถึงเรคอร์ดสุดท้าย (ในความเป็นจริง ก็ไม่ได้อ่านทั้งหมดของเรคอร์ดนะครับ เพียงแต่ไปอ่าน key ของเรคอร์ดเท่านั้น) ดังนั้นจำนวนเรคอร์ดที่ผ่านระบบจึงเท่ากับจำนวนเรคอร์ดทั้งหมดจริงๆครับ
อีกอย่างคือ เราไม่จำเป็นต้องสั่ง .MoveFirst ก่อนนะครับ สามารถสั่ง .MoveLast ได้เลย เพียงแต่ถ้าตรวจสอบว่าเป็น .EOF หรือไม่ก็น่าจะดี เพราะถ้า RecordSet นั้นๆไม่มีเรคอร์ดเลย การสั่ง .MoveFirst, .MoveLast, .Moveprevious, .MoveNext จะทำให้เกิด Runtime Error ได้ครับ
อีกอย่างคือ เราไม่จำเป็นต้องสั่ง .MoveFirst ก่อนนะครับ สามารถสั่ง .MoveLast ได้เลย เพียงแต่ถ้าตรวจสอบว่าเป็น .EOF หรือไม่ก็น่าจะดี เพราะถ้า RecordSet นั้นๆไม่มีเรคอร์ดเลย การสั่ง .MoveFirst, .MoveLast, .Moveprevious, .MoveNext จะทำให้เกิด Runtime Error ได้ครับ
4 @R02052
ขอบคุณทุกท่านค่ะ
5 @R02057
ถ้า RecordCount จาก Table ยังไม่ตรงจริงๆลองใช้วิธี จับ tblBPrint นี้ไปใ่ส่ ListBox แล้วใช้ properties ของ ListBox นับ ใน form เราก็ซ่อน ListBox ใว้
เป็นอีกเทคนิคนึงครับ
เป็นอีกเทคนิคนึงครับ
Time: 0.3166s
rs.MoveLast
Me.lblNum.Caption = rs.RecordCount
ลองให้มันไปเร็คคอร์ดแรก และไปสุดท้าย แล้วค่อยแสดงจะได้ไหมครับ