Public rsNew As ADODB.Recordset
Public rs As ADODB.Recordset
Public CnNew As ADODB.Connection
Public addFlag As Boolean
Public Function OpenCn() As Boolean
Dim Mag As String
On Error GoTo strErrMag
Set CnNew = New ADODB.Connection
CnNew.ConnectionTimeout = 25
CnNew.Provider = "SQLOLEDB"
CnNew.Properties("data source").value = "192.168.0.14" 
CnNew.Properties("initial catalog").value = "test" 
CnNew.Properties("integrated security").value = "SSPI" 
CnNew.Properties("user id").value = "sa"
CnNew.Properties("password").value = "123456"
CnNew.Open
OpenCn = True
addFlag = True
Exit Function
strErrMag:
Mag = ""
Call MsgBox(Mag, vbOKCancel, "´íÎó:Êý¾Ý¿âÁ¬½Ó")
addFlag = False
End
End FunctionPublic Sub Clocn()
On Error Resume Next
If CnNew.State <> adStateClosed Then CnNew.Close
Set CnNew = Nothing
End Sub
Public Function OpenRs(ByVal strSql As String) As Boolean
Dim Mag As String
Dim rpy As Boolean
On Error GoTo strErrMag
Set rsNew = New ADODB.Recordset
If addFlag = False Then rpy = OpenCn
With rsNew
.ActiveConnection = CnNew
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open strSql
End With
addFlag = True
OpenRs = True
Exit Function
strErrMag:
Mag = ""
Call MsgBox(Mag, vbOKOnly, "")
OpenRs = False
End Function为什么连接出错,而连接本机是正常的。并且cnNew.provider的值并不是我设置的sqloledb,为什么啊,我明明设置的啊

解决方案 »

  1.   

    你试一下这样连接行不行.Public Function OpenCn() As Boolean
    Dim Mag As String
    dim strSQL AS STRINGOn Error GoTo strErrMag
    Set CnNew = New ADODB.ConnectionstrSQL ="Provider=sqloledb;Data Source=192.168.0.14;Initial Catalog=" & "csdb" & ";User Id=sa;Password=123456"CnNew.ConnectionString=strSQL
    CnNew.openOpenCn = True
    addFlag = True
    Exit Function
    strErrMag:
    Mag = ""
    Call MsgBox(Mag, vbOKCancel, "&acute;í&Icirc;ó:&Ecirc;&yacute;&frac34;&Yacute;&iquest;&acirc;&Aacute;&not;&frac12;&Oacute;")
    addFlag = False
    End
    End Function
      

  2.   

    如下:
    CnNew.CursorLocation = adUseClient
    CnNew.ConnectionString="PROVIDER=MSDASQL;Driver=SQL Server;Server=192.168.0.14;UID=sa;PWD=123456;Database=test;"
      

  3.   

    其实用adodc去生成连接符号是最好了-_-!!
      

  4.   

    我现在把CnNew.Properties("integrated security").value = "SSPI"这句去掉
    就能连接成功了
    为什么啊
      

  5.   

    去掉CnNew.Properties("integrated security").value = "SSPI"可行,说明你程序应该用“标准安全”模式连接而非“信任的连接”模式
      

  6.   

    cnnDB.ConnectionString = "Provider=SQLOLEDB.1;Password=" & strPwd & ";Persist Security Info=true;User ID=" & strUid & ";Initial Catalog=" & strDBName & ";Data Source=" & strSName
        cnnDB.Open
    这样试试?
      

  7.   

    ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=northwind;Data Source=yang"ConnectionString = "driver={SQL Server};server=yang;uid=sa;pwd=;ConnectionTimeout=0;database=northwind"