在我的表格中,我放置了一个标签,称其为lblrecords:
在表单当前事件中,表单的当前记录以获取当前记录号。尽管下面使用了
DCount
以比
DCount
计算记录数的示例更好。
Private Sub Form_Current()
Me.lblRecords.Caption = "Record " & Me.CurrentRecord & " of " & DCount("ID", "Table1")
End Sub
使用adoDb,也可以获得记录计数。eDit
要获得绑定到表单的数据源的记录量,可以做到这一点:
Private Sub Form_Current()
Me.lblRecords.Caption = "Record " & Me.CurrentRecord & " of " & RecordCount()
End Sub
Function RecordCount() As Integer
On Error GoTo ErrorHandler
Dim RecordsClone As Object
Set RecordsClone = Me.RecordsetClone
RecordsClone.MoveLast
RecordCount = RecordsClone.RecordCount
Exit Function
ErrorHandler:
RecordCount = "NA"
End Function
如果表格绑定到一个查询,该查询仅显示表格中的一小部分记录,则将显示记录数量的正确信息。
但是,如果使用VBA动态更改表单的数据源怎么办?以上功能仍可以正常工作。这是一个人如何动态更改表单的数据源的示例。
Function RecordCount()
在使用dcount函数的替代方案中,以下是使用称为“ etcrecordnumber”标签的最佳解决方案:
Public Sub ChangeFormQuery()
Form_Form1.RecordSource = "select * from table1 where [id] between 3 and 4"
Form_Form1.Requery
Form_Form1.Refresh
End Sub