【问题标题】:Passing multiple criteria to query in access via VBA code通过 VBA 代码在访问中传递多个条件进行查询
【发布时间】:2015-08-29 02:10:15
【问题描述】:

我正在开发一个 Access 数据库,该数据库是从我之前的工作人员那里继承而来的。我是这方面的新手,我会边走边学。

背景: 我正在使用一个实验数据数据库。 我正在尝试创建一个搜索和导出表单,该表单将允许用户搜索特定数据集,然后将其导出到 Excel 工作表。它还将让用户过滤搜索,以便仅将特定值写入 excel 文件。

我的数据库有 2 个主要的子表来区分实验类型。 我使用一个列表框,允许用户选择他/她想要搜索的表格。

基于此选择,另外两个列表框会填充相关选项

选项是“作者姓名”和“编号 ID” 到目前为止一切正常 如果选择了表 1,则在列表框中填充一组作者姓名和编号 ID,如果选择了表 2,则同样如此。

作者姓名和编号列表框都是简单的多选。

我遍历列表框选择以获取所有选定的值

然后我创建 SELECT 和 IN 语句。

这就像数字 id 的魅力(当我只使用 1 个列表框执行时)。

但是,如果我尝试按如下方式创建查询语句,则会出现错误:

SELECT * FROM tbl1 [Number_ID] IN (a,b,...) AND 
SELECT * FROM tbl1 [AUTHOR_NAME] IN ("xyz", "abc",....)

其中Number_ID 是一个整数并且 Author_Name 是文字

【问题讨论】:

  • 非常感谢 Hans :) 不知何故,WHERE 子句从我原来的问题中被编辑了。但是删除第二个 SELECT .... FROM 子句解决了这个问题:)
  • 希望我正确回答并发布。再次感谢。

标签: vba ms-access


【解决方案1】:

解决方案:

strSQL = "SELECT * FROM tbl1 WHERE "

strWhere = "[Number_ID] IN (1, 2, 3, ...)"
strSQL = strSQL & strWhere

strSQL1 = " AND "
strWhere1 = "[Author_Name] IN ("xyz", "abc", ...)"

strSQL = strSQL & strSQL1 & strWhere1

这会生成如下查询字符串

"SELECT * FROM tbl1 WHERE [Number_ID] IN (1, 2, 3, ...) AND [Author_Name] IN 

("xyz", "abc", ...)"

可以将其传递给您的 qryDef 变量以创建查询。

【讨论】:

    猜你喜欢
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多