如何不修改表设置即可阻止Access表录入不完整记录?
Access表单关闭时自动丢弃未完成输入的实现方案
Access默认会在关闭表单、切换记录时自动提交当前已输入的内容,你可以通过表单内置的事件逻辑实现无提示丢弃未完成记录,不需要修改表的必填字段属性。
方案1:全场景拦截未完成记录提交(推荐)
该方案会在所有触发记录提交的场景下生效,包括关闭表单、切换记录、点击系统默认保存按钮,全程不会弹出系统提示。
- 打开目标表单切换到设计视图
- 右键表单空白区域打开「属性表」,切换到「事件」选项卡,找到Before Update选项,选择「事件过程」后点击右侧的三个点打开VBA编辑器
- 粘贴以下代码,替换其中的示例字段名为你实际要求填写的字段即可:
Private Sub Form_BeforeUpdate(Cancel As Integer) ' 按需修改下方的字段名,判断必填项是否全部填写 If IsNull(Me.必填字段1) Or IsNull(Me.必填字段2) Or IsNull(Me.必填字段3) Then ' 取消提交操作 Cancel = True ' 撤销当前记录所有已输入的内容 Me.Undo End If End Sub
方案2:仅在关闭表单时丢弃未提交内容
如果你仅需要关闭表单时清空未完成输入,其他操作场景下允许暂存半完成记录,可以用表单的Unload事件实现:
- 同样在表单设计视图的属性表「事件」选项卡中,找到Unload选项,选择「事件过程」打开VBA编辑器
- 粘贴以下代码即可:
Private Sub Form_Unload(Cancel As Integer) ' 判断当前是否存在未提交的修改 If Me.Dirty Then ' 直接撤销所有输入,不会触发提交逻辑 Me.Undo End If End Sub
内容的提问来源于stack exchange,提问作者Collette jorike
相关产品推荐
相关产品推荐

