给你这段代码,专门解决这个问题:
Private Sub MDIForm_Load()
On Error GoTo loadshujuku
Dim queren
Dim i As Long
Dim ConnStr As String
Dim temp1 As String, temp2 As String
Dim t1 As Long'设置连接
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & GetSetting("shenchanke", "lujin", "lujin") & ";Persist Security Info=False"
Conn.Open ConnStr
lei.CursorLocation = adUseClient
lei.Open "人员类型表", Conn, adOpenDynamic, adLockPessimistici = -1
With lei
If .EOF = True And .BOF = True Then
    If .State <> adStateClosed Then
        .Close
    End If
    If Conn.State <> adStateClosed Then
        Conn.Close
    End If
    Exit Sub
End If
.MoveFirst
Do Until .EOF
    i = i + 1
    l(i) = .Fields("人员类型")
    .MoveNext
Loop
End WithIf lei.State <> adStateClosed Then
    lei.Close
    Set lei = Nothing
End If
If Conn.State <> adStateClosed Then
    Conn.Close
    Set Conn = Nothing
End IfExit Sub
loadshujuku:
queren = MsgBox("数据库连接存在问题,请确认网络是否连通," & Chr(13) & "或者选择一个连接路径,现在就选择吗?", vbQuestion + vbYesNo, "提示!")
If queren = vbYes Then
    cd.Flags = &H1004 'cdlOFNFileMustExist &H1000 它指定只能输入文件名文本框已经存在的文件名。
    cd.ShowOpen       '如果该标志被设置,则当用户输入非法的文件名时,要显示一个警告。
    If cd.FileName <> "" And cd.FileName <> "生产科数据库.mdb" Then '该标志自动设置 cdlOFNPathMustExist 标志。
        SaveSetting "shenchanke", "lujin", "lujin", cd.FileName 'cdlOFNHideReadOnly &H4 隐藏只读复选框。
        ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cd.FileName & ";Persist Security Info=False"
        Conn.Open ConnStr
        lei.CursorLocation = adUseClient
        lei.Open "人员类型表", Conn, adOpenDynamic, adLockPessimistic
        
        i = -1
        With lei
        If .EOF = True And .BOF = True Then
            If .State <> adStateClosed Then
                .Close
            End If
            If Conn.State <> adStateClosed Then
                Conn.Close
            End If
            Exit Sub
        End If
        .MoveFirst
        Do Until .EOF
            i = i + 1
            l(i) = .Fields("人员类型")
            .MoveNext
        Loop
        End With
            
        MsgBox "选择正确,程序正常运行!", vbInformation, "恭喜!"
        cd.FileName = "生产科数据库.mdb"
        
        If lei.State <> adStateClosed Then
            lei.Close
            Set lei = Nothing
        End If
        If Conn.State <> adStateClosed Then
            Conn.Close
            Set Conn = Nothing
        End If
    Else
        MsgBox "没有选择正确的数据库路径,程序将无法正常工作!", vbInformation, "提示!"
        Toolbar1.Enabled = False
    End If
Else
    MsgBox "没有选择正确的数据库路径,程序将无法正常工作!", vbInformation, "提示!"
    Toolbar1.Enabled = False
End IfEnd Sub

解决方案 »

  1.   

    FindFirstFile
    来检查文件是否存在
      

  2.   

    private sub form_load() 
    Dim StringI As String 
    Dim cnnI As New ADODB.Connection 
    on error goto err1 '我想如果c:\ss.mdb不存在,返回错误处理! 
      StringI = "provider=microsoft.jet.oledb.4.0;data source=c:\ss.mdb" 
      cnnI.Open Stringi 
      exit sub 
    err1:
      msgbox"你连接的数据库不存在!" 
      end sub 
      

  3.   

    我form有 一CommonDialog1控件,我用你的代码:
    private sub form_load() 
    Dim StringI As String 
    Dim cnnI As New ADODB.Connection CommonDialog1.Filter = "mdb Files (*.mdb)|*.mdb"
     CommonDialog1.InitDir = "c:\My documents"
     CommonDialog1.ShowOpen
     
    on error goto err1 StringI = "provider=microsoft.jet.oledb.4.0;data source=" & CommonDialog1.FileName 
    cnnI.Open Stringi 
    exit sub 
    err1: 
    msgbox"你连接的数据库不存在!" 
    end sub 我用CommonDialog1调用对话框输入存在的数据库名,我按【打开】或【取消】,它都打开连接,实行cnnI.Open Stringi ,我想按【取消】,就exit sub
      

  4.   

    用这个简单点
    If fso.fileexists(App.Path + "数据库名") Then.......
      

  5.   

    很简单 你只需要将你的代码改一下 将On Error GoTo err1放到数据库连接以前就可以了
    如:
    Private Sub form_load()Dim StringI As String
    Dim cnnI As New ADODB.ConnectionOn Error GoTo err1 '我想如果c:\ss.mdb不存在,返回错误处理!
    StringI = "provider=microsoft.jet.oledb.4.0;data source=c:\ss.mdb"
    cnnI.Open StringI.........'在这里执行你要执行的程序
    exit sub '表示正确的退出模块err1:    ’执行错误的时候执行的语句
    MsgBox "你连接的数据库不存在!"
    .......
    Exit Sub这样问题就解决了 很简单
    我要分 ^_^ 
    End Sub
      

  6.   

    尽量不要用On Error goto
    因为假如不是文件不存在的而出错呢?当然可以捕捉错误值来判断,即Err。
    其实你可以先用:dir("c:\c:\ss.mdb") 来判断,假如文件不存在,则返回一个空字符,存在则返回其文件名
      

  7.   

    我用楼上的方法可以!
    但我在form中用CommonDialog1调用对话框输入存在的数据库名,我按【打开】或【取消】,它都打开连接,实行cnnI.Open Stringi ,我想按【取消】,就exit sub 
    sub form_load() 
    Dim StringI As String 
    Dim cnnI As New ADODB.Connection CommonDialog1.Filter = "mdb Files (*.mdb)|*.mdb" 
    CommonDialog1.InitDir = "c:\My documents" 
    CommonDialog1.ShowOpen Set fso = CreateObject("scripting.filesystemobject")
    If fso.fileexists(CommonDialog1.FileName) Then
    StringI = "provider=microsoft.jet.oledb.4.0;data source=" & CommonDialog1.FileName 
    cnnI.Open Stringi else
    msgbox"你连接的数据库不存在!" 
    exit sub
    end sub 
      

  8.   

    private sub form_load() 
    Dim StringI As String 
    Dim cnnI As New ADODB.Connection 
    StringI = "provider=microsoft.jet.oledb.4.0;data source=c:\ss.mdb" 
    On Error Resume Next
    cnnI.Open Stringi 
    If Err Then
          MsgBox "aaaaaaaaaaaaaaaa.", 0, "warning:" ' 显示错误消息。
          Exit Sub   ' 如果发生错误则退出。
    End If
      

  9.   

    首先CommonDialog1.CancelError = -1,即按【取消】按钮就出错。
    所以在前面加On Error GoTo 
      

  10.   

    用if 
    ...
     else
     ...
     end  就好啦不要用goto
      

  11.   

    我用楼上的方法可以!但我在form中用CommonDialog1调用对话框输入存在的数据库名,我按【打开】或【取消】,它都打开连接,实行cnnI.Open Stringi ,我想按【取消】,就exit sub
      

  12.   

    你这条语句加了吗:CommonDialog1.CancelError = -1
      

  13.   

    if dir("c:\ss.mdb",vbnormal)="" then
       msgbox "文件不存在!"
       exit sub
    end if