使用预定义选项抑制标准错误消息

时间:2018-06-08 11:42:04

标签: vba ms-access access-vba

我在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

但是,生成的错误消息提供了是/否选择。 '是'关闭数据集而不保存,'否'不关闭数据集。 如果我使用上面描述的错误处理程序,则采用默认选项,在这种情况下为“是”,数据集将关闭而不保存! 这不是我想要的!我希望选择“否”,以便用户留在表单上并且可以更正他的输入...有关如何做到这一点的任何想法? 任何帮助深表感谢!提前谢谢!

1 个答案:

答案 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