当我从记录移动到记录时,如何检查Access中的复选框?

时间:2017-10-13 15:50:58

标签: vba ms-access access-vba

我有一个Access数据库,它有一个复选框,我需要查看它是否" false"或"真"因为我从记录到记录。如果复选框为true,则标签字体颜色和名称应更改。

这是我的代码,但它无法正常运行:

Private Sub Check796_Click()
  lngRed = RGB(255, 0, 0)
    lngBlack = RGB(0, 0, 0)
    If Me.Check796 = vbTrue Then
       Me.Label797.Caption = "Hold"
       Me.Label797.ForeColor = lngRed
    Else
       Me.Label797.Caption = "UnHold"
       Me.Label797.ForeColor = lngBlack
    End If    
End Sub

如果已经检查过它应该是红色并说" Hold"但是,如果它未经检查,它应该说" UnHold"。如果我检查" Hold"复选框它可以工作但是,当我转到下一个未经检查的记录时,它会说" Hold"同样。当我关闭应用程序并返回记录时,单击复选框,标签显示" UnHold"何时应该说" Hold"。

2 个答案:

答案 0 :(得分:1)

只需在Form_Current上再次执行代码:

Private Sub Form_Current()
  lngRed = RGB(255, 0, 0)
    lngBlack = RGB(0, 0, 0)
    If Me.Check796 = vbTrue Then
       Me.Label797.Caption = "Hold"
       Me.Label797.ForeColor = lngRed
    Else
       Me.Label797.Caption = "UnHold"
       Me.Label797.ForeColor = lngBlack
    End If    
End Sub

答案 1 :(得分:0)

在没有任何VBA的情况下这样做:

  • 添加您的复选框,并将Control Source设置为您的布尔值 (是/否)字段。

  • 添加文本框(格式看起来像标签) 给它一个控制 =Choose(Abs([Check796])+1,'UnHold','Hold')的来源 布尔值 返回-1表示TRUE,0表示FALSE ABS删除了标志,所以 它现在是0和1 添加1作为CHOOSE需要从1开始。

  • 选择文字并在表单设计工具中的 FORMAT 功能区中选择 选择Conditional Formatting
    选择Field Value Is equal to "Hold"并格式化为红色字体。