完全可以
dim ServerDB as adodb.connection
Public Sub ConnServerDB(ServerName As String, mUserID As String, mPassWord As String)
  On Error GoTo ConnServerErr
    Dim ConnStr As String
    Set ServerDB = New ADODB.Connection
    ServerDB.ConnectionTimeout = 10
    ConnStr = "Provider=SQLOLEDB;Server=" & ServerName & ";DataBase=TempDB;User ID=" & mUserID & ";Pwd=" & mPassWord & ";"
'ServerName是指服务器的IP地址
    ServerDB.Open ConnStr
    
    Exit Sub
    
ConnServerErr:
  gErr = False
  MsgBox "不能连接到远程监理服务器,请检查网络是否连接正确!" & vbNewLine & "检查填写的服务器名称或服务器的IP地址是否正确!" & vbNewLine & "检查用户名或密码是否正确!", vbInformation + vbOKOnly, "连接错误"
End Sub

解决方案 »

  1.   

    上面哪一句指定的是TCP/IP连接,而不是[Name Pipes]?我原来用的方法是:
    cn.ConnectionString = "DRIVER={SQL Server};SERVER=192.168.0.1;DATABASE=TempDB;UID=sa;PWD=pwd;"
      

  2.   

    上面哪一句指定的是TCP/IP连接,而不是[Name Pipes]?我原来用的方法是:
    cn.ConnectionString = "DRIVER={SQL Server};SERVER=192.168.0.1;DATABASE=TempDB;UID=sa;PWD=pwd;"
      

  3.   

    上面的连接代码还是通过命名管道的方式连接的
    以下作为参考你可以查看一下注册表
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
    "10.136.141.150"="DBMSSOCN,10.136.141.150"
    "ccsg"="DBNMPNTW,\\ccsg\pipe\sql\query"
    "powersql"="DBMSSOCN,POWERSQL"其中 DBMSSOCN 是指用TCP/IP连接, DBNMPNTW 是指用命名管道连接