在访问表单上的动态记录集上获取CurrentRecord

时间:2018-08-20 20:31:26

标签: vba ms-access record

我有这段代码用于设置未绑定文本框控件的值,我将其称为txtCurrRec。它将在表单上显示“ x of y records”,而不是依赖于导航控制记录数。问题是我根据切换按钮设置了表单的控制源。默认情况下(加载时)切换为true,并且过滤器处于打开状态。如果按下切换键,则函数将确定sql是什么以及txtCurrRec应该是什么。它可以得到正确的总记录数(该语句的y),但是如果表单使用过滤的SQL(int字段= -1),则x值将基于表值而不是过滤后的集合显示记录数。

这是公共功能代码:

Private Function ABOnly()
Dim pSQL As String

If Me.tgABRec = True Then
    Me.tgABRec.Caption = "AB Recs Only"
    Me.tgABRec.BackColor = RGB(221, 217, 195)
    Me.tgABRec.HoverColor = RGB(221, 217, 195)
    pSQL = "SELECT * From tblAllRecs WHERE ABRecs = -1"
    Me.txtCurrRec = CStr(Me.CurrentRecord) & " of " & _
    DCount("ID", "tblAllRecs", "ABRecs = -1") & " Records"
Else
    Me.tgABRec.Caption = "ALL RECORDS SHOWING"
    Me.tgABRec.BackColor = RGB(221, 217, 195)
    Me.tgABRec.HoverColor = RGB(221, 217, 195)
    pSQL = "SELECT * From tblAllRecs"
    Me.txtCurrRec = CStr(Me.CurrentRecord) & " of " & _
    DCount("ID", "tblAllRecs") & " Records"
End If

End Function

似乎CStr(Me.CurrentRecord)无法与动态SQL一起正常工作。有谁知道我如何才能使其正常工作?

1 个答案:

答案 0 :(得分:1)

您忘记了主要部分。

Me.RecordSource = pSQL

您需要分配记录集源,然后才能使用me.currentRecord