做了个vb程序,需要连接网络sql数据库,不过当电脑没有连网的时候,程序会弹出不能连接数据库的编译错误,影响了这个程序的操作实用性,有没有办法能在连接数据库前先检测下是否能连得上该网络数据库(不能连接的话就自动退出)?

解决方案 »

  1.   

    '请试看这个 添加 Command1 修改下面你要检测的IP地址Private Sub Command1_Click()
       MsgBox IIf(CheckServ("192.168.1.1"), "服务器联线中", "服务器未联线") '你的服务器IP地址
    End SubPublic Function CheckServ(Ipadr As String) As Boolean
       Dim aa$, bb$, fname$
       CheckServ = False
       fname = "c:\tmpfile.txt"
       Open "c:\testip.bat" For Output As #1
       Print #1, "@echo off"
       Print #1, "ping " & Ipadr & " >" & fname
       Close #1
       If Dir(fname) <> "" Then Kill fname
       Call Shell("cmd /c " & "c:\testip.bat", vbHide)
       '延时5秒内是否得到文档
       starttm = Timer
       Do
          DoEvents
          If Dir(fname) <> "" Then
             If FileLen(fname) > 10 Then Exit Do '得到文档即退出检测
          End If
       Loop Until Timer >= starttm + 5
       bb = ""
       If Dir(fname) <> "" Then
          Open fname For Input As #1
          While Not EOF(1)
             Line Input #1, aa
             bb = bb & aa & vbCrLf
          Wend
          Close #1
       End If
       CheckServ = IIf(InStr(bb, "Request") > 0, False, True)
       If Dir("c:\testip.bat") <> "" Then Kill "c:\testip.bat"
    End Function
      

  2.   


    on error goto errmsg
    '.......
    '...........
    exit sub
    errmsg:
    if err.number= 1223'连接失败的错误号,假设为1223
    msgbox "连接失败"
    else
    MsgBox Err.Description & Chr(13) & Chr(10) & "代号:" & Err.Number
    end if