2017-04-12 40 views
1

我有一个名为frmCCAuto形式,其中包括我的日期范围,即开始日期和结束日期文本字段的一个按钮来过滤date.I有一个子窗体“subCCAuto公开“(我不知道为什么我的老年人决定使用' - '的子表名),默认视图是数据表,其记录源是从表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

'我![subCCAuto-Open] .Form'这样做的工作 –

回答

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必须是子窗体控制的名称。