Connection 对象的CommandTimeout默认值为30
你可以设小一点

解决方案 »

  1.   

    设这个CommandTimeOut没用的,你有没有试过?
      

  2.   

    '个人认为较好的带超时控制的打开连接代码
    Dim adoConnection As New ADODB.Connection
    adoConnection.ConnectionTimeout = 2
    On Error Resume Next
    adoConnection.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=TRIATON\PSQL2KE"
    If Err.Number = 0 Then
       On Error GoTo 0
       If adoConnection.State <> adStateClosed Then
          VBA.MsgBox "OK!"
       End If
    Else
       VBA.MsgBox Err.Number & ":" & vbCrLf & Err.Description, vbCritical
    End If
      

  3.   

    服务器名让用户选择,别让他输入,获取服务器名方法如下:
      Dim osqlserverdmoapp As New SQLDMO.Application
     For i = 1 To osqlserverdmoapp.ListAvailableSQLServers.Count
       Debug.Print osqlserverdmoapp.ListAvailableSQLServers.Item(1)
     Next i
      Set osqlserverdmoapp = Nothing
      

  4.   

    linux_withwind(随风而去),你的方法速度太慢了,程序要停止响应起码一分钟。