Vba 在Access窗体上的动态记录集上获取CurrentRecord

Vba 在Access窗体上的动态记录集上获取CurrentRecord,vba,ms-access,record,Vba,Ms Access,Record,我有这段代码用于设置未绑定的textbox控件的值,我称之为txtcurrec。它是在表单上显示x/y记录,而不是依赖于导航控制记录计数。问题是我基于切换按钮设置窗体的控件源。默认情况下,加载时切换为true,并且过滤器处于启用状态。如果按下切换,则函数将确定sql是什么以及TXTCURREC应该是什么。它从该语句的y处获取总记录,但如果窗体使用的是筛选SQL,则int字段=-1,x值显示的是基于表值的记录计数,而不是基于筛选集的记录计数 这是公共功能代码: Private Function A

我有这段代码用于设置未绑定的textbox控件的值,我称之为txtcurrec。它是在表单上显示x/y记录,而不是依赖于导航控制记录计数。问题是我基于切换按钮设置窗体的控件源。默认情况下,加载时切换为true,并且过滤器处于启用状态。如果按下切换,则函数将确定sql是什么以及TXTCURREC应该是什么。它从该语句的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

CStrMe.CurrentRecord似乎不能与动态SQL一起正常工作。有人知道我怎样才能让它正常工作吗?

你忘了主要部分

Me.RecordSource = pSQL

在使用me.currentRecord之前,需要分配记录集源。me.currentRecord应该引用什么?可能是表单上的某个内容,比如文本框或其他内容?我这样问是因为Microsoft Access通常使用Me.CurrentRecord调用属性,并将其设置为表示窗体上显示的当前记录编号的整数值。它应该是当前窗体。如果您引用的记录直接位于主窗体上,则不应存在任何问题。但是,如果这是一个子表单,它可以解释您遇到的问题。对于任何子窗体,您都需要以不同的方式引用CurrentRecord。我以为我已经在其他地方分配了它,但您是对的。