我很少使用 VBA Access 来维护我们的旧应用程序。我正在使用 MS Access 2007 。我试图在文本框输入中使用三态。换句话说,我有一个文本框输入绑定到数据库中的布尔字段(HOME,在SQL Server中为允许NULL的位);但是,当用户输入1
时,我需要为-1
显示true
而不是1
。同样,应该有0
用于" false"当用户在数据库中输入0
时最后一种情况是:如果用户输入任何内容或空格,它应该在数据库中保存Null
。
到目前为止我做了什么:
在此文本框的属性表下:
Format
标签下,我将Format
字段设置为空,而不是真/假,开/关或是/否,因为我需要三种状态。Data
标签下,将Control Source
绑定到Home
字段。other
标签下,我将Status Bar Text
设置为1=HOME, 0=Not HOME
问题:
1
时,文本框显示-1
,并将1
保存在表格中,这是好的。0
时,文本框显示0
并保存0
。所以,这个案子很好。0
。 任何人都可以告诉我如何实现布尔文本框的三个状态?或者将我重定向到Stack Overflow中的链接,因为当我在SO中进行研究时,我无法找到它。
答案 0 :(得分:0)
将文本框的 Format 属性设置为:0,0或:0; 0
此外,将字段的DefaultValue设置为 Null 。
尝试调整您的Sub"上/下":
Private Sub txtHome_AfterUpdate()
If Me!txtHome.Value = "" Then
Me!txtHome.Value = Null
End If
End Sub
答案 1 :(得分:0)
在阅读不同的在线文章和帖子时,我相信在MS ACCESS中不可能有三态。换句话说,MS Access将采用" NULL"为FALSE并在数据库中保存False / 0 / No.我想把它留在这里,以便它可能对其他人有所帮助,如果他们正在努力的话。