在Microsoft Access的查询中是否有一种方法可以测试两个字段的相似性并返回字符串表示“True”或“False”而不是-1或0而不会丢失布尔类型?< / p>
SQL SYNTAX
[Table1].[Field1]=[Table2].[Field1] AS Compare
我希望它很简单
Cstr([Table1].[Field1]=[Table2].[Field1])
虽然我知道我可以在VBA中编写一个函数来实现相同的效果但我想知道是否已经有一种方法用它的字符串值表示布尔值而不从它的类型中删除布尔性质。
我也想避免做
iff([Table1].[Field1]=[Table2].[Field1], "True", "False")
虽然它会在视觉上完成这项工作,但这意味着我将不得不进行任何程序化比较,以查找字符串值“True”“true”“TRUE”...而不是它的预期功能为yes /没有首先。
我主要觉得这是一个小麻烦,因为在VBA的中间窗口我可以清楚地看到像这样的字符串值
debug.? "a"="a"
True
我不明白为什么它不一致。
答案 0 :(得分:5)
您可以为查询的布尔字段表达式将 Format 属性设置为 True / False 。
True / False 未包含在“格式”下拉框中的可用选项中,但您可以将其输入。
将该格式应用于此查询中的两个字段表达式...
SELECT (1=1) AS boolean_True, (1=2) AS boolean_False
FROM Dual;
...在数据表视图中给我这个结果:
boolean_True boolean_False
------------ -------------
True False
基础值仍然是Access booleans(整数-1或0)。只是改变了这些值的表示。