我正在尝试做一些我认为非常琐碎的事情。我可以使用ComboBox来做到这一点,但是由于条件格式的易用性,我切换到了SubForms。
表格=即将到期
SubForm = CORE2
字段= [核心],[有效]
按钮= CoreSearch
Option Compare Database
Private Sub CoreSearch_Click()
Dim Task As String
Me.Refresh
Task = "SELECT * FROM CORE2.Expiring WHERE DateDiff('m', [Core RS], Date()) > 36 And [Active] = True"
DoCmd.ApplyFilter Task
End Sub
我不断收到The action of method is invalid because the form or report isn't bound to a table or query
。这是因为我没有指定在哪里应用过滤器?
答案 0 :(得分:0)
我找不到任何使用FilterName参数的示例,它们都使用WHERE Condition参数。
ApplyFilter可以执行任何形式的代码。
假设按钮位于表格CORE2上。
DoCmd.ApplyFilter , "DateDiff('m', [Core RS], Date()) > 36 And [Active] = True"
或者:
Me.Filter = "DateDiff('m', [Core RS], Date()) > 36 And [Active] = True"
Me.FilterOn = True
建议命名子窗体/子报表容器控件与其所持有的对象不同,例如ctrCore。如果按钮位于主窗体上,并且您想将过滤器应用于子窗体:
Me.ctrCore.Form.Filter = "DateDiff('m', [Core RS], Date()) > 36 And [Active] = True"
Me.ctrCore.Form.FilterOn = True