我正在尝试在 Access 中运行查询,但使用 where 子句的函数名称。这行得通吗?我的查询仍然返回所有字段,即使该函数确实被调用,并且确实返回了有效的搜索条件。它似乎没有得到应用。
SELECT Field1, Field2
FROM MyTable
WHERE GetWhereClause("xx", "yy");
函数 GetWhereClause 将返回如下内容:
Field1 = 'xx' AND Field3 = 'sample'
不,很遗憾你不能,因为布尔值在 SQL 中不被视为一等值。您可以做的是定义一个函数,该函数返回 1 表示真,0 表示假,例如,然后执行以下操作:
SELECT Field1, Field2
FROM MyTable
WHERE GetWhereClauseResult("xx", "yy") = 1;
如果函数返回 SQL 字符串的一部分,您可以执行此操作。但仅当您在 VBA 中构建查询时:
strSQL = "SELECT Field1, Field2
FROM MyTable
WHERE " & GetWhereClause('xx', 'yy') & ";"