Ms access 仅在加载时应用访问条件格式
我有一个绑定到DAO记录源的连续表单。我的条件格式规则如下所示: 表达式为:[DateTimeDeleted]不为空(用亮粉色填充文本框背景) 然后我有一个删除按钮,显示在每条记录上。其代码为: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 其他的 我
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时,不确定它是否仍然可以工作,但如果它不工作,那么在那一点上这将是一个单独的问题。