下面是代码:
If MsgBox("要保存吗?", vbYesNo) = vbYes Then
    On Error GoTo err
    Dim conn As New ADODB.Connection
    Dim cmd As New ADODB.Command
    conn.Open contextDB
    cmd.ActiveConnection = conn
    cmd.CommandText = sql
    cmd.Execute
    MsgBox ("操作成功")
End If
err:
    MsgBox ("操作失败")
End Sub
执行结果是:先显示“操作成功”,接着显示“操作成功”,为什么?明明应该只显示一个提示的。奇怪。

解决方案 »

  1.   

    If MsgBox("要保存吗?", vbYesNo) = vbYes Then
        On Error GoTo err
        Dim conn As New ADODB.Connection
        Dim cmd As New ADODB.Command
        conn.Open contextDB
        cmd.ActiveConnection = conn
        cmd.CommandText = sql
        cmd.Execute
        MsgBox ("操作成功")
        exit sub 
    End If
    err:
        MsgBox ("操作失败")
    End Sub
      

  2.   

    to lihonggen0(李洪根,用.NET,标准答案来了) :
    是不是无论有没有错误,label后面的代码都要按顺序执行啊。
      

  3.   

    你没有使用exit sub所以err:后的代码还会执行的,应该在提示操作成功后执行exit sub这样就好了
      

  4.   

    End If
    exit sub  '//不能少
    err:
        MsgBox ("操作失败")
      

  5.   

    csdn出问题了,我明明给的100分,现在变成20分了。所以不好意思了,只能给20分,不是我骗人。