如何统计记录及其数值
How to count records and it's numerical value
我正在寻找对基础 table(或查询)中的记录进行计数并允许在活动表单上捕获该数字的最佳方法。简而言之,我想在我的表单上创建一个对象,告诉用户他当前正在查看的记录中有多少(例如,这是 6 条记录中的第 3 条记录)
我知道如何使用记录计数功能,但很难将该数字传输到我表单上的对象。
在我的表单上,我放置了一个标签并将其命名为 lblRecords:
在Form的Current事件中,Form的CurrentRecord获取当前记录号。虽然下面使用了DCount
,但请通读http://www.fontstuff.com/mailbag/qaccess04.htm,以获取比DCount
更好的示例来计算记录数。
Private Sub Form_Current()
Me.lblRecords.Caption = "Record " & Me.CurrentRecord & " of " & DCount("ID", "Table1")
End Sub
使用ADODB,也可以获得记录数
编辑
要获取绑定到表单的数据源的记录数,可以这样做:
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
如果表单绑定到仅显示 table 中一小部分记录的查询,Function RecordCount()
将显示正确的记录数信息。
但是如果使用 VBA 动态更改表单的数据源怎么办?上述功能仍然可以正常工作。这是一个如何动态更改表单数据源的示例。
Public Sub ChangeFormQuery()
Form_Form1.RecordSource = "select * from table1 where [id] between 3 and 4"
Form_Form1.Requery
Form_Form1.Refresh
End Sub
除了使用 DCount 函数,以下是使用名为 'etcRecordNumber' 的标签的最佳解决方案:
RC = Form_frmStaticDataSkills03.Recordset.RecordCount
RN = Form_frmStaticDataSkills03.CurrentRecord
Me.etcRecordNumber.Caption = "This is record " & RN & " of " & RC
我正在寻找对基础 table(或查询)中的记录进行计数并允许在活动表单上捕获该数字的最佳方法。简而言之,我想在我的表单上创建一个对象,告诉用户他当前正在查看的记录中有多少(例如,这是 6 条记录中的第 3 条记录)
我知道如何使用记录计数功能,但很难将该数字传输到我表单上的对象。
在我的表单上,我放置了一个标签并将其命名为 lblRecords:
在Form的Current事件中,Form的CurrentRecord获取当前记录号。虽然下面使用了DCount
,但请通读http://www.fontstuff.com/mailbag/qaccess04.htm,以获取比DCount
更好的示例来计算记录数。
Private Sub Form_Current()
Me.lblRecords.Caption = "Record " & Me.CurrentRecord & " of " & DCount("ID", "Table1")
End Sub
使用ADODB,也可以获得记录数
编辑
要获取绑定到表单的数据源的记录数,可以这样做:
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
如果表单绑定到仅显示 table 中一小部分记录的查询,Function RecordCount()
将显示正确的记录数信息。
但是如果使用 VBA 动态更改表单的数据源怎么办?上述功能仍然可以正常工作。这是一个如何动态更改表单数据源的示例。
Public Sub ChangeFormQuery()
Form_Form1.RecordSource = "select * from table1 where [id] between 3 and 4"
Form_Form1.Requery
Form_Form1.Refresh
End Sub
除了使用 DCount 函数,以下是使用名为 'etcRecordNumber' 的标签的最佳解决方案:
RC = Form_frmStaticDataSkills03.Recordset.RecordCount
RN = Form_frmStaticDataSkills03.CurrentRecord
Me.etcRecordNumber.Caption = "This is record " & RN & " of " & RC