กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
410 2
URL.หัวข้อ /
URL
limited display data in list oject in access 97 or 2000
ใครมีวิธีแก้ไขปัญหาของ object list บ้าง เพราะมันมีข้อจำกัดในการ แสดงผล ได้เพียง ประมาณ 65535 กว่า Record เท่านั้น
ใครเคยใช้ list แบบกำหนดแสดง ทีละ Page บ้าง เช่น กำหนดให้ list ที่ 1 แสดงข้อมูลที่ 1-50000 และ list ที่ 2 แสดงข้อมูลที่ 500001 -100000 ช่วยแนะนำหน่อยนะ
ใครเคยใช้ list แบบกำหนดแสดง ทีละ Page บ้าง เช่น กำหนดให้ list ที่ 1 แสดงข้อมูลที่ 1-50000 และ list ที่ 2 แสดงข้อมูลที่ 500001 -100000 ช่วยแนะนำหน่อยนะ
2 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R00007
ในความคิดผมนะ ก่อนอื่นต้องเราไม่ควรที่จะดึงข้อมูลขึ้นมาแสดงมากเช่นนี้ เพราะจะทำให้เครื่องฯ ช้า
เราควรจะดึงเฉพาะข้อมูลที่ต้องการเท่านั้น ซึ่งอาจจะต้องใช้ Query เข้าไปกรองเอาเฉพาะส่วนที่เราต้องการ
เนื่องจาก Access มีข้อจำกัดดังที่กล่าวมา ถ้าเราดึงข้อมูลมากขนาดนั้น คงจะเสียเวลามา ยิ่งมาทำเป็น 2 List ก็คงจะช้ามากไปอีก
แต่อย่างไรก็ตามลองดูตัวอย่างข้างล่าง ซึ่งอาจจะไม่ตรงเท่าไร แต่ควรจะใช้ List Box เดียว แต่ดึงข้อมูลมาดูที่ละน้อยครับ
ขั้นตอนมีดังนี้
1. สร้าง Form ขึ้นมาอันหนึ่ง ใส่ List Box ลงไป ตั้งชื่ออะไรก็ได้ แต่ผมตั้งเป็น lst2 และ กำหนด Row Source Type เป็น Value List และใส่ปุ่มชื่อ cmdAddList แล้วใส่โค้ดต่อไปนี้ไป โดยดึงข้อมูลใน Field ชื่อ NumberUP ในตาราง tblListLimit
Private Sub cmdAdd_List_Click()
Dim dbs As Database, rst As Recordset
Dim lst2 As ListBox
Dim I As Integer
On Error Resume Next
Set dbs = CurrentDb
Set lst2 = Me!List2
With dbs
Set rst = .OpenRecordset("tblListLimit")
rst.Move 200
For I = 1 To 300
If lst2.RowSource = "" Then
lst2.RowSource = rst!NumberUP
Else
lst2.RowSource = lst2.RowSource & ";" & rst!NumberUP
End If
rst.MoveNext
Next I
rst.Close
.Close
End With
End Sub
จากตัวอย่างข้างต้นเป็นการแสดงตั้งแต่ Record ที่ 200 เป็นต้นไป จำนวน 300 records ซึ่ง Value List จะจำกัดแสดงไม่เกิน 400 กว่ารายการใน 1 List
ลองนำไปประยุกต์ดูนะครับ
2 @R00008
I didn't think Access could handle that many records effectively, but here's how to do it.
In the underlying table add an autonmber field if you don't already have one - lets call it ID
In the Row Source of list box 1 create a query and add <50001 to the ID's criteria row. Do the same for list box 2 but add >50000 to the ID's criteria row.
HTH
Rick
Time: 0.1051s