当记录很多的时候,我们就需要对记录进行分页显示了。这样的好处是,保持界面的美观,不会破坏窗体的结构;数据查看更加清晰明了,方便管理。
在Access中,我们习惯用子窗体来显示记录。他并不像.net 那样,可以用控件来绑定数据。然后设置对每条记录的控制,只需要把勾打上,就能实现分页等功能。而我们在Access中设置数据分页就需要一定的代码了。
下面的示例就是通过DAO来都子窗体的数据进行分页查看,能上下翻页查看,设置每一页的显示多少条记录,还能跳转到特定的页码。
关键代码:
Private Function ChangeRstPage(frm As Form, rst As DAO.Recordset, sFldID As String, iPageRecCount As Integer, iCurrentPage As Integer)
' 将按页码筛选后的记录集作为窗体记录集
Dim iStartNumber As Integer
Dim lngStartID As Long
Dim lngLastID As Long
iStartNumber = (iCurrentPage - 1) * iPageRecCount
With rst
If .RecordCount > 0 Then
.MoveFirst
.Move iStartNumber
If .EOF Then Exit Function
lngStartID = .Fields(sFldID)
.Move iPageRecCount - 1
If .EOF Then .MoveLast
lngLastID = .Fields(sFldID)
.Filter = sFldID & " Between " & lngStartID & " And " & lngLastID
End If
Set frm.Recordset = .OpenRecordset
End With
End Function