Access 2013-在18个字段中搜索时出现“查询过于复杂”错误

阿森·范登伯格

我正在使用Access使用多个(大约18个)条件在数据库中进行搜索。所有这些标准都需要结合起来以提供正确的结果。搜索查询被评估为过于复杂。

在查询中,我使用填写的搜索字段(临时变量)来查找与所有搜索字段匹配的联系人。

该查询如下所示:

SELECT 
      Contacts.ID, 
      Contacts.[Naam Contact], 
      Contacts.Adresgegevens, 
      Nz([Contacts]![Type Opleiding]) AS [Type opleiding], 
      Contacts.OplGetal, 
      Contacts.DataCV, 
      Nz([Contacts]![Datum Sollicitatie],
      DateSerial(1901,1,1)) AS [Datum Sollicitatie], 
      Contacts.LaatstGewijzigd, 
      Contacts.Voornaam, 
      Contacts.Achternaam, 
      Contacts.Medewerker, 
      Contacts.Zoektermen, 
      Contacts.Woonplaats, 
      Contacts.Geboortejaar, 
      Contacts.[A], 
      Contacts.[B], 
      Contacts.[C], 
      Contacts.D, 
      Contacts.E, 
      Contacts.Overig, 
      Year(Now())-[Geboortejaar]-1 & "/" & Year(Now())-[Geboortejaar] AS Leeftijd, 
      Contacts.BinnengekomenBij, 
      Contacts.Categorie, 
      Contacts.BinnenBuiten
   FROM 
      Contacts
   WHERE 
          Contacts.[Naam Contact] Like "*" & TempVars!tmpNaam & "*"
      And Contacts.Adresgegevens Like "*" & TempVars!tmpAdres & "*"
      And Nz(Contacts![Type Opleiding]) Like "*" & TempVars!tmpOpleiding & "*"
      And Contacts.OplGetal > TempVars!tmpHGO-1
      And Nz(Contacts![Datum Sollicitatie],DateSerial(1901,1,1)) > DateValue(TempVars!tmpDatumSol) 
      And (   TempVars!tmpBiBu = Contacts.BinnenBuiten 
           Or TempVars!tmpBiBu = "Maakt niet uit" ) 
      And (TempVars!tmpOP=No Or Contacts.[A]=Yes)
      And (TempVars!tmpSP=No Or Contacts.[B]=Yes)
      And (TempVars!tmpSS=No Or Contacts.[C]=Yes)
      And (TempVars!tmpINS=No Or Contacts.D=Yes)
      And (TempVars!tmpE=No Or Contacts.E=Yes)
      And (TempVars!tmpOverig=No Or Contacts.Overig=Yes)
      And (TempVars!tmpMed=No Or Contacts.Medewerker=Yes)
      And (Nz(Contacts.BinnengekomenBij) Like "*" & TempVars!tmpBin & "*"
      And (TempVars!tmpCat=Contacts.Categorie Or TempVars!tmpCat="Beide")

如何使该查询更智能,更简单?

提前致谢!

阿森·范登伯格

我已经解决了我的问题!复杂性来自于我选中的所有复选框,例如:

(TempVars!tmpE=No Or Contacts.E=Yes)

由于所有这些复选框的组合,查询最终看起来像这样:http : //www.blueclaw-db.com/accessquerysql/complex_query.gif

解决方案是将所有内容都放入VBA代码中,并动态构建查询。现在,只有选中该复选框后,该查询中才会包含该复选框(附加到查询中)。有关复选框E的代码段:

If Me.checkboxE = True Then
    strSQL = strSQL + "And Contacts.E=Yes "
End If

这样就消除了查询的复杂性,现在一切都可以顺利运行!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Access 2013计算字段太复杂

来自分类Dev

MS Access 2013查询条件

来自分类Dev

Access 2013中的SQL语法错误

来自分类Dev

为什么长文本字段在MS ACCESS 2013查询中仅返回255个字符?

来自分类Dev

Access 2013 - 在两个字段中搜索文本框

来自分类Dev

Access 2013 SQL查询空值处理

来自分类Dev

Access 2013 表单重新查询问题

来自分类Dev

Access 2013控件对齐快捷菜单错误

来自分类Dev

Access 2013编译错误-必需对象

来自分类Dev

Access 2013中的类型转换失败

来自分类Dev

在MS Access 2013中解析txt文件

来自分类Dev

无法删除Access 2013中的条件格式

来自分类Dev

在 Access 2013 中禁用快捷方式

来自分类Dev

在 Access 2013 上的窗体中添加滚动

来自分类Dev

Access 2013:为什么会出现此语法错误?

来自分类Dev

Access 2013 防止保存时出现重复记录

来自分类Dev

编译此函数时出错。Access 2013 计算字段问题

来自分类Dev

在子窗体中搜索值(vba Access2013)

来自分类Dev

报表Access 2013中两种不同的字段格式

来自分类Dev

使用Pyodbc插入Access 2013时的语法错误

来自分类Dev

在ACCESS 2013中使用SELECT MAX进行更新查询

来自分类Dev

从Access 2013运行Excel 2013宏时发生VBA自动化错误(系统调用失败)

来自分类Dev

从Access 2013运行Excel 2013宏时发生VBA自动化错误(系统调用失败)

来自分类Dev

从多个选择的MS Access 2013 C#错误中插入

来自分类Dev

Access 2013插入/更新

来自分类Dev

编译错误:语法错误 MS Access 2013

来自分类Dev

Access 2013-查询未返回正确的结果数

来自分类Dev

高级排序或查询结果分组(是否有?),Access 2013

来自分类Dev

Access 2013错误绑定到ADO记录集

Related 相关文章

热门标签

归档