2

我正在尝试在 Access 中运行查询,但使用 where 子句的函数名称。这行得通吗?我的查询仍然返回所有字段,即使该函数确实被调用,并且确实返回了有效的搜索条件。它似乎没有得到应用。

SELECT Field1, Field2
FROM MyTable
WHERE GetWhereClause("xx", "yy");

函数 GetWhereClause 将返回如下内容:

Field1 = 'xx' AND Field3 = 'sample'
4

2 回答 2

1

不,很遗憾你不能,因为布尔值在 SQL 中不被视为一等值。您可以做的是定义一个函数,该函数返回 1 表示真,0 表示假,例如,然后执行以下操作:

SELECT Field1, Field2
FROM MyTable
WHERE GetWhereClauseResult("xx", "yy") = 1;
于 2013-09-16T11:47:54.637 回答
0

如果函数返回 SQL 字符串的一部分,您可以执行此操作。但仅当您在 VBA 中构建查询时:

strSQL = "SELECT Field1, Field2
FROM MyTable
WHERE " & GetWhereClause('xx', 'yy') & ";"
于 2013-09-16T14:48:44.330 回答