【问题标题】:Filter subforms date column via main form Date range entry in vba access通过vba访问中的主表单日期范围条目过滤子表单日期列
【发布时间】:2017-09-08 08:02:12
【问题描述】:

我有一个名为 frmCCAuto 的表单,其中包括我的日期范围,即开始日期和结束日期文本字段以及一个过滤日期的按钮。我有一个子表单“subCCAuto-Open”(我不知道为什么我的前辈决定使用子表单名称带有“-”),其默认视图是数据表,其记录源是从表 tblPayments_Auto 中提取的。因此,我必须根据主窗体中的日期范围过滤子窗体中显示的记录。换句话说,我希望在两个未绑定的文本框上允许用户输入日期范围并将子表单过滤为仅显示在主表单框中输入的日期范围的记录。我一直在处理的代码是:

Private Sub Form_Open(Cancel As Integer)
    Dim db As Database
    Set db = CodeDb

    db.Execute "DELETE * FROM tblPayments_Auto;"
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "qryPayments_AddAuto" (store procedure: sp_qryPayments_AddAuto )
    DoCmd.SetWarnings True

    Me.subOpen.Requery
    ProcessBtn.Enabled = False
End Sub

Private Sub Filter_Click()
    With Forms!frmCCAuto![subCCAuto-Open].Form
        .Filter = "[InvoiceDate] BETWEEN #" & Me.StartDate & "# AND #" & Me.EndDate & "#"
        .FilterOn = True
    End With
End Sub

当我调试我的代码时,它给了我一个错误提示 Microsoft Access can't find the field subCCAuto-Open referred to in your expression. Please help。

【问题讨论】:

  • Me![subCCAuto-Open].Form 做这个工作

标签: sql vba ms-access date-range subform


【解决方案1】:

尝试修改后的语法:

Private Sub Filter_Click()
    With Forms!frmCCAuto.Form![subCCAuto-Open]
        .Filter = "[InvoiceDate] BETWEEN #" & Format(Me!StartDate.Value, "yyyy\/mm\/dd") & "# AND #" & Format(Me!EndDate.Value, "yyyy\/mm\/dd") & "#"
        .FilterOn = True
    End With
End Sub

其中frmCCAuto 必须是子表单控件的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多