我有一个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"。
答案 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开始。
Conditional Formatting
。Field Value Is
equal to
"Hold"
并格式化为红色字体。