MSACCESS是否可以使用布尔字段查询而不用布尔类型回显布尔的字符串表示形式?

Mal*_*low 2 ms-access boolean

Microsoft Access查询中是否有一种方法可以测试两个字段的相似性并返回字符串表示形式“ True”或“ False”而不是-1或0而不会丢失布尔类型?

 SQL SYNTAX
 [Table1].[Field1]=[Table2].[Field1] AS Compare
Run Code Online (Sandbox Code Playgroud)

我希望这很容易

 Cstr([Table1].[Field1]=[Table2].[Field1])
Run Code Online (Sandbox Code Playgroud)

尽管我知道我可以在VBA中编写一个函数来达到相同的效果,但我想知道是否已经有一种方法可以使用其字符串值来表示布尔值而不会从其类型中去除布尔值性质。

而且我也想避免这样做

 iff([Table1].[Field1]=[Table2].[Field1], "True", "False") 
Run Code Online (Sandbox Code Playgroud)

尽管它将在视觉上完成这项工作,但是这意味着我将必须进行任何程序比较以查找字符串“ True”,“ true”,“ TRUE” ...的字符串值,而不是将其用作yes / no第一名。

我主要发现这是一个小麻烦,因为在VBA的中间窗口中,我可以清楚地看到像这样的字符串值

 debug.? "a"="a"
 True
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它不一致。

Han*_*sUp 5

您可以将查询的布尔字段表达式的Format属性设置为True / False

查询字段的属性表,显示格式属性

True / False不包括在“格式”下拉框中的可用选项中,但是您可以键入。

将该格式应用于此查询中的两个字段表达式...

SELECT (1=1) AS boolean_True, (1=2) AS boolean_False
FROM Dual;
Run Code Online (Sandbox Code Playgroud)

...在数据表视图中给我这个结果:

boolean_True boolean_False
------------ -------------
        True         False
Run Code Online (Sandbox Code Playgroud)

基础值仍然是Access布尔值(整数-1或0)。只是这些值的表示方式已更改。