带按钮的MS-ACCESS过滤器子窗体

时间:2019-01-03 18:55:17

标签: database ms-access

我正在尝试做一些我认为非常琐碎的事情。我可以使用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。这是因为我没有指定在哪里应用过滤器?

1 个答案:

答案 0 :(得分:0)

我找不到任何使用FilterName参数的示例,它们都使用WHERE Con​​dition参数。

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