Private Sub DataGrid1_BeforeDelete(Cancel As Integer)
  If rs.Fields(0) = "0000" Then
    MsgBox "不能删除管理员", vbOKOnly, "提示"
    Cancel = True
  End If
End Sub我在程序中定义了第一个字段为“0000”的记录不能删除,这可以实现。但是问题是这程序连我写的MSGBOX 会弹出两次,第二次是“操作被取消”的一个警告框,如何将后面这个警告框去掉啊,谢谢各位指点

解决方案 »

  1.   

    这个好像没啥datagrid没提供啥方法关闭哦,看来要自己动用API啥的禁掉了
      

  2.   

    在删除的代码里加一句    On Error Resume Next 即可,如下所示
    Private Sub Command2_Click()
        On Error Resume Next
        Adodc1.Recordset.Delete
    End Sub
      

  3.   

    楼上说的在理,我试了下,确实是这个
    Private Sub DataGrid1_Error(ByVal DataError As Integer, Response As Integer)
        Response = 0
    '    MsgBox DataGrid1.ErrorText
    End Sub
    参看MSDN
    Error 事件(DataGrid 控件)
          该事件由于数据访问错误而出现,而在没有执行 Visual Basic 代码时就会产生这个错误。语法Private Sub object_Error([ index As Integer,] ByVal dataerror As Integer, response As Integer)Error 事件的语法包含下面部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的一个对象。 
    Index Interger,它标识控件数组中的一个控件。 
    dataerror Interger,它标识已出现的错误。 
    response Interger,将其设置为 0,就可不显示错误信息,参见“设置值”中的描述。 
    设置值response 的设置值为:设置值 描述 
    0 不显示错误消息。 
    1 (缺省值)显示与错误关联的消息。 
      

  4.   

    直接在msgbox 的下一条语句exit sub