如何在MS Access vba中的文本框输入中显示三态布尔值?

时间:2018-04-03 12:39:48

标签: vba textbox access-vba boolean

我很少使用 VBA Access 来维护我们的旧应用程序。我正在使用 MS Access 2007 。我试图在文本框输入中使用三态。换句话说,我有一个文本框输入绑定到数据库中的布尔字段(HOME,在SQL Server中为允许NULL的位);但是,当用户输入1时,我需要为-1显示true而不是1。同样,应该有0用于" false"当用户在数据库中输入0时最后一种情况是:如果用户输入任何内容或空格,它应该在数据库中保存Null。 到目前为止我做了什么: 在此文本框的属性表下:

  1. Format标签下,我将Format字段设置为空,而不是真/假,开/关或是/否,因为我需要三种状态。
  2. Data标签下,将Control Source绑定到Home字段。
  3. 在属性的other标签下,我将Status Bar Text设置为1=HOME, 0=Not HOME
  4. 问题:

    1. 当我输入1时,文本框显示-1,并将1保存在表格中,这是好的。
    2. 当我输入0时,文本框显示0并保存0。所以,这个案子很好。
    3. 当我尝试输入任何内容或空格时,默认情况下需要0
    4. 任何人都可以告诉我如何实现布尔文本框的三个状态?或者将我重定向到Stack Overflow中的链接,因为当我在SO中进行研究时,我无法找到它。

2 个答案:

答案 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.我想把它留在这里,以便它可能对其他人有所帮助,如果他们正在努力的话。