我会假设很多东西......
我想知道是否有办法在 Access 的条件格式中格式化所有空白字段。在我的情况下,通常需要输入所有字段,但并非在所有情况下都需要输入。因此,与其编写一堆条件代码来限制用户在其中写入,我只想在我的字段中添加一些红色背景以提醒“嘿,这里什么都没有……确定这就是你想要的吗?”
它在平板电脑上,所以消息框会很烦人。所以它是条件格式。我知道你可以有“Is Null([Field]) 但这需要我在 30 多个字段上浏览我的 20 多个表单并确保正确的字段名称等,然后分别为它们键入条件。有没有办法我可以简单地多选我的字段,在 Multiple 上执行条件格式,并使用“Is Equal To: NULL”?
我试过“equal to: Null”但它不起作用..“equal to:”也不行"(使用 Access 常量)。想法为什么?或者我该如何解决这个问题?另外,它只对非触摸字段是必需的,所以如果用户开始输入然后删除回空白,我不在乎;它可以保持未格式化或变回红色,所以如果有更好的方法可以做到这一点,我会全力以赴。
编辑:我已经开始做一些 VBA 代码,我将把它们粘贴到我的所有表单中:
Private Sub Form_Load()
Dim ctl As Control
Dim reqCol As Long
Dim focusCol As Long
Dim doneCol As Long
Dim format As FormatCondition
reqCol = RGB(246, 180, 180)
focusCol = RGB(252, 249, 238)
doneCol = RGB(255, 255, 255)
For Each ctl In Me.Controls
With ctl
Me.Controls(ctl.Name).FormatConditions.Delete 'Delete the existing conditions.
Me.Controls(ctl.Name).BackColor = doneCol 'Set the background color to the done color.
Select Case .ControlType
Case acTextBox
'Create the format objects.
format = Me.Controls(ctl.Name).FormatConditions.Add(acFieldValue, acEqual, "")
format = Me.Controls(ctl.Name).FormatConditions.Add(acFieldHasFocus)
'Format the filled in boxes (ie set back to red)
With Me.Controls(ctl.Name).FormatConditions(0)
.BackColor = reqCol
.Enabled = True
End With
'Format the current field color (ie set to beige)
With Me.Controls(ctl.Name).FormatConditions(1)
.BackColor = focusCol
.Enabled = True
End With
End Select
End With
Next ctl
End Sub
问题是FormatConditions.Add(acFieldValue, acEqual, "")
由于同样的原因它不起作用......我该如何解决这个问题?看到 VBA 和内置条件都有缺陷,似乎是一个错误。或者我在我面前错过了一些东西..