我有一个名为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.
请帮忙。
答案 0 :(得分:0)
尝试使用修改后的语法:
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
必须是子表单控件的名称。