MS Access:你有一个WHERE子句的函数吗?

时间:2013-09-16 11:27:23

标签: function ms-access

我正在尝试在Access中运行查询,但是使用where子句的函数名称。这会有用吗? 即使函数被调用,我的查询仍会返回所有字段,并返回有效的搜索条件。好像它没有得到应用。

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

函数GetWhereClause将返回类似于:

的内容
Field1 = 'xx' AND Field3 = 'sample'

2 个答案:

答案 0 :(得分:1)

不,不幸的是你不能,因为在SQL中,布尔值不被视为第一类值。你可以做的是定义一个函数,返回1表示true,0表示false,比如说,然后执行:

SELECT Field1, Field2
FROM MyTable
WHERE GetWhereClauseResult("xx", "yy") = 1;

答案 1 :(得分:0)

如果函数返回SQL字符串的一部分,则可以执行此操作。但是,只有在VBA中构建查询时才会这样做:

strSQL = "SELECT Field1, Field2
FROM MyTable
WHERE " & GetWhereClause('xx', 'yy') & ";"