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

Ms access 仅在加载时应用访问条件格式,ms-access,vba,ms-access-2013,Ms Access,Vba,Ms Access 2013,我有一个绑定到DAO记录源的连续表单。我的条件格式规则如下所示: 表达式为:[DateTimeDeleted]不为空(用亮粉色填充文本框背景) 然后我有一个删除按钮,显示在每条记录上。其代码为: Private Sub cmdDelete\u Click() 如果Me.NewRecord=False,则 如果IsNull(Me!DateTimeDeleted)=True,则 我DateTimeDeleted=Now() DoCmd.RunCommand acCmdSaveRecord 其他的 我

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

表达式为:[DateTimeDeleted]不为空(用亮粉色填充文本框背景)

然后我有一个删除按钮,显示在每条记录上。其代码为:

Private Sub cmdDelete\u Click()
如果Me.NewRecord=False,则
如果IsNull(Me!DateTimeDeleted)=True,则
我DateTimeDeleted=Now()
DoCmd.RunCommand acCmdSaveRecord
其他的
我DateTimeDeleted=Null
DoCmd.RunCommand acCmdSaveRecord
如果结束
其他的
我,解开
如果结束
端接头
我很清楚这里没有代码可以删除记录,我同意。我的抱怨是,条件格式似乎只在表单加载时应用。单击上面的按钮不会使正在“删除”的记录的框变为粉红色。在这里,我是否对条件格式的工作原理有一些误解


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

在处理此类问题时,我喜欢使用
刷新
命令。修改后的代码如下所示

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

你也可以用Me.Recalc代替Me.Refresh。Recalc的开销更少。

我怎么样。
Me.Refresh
?继续并将其作为答案发布。成功了。当我将表单切换到ADO时,不确定它是否仍然可以工作,但如果它不工作,那么在那一点上这将是一个单独的问题。