访问条件格式仅在加载时应用

时间:2014-01-08 17:09:12

标签: ms-access access-vba ms-access-2013

我有一个连续的表单绑定到DAO记录源。我的条件格式规则如下所示:

表达式是:[DateTimeDeleted] IS NOT NULL(用明亮的粉红色填充文本框背景)

然后我在每条记录上都有一个删除按钮。它的代码是:

Private Sub cmdDelete_Click()
    If Me.NewRecord = False Then
        If IsNull(Me!DateTimeDeleted) = True Then
            Me!DateTimeDeleted = Now()
            DoCmd.RunCommand acCmdSaveRecord
        Else
            Me!DateTimeDeleted = Null
            DoCmd.RunCommand acCmdSaveRecord
        End If
    Else
        Me.Undo
    End If
End Sub

我很清楚这里没有代码可以实际删除记录,我很好。我的抱怨是条件格式似乎只在表单加载时应用。单击上面的按钮不会使记录被“删除”的方框变为粉红色。在这里我是否存在一些关于条件格式如何工作的误解?

仅供参考,我在Windows 8.1上使用MS Access 2013 32bit。也许这是我的问题的根源。这不是我的选择,因为MS Design and Development Action Pack订阅不再允许使用Office 2010。

2 个答案:

答案 0 :(得分:3)

在处理这样的问题时,我喜欢使用Refresh命令。您修改后的代码看起来像这样。

Private Sub cmdDelete_Click()
    If Me.NewRecord = False Then
        If IsNull(Me!DateTimeDeleted) = True Then
            Me!DateTimeDeleted = Now()
            DoCmd.RunCommand acCmdSaveRecord
        Else
            Me!DateTimeDeleted = Null
            DoCmd.RunCommand acCmdSaveRecord
        End If
        Me.Refresh 'This is the inserted code
    Else
        Me.Undo
    End If
End Sub

答案 1 :(得分:0)

您也可以使用Me.Recalc代替Me.Refresh。 Recalc的开销较小。