vba - 如何在更改字段时运行宏,而不是在该字段的原始条目上运行宏?
问题描述
我创建了一个项目数据库,其中包含一个表单,其中包含供员工在项目启动时完成的字段。
第一个字段“ClientCode”是客户的强制性下拉列表(组合框)。
为避免意外更改此字段,我添加了“更改时”代码以显示警告消息:
Private Sub ComboClientCode_Change()
If MsgBox("Are you sure you want to change the client?", vbQuestion + vbYesNo) = vbNo Then
DoCmd.RunCommand acCmdUndo
Else
Exit Sub
End If
End Sub
它可以工作,但是我不希望它在有人开始新记录时运行,即第一次选择客户端。
我如何让这条消息只显示它是否是对原始条目的更改?
我尝试将其移至“更新后”,但它做同样的事情。
解决方案
您可以在第一次更改组合框时更改组合框的“不相关”属性之一。
Private Sub ComboClientCode_Change()
If ComboClientCode.ColumnHeads = False Then
ComboClientCode.ColumnHeads = True
Else
If MsgBox("Are you sure you want to change the client?", vbQuestion + vbYesNo) = vbNo Then
'DoCmd.RunCommand acCmdUndo
Debug.Print "DoCmd.RunCommand acCmdUndo"
Else
Exit Sub
End If
End If
End Sub
应该适用于这种类型:
上述选定类型的列出属性:
如果它有一个值,您可以运行它来进行现有的更改:
Sub Switch()
If ComboClientCode.Value <> "" Then
ComboClientCode.ColumnHeads = True
Else
ComboClientCode.ColumnHeads = False
End If
End Sub
推荐阅读
- scala - Scala 中的哪个函数将 java.lang.Integer (null) 转换为 scala Int (zero)?
- django - 如何在 django 模板中迭代对象的子项
- python - Discord Bot Python 消息日志
- reactjs - 如何获得映射数组数组的唯一键?
- sql - 如何查询活动记录?
- bash - Bash 输出 p:line 5: modavar: command not found when I aliased modaver
- java - RDF4J Ontotext GraphDB:prepareUpdate big Sparql-Update String-> 不支持的 MIME 类型:application/x-www-form-urlencoded
- python - Python:使用套接字库创建的 IRC 机器人返回错误“错误的文件描述符”
- azure - Azure 仅允许通过 azure vpn 访问 azure 门户
- visual-studio - Raylib 项目停止运行