我在MS Access中构建了一个表单,用于为数据库创建数据集。 然后我实现了一些代码,以检查是否已填写所有必填字段,然后才允许关闭表单并将数据集保存到数据库中。
一切运行良好,但我似乎无法抑制Access创建的标准错误消息,告诉我此刻无法保存数据集(如果未填写必填字段且设置了Cancel
如果我想在不保存的情况下退出表单,请告诉我。
我的代码结构如下:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If requiredFieldsNotFilled Then
Cancel = True
Else
Cancel = False
End If
End Sub
当Cancel
设置为true时(即所有字段都没有填写),Access(错误代码2169)会抛出一条标准错误消息,我试图压制它:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 2169 Then
Response = acDataErrContinue
Else
Response = acDataErrDisplay
End If
End Sub
但是,生成的错误消息提供了是/否选择。 '是'关闭数据集而不保存,'否'不关闭数据集。 如果我使用上面描述的错误处理程序,则采用默认选项,在这种情况下为“是”,数据集将关闭而不保存! 这不是我想要的!我希望选择“否”,以便用户留在表单上并且可以更正他的输入...有关如何做到这一点的任何想法? 任何帮助深表感谢!提前谢谢!
答案 0 :(得分:0)
我认为此功能不可用,但您可以使用Form_Unload
事件手动停止下一个关闭操作:
Dim DontClose As Boolean
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 2169 Then
Response = acDataErrContinue
DontClose = True
Else
Response = acDataErrDisplay
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Cancel = DontClose
DontClose = False
End Sub