rs.recordcount ออกมาได้ 1
กระทู้เก่าบอร์ด อ.Yeadram

 2,265   5
URL.หัวข้อ / URL
rs.recordcount ออกมาได้ 1

นู๋เขียนโค้ด
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

1 @R02040
rs.MoveFirst
rs.MoveLast
Me.lblNum.Caption = rs.RecordCount

ลองให้มันไปเร็คคอร์ดแรก และไปสุดท้าย แล้วค่อยแสดงจะได้ไหมครับ
2 @R02044
จะ COUNT ได้ทุก RECORD เมื่อมันอยู่ RECORD สุดท้ายครับ
ถ้าเปิด เฉยๆ มันจะอยู่ที่ RECORD ที่ 1 มันก็เลยได้ 1
3 @R02045
ขออธิบายหน่อย เดี๋ยวจะเข้าใจผิดนะครับ .RecordCount จะแสดงจำนวนเรคอร์ดตามที่มันได้อ่านเข้ามาใน buffer ของระบบแล้ว ถ้าเรคอร์ดมีขนาดใหญ่ ก็อาจจะอ่านได้เพียงเรคอร์ดเดียวตั้งแต่เริ่มเปิด Recordset มา ดังนั้นจึงได้ค่าเป็น 1 แต่นี่ก็ไม่เสมอไปครับ อาจได้ 2, 3, 4 หรืออะไรก็แล้วแต่ แต่เมื่อเราสั่ง .MoveLast แล้ว ก็จะทำให้ระบบต้องไปอ่านเรคอร์ดจนถึงเรคอร์ดสุดท้าย (ในความเป็นจริง ก็ไม่ได้อ่านทั้งหมดของเรคอร์ดนะครับ เพียงแต่ไปอ่าน key ของเรคอร์ดเท่านั้น) ดังนั้นจำนวนเรคอร์ดที่ผ่านระบบจึงเท่ากับจำนวนเรคอร์ดทั้งหมดจริงๆครับ

อีกอย่างคือ เราไม่จำเป็นต้องสั่ง .MoveFirst ก่อนนะครับ สามารถสั่ง .MoveLast ได้เลย เพียงแต่ถ้าตรวจสอบว่าเป็น .EOF หรือไม่ก็น่าจะดี เพราะถ้า RecordSet นั้นๆไม่มีเรคอร์ดเลย การสั่ง .MoveFirst, .MoveLast, .Moveprevious, .MoveNext จะทำให้เกิด Runtime Error ได้ครับ
4 @R02052
ขอบคุณทุกท่านค่ะ
5 @R02057
ถ้า RecordCount จาก Table ยังไม่ตรงจริงๆลองใช้วิธี จับ tblBPrint นี้ไปใ่ส่ ListBox แล้วใช้ properties ของ ListBox นับ ใน form เราก็ซ่อน ListBox ใว้

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