DoCmd.ApplyFilter停止工作,Access 2007

时间:2016-01-19 15:24:52

标签: vba ms-access access-vba ms-access-2010 ms-access-2007

我想使用3个文本框和3个组合框来搜索数据列表。我创建了一个命令按钮来触发事件。它工作,应用过滤器,但只有约30分钟。之后,数据显示未经过滤。我没有收到任何错误,只是停止使用过滤器。

Private Sub Command370_Click()
    DoCmd.ApplyFilter "", "[Ervaring 1].Value Like ""*"" & [Forms]![Werknemers lijst]![cboervaring].value & ""*"" And [Opleiding1].Value Like ""*"" & [Forms]![Werknemers lijst]![combo619].Value & ""*"" And [Taal 1].Value Like ""*"" & [Forms]![Werknemerslijst]![combo621].Value & ""*""", ""
    DoCmd.ApplyFilter "", "[Voornaam] Like ""*"" & [Forms]![Werknemers lijst]![tref1] & ""*"" Or [Achternaam] Like ""*"" & [Forms]![Werknemers lijst]![tref1] & ""*"" Or [Geslacht] Like ""*"" & [Forms]![Werknemers lijst]![tref1] & ""*""", ""
    DoCmd.ApplyFilter "", "[Cedula] Like ""*"" & [Forms]![Werknemers lijst]![tref1] & ""*"" Or [Nationaliteit] Like ""*"" & [Forms]![Werknemers lijst]![tref1] & ""*""", ""
    DoCmd.ApplyFilter "", "[Voornaam] Like ""*"" & [Forms]![Werknemers lijst]![tref2] & ""*"" Or [Achternaam] Like ""*"" & [Forms]![Werknemers lijst]![tref2] & ""*"" Or [Geslacht] Like ""*"" & [Forms]![Werknemers lijst]![tref2] & ""*""", ""
    DoCmd.ApplyFilter "", "[Cedula] Like ""*"" & [Forms]![Werknemers lijst]![tref2] & ""*"" Or [Nationaliteit] Like ""*"" & [Forms]![Werknemers lijst]![tref2] & ""*""", ""
    DoCmd.ApplyFilter "", "[Voornaam] Like ""*"" & [Forms]![Werknemers lijst]![tref3] & ""*"" Or [Achternaam] Like ""*"" & [Forms]![Werknemers lijst]![tref3] & ""*"" Or [Geslacht] Like ""*"" & [Forms]![Werknemers lijst]![tref3] & ""*""", ""
    DoCmd.ApplyFilter "", "[Cedula] Like ""*"" & [Forms]![Werknemers lijst]![tref3] & ""*"" Or [Nationaliteit] Like ""*"" & [Forms]![Werknemers lijst]![tref3] & ""*""", ""
End Sub

1 个答案:

答案 0 :(得分:1)

这是一个简单的解决方案(而不是使用ApplyFilter方法)......

  1. 创建一个以您希望的方式过滤数据的查询。

  2. 制作使用过滤后的查询而非表格的表单副本。

  3. 在主窗体上,有一个命令按钮,用于运行代码以关闭窗体并打开窗体的过滤版本。

  4. 在已过滤的表单上,有一个命令按钮可以关闭该表单并打开mani表单。