VBA 连接到 SQL 数据库时出现运行时错误
VBA Runtime Error when connection to SQL Database
我正在尝试从同一域中的多台 PC 连接到 SQL Server
。
使用以下代码时:
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection 'Neue Verbindung initialisieren
'Verbindung einrichten'
conn.ConnectionString = "PERSIST SECURITY INFO=True;Provider=SQLOLEDB.1;Server=WWDDB;Database=01Projekt;User ID=XXX;Password=XXX;Trusted_Connection=True;Integrated Security=SSPI;"
conn.Open
conn.Open
returns 错误:
Error on login for the user 'XXXX'
这是我的代码片段,试试吧:
Set cnConn = New ADODB.Connection
With cnConn
.Provider = "SQLOLEDB.1"
.CursorLocation = adUseClient
.ConnectionTimeout = 0
.Properties("Data Source").Value = ' serverName
.Properties("Password").Value = ' pswd
.Properties("User ID").Value = ' userName
.Properties("Initial Catalog").Value = ' init DB
.Open
End With
问题是因为您使用的是具有 Integrated Security
的指定用户。这两种模式不兼容。
尝试删除 Integrated Security=SSPI
:
conn.ConnectionString = "PERSIST SECURITY INFO=True;Provider=SQLOLEDB.1;Server=WWDDB;Database=01Projekt;User ID=XXX;Password=XXX;Trusted_Connection=True;" conn.Open
或指定用户:
conn.ConnectionString = "PERSIST SECURITY INFO=True;Provider=SQLOLEDB.1;Server=WWDDB;Database=01Projekt;Trusted_Connection=True;Integrated Security=SSPI;" conn.Open
我正在尝试从同一域中的多台 PC 连接到 SQL Server
。
使用以下代码时:
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection 'Neue Verbindung initialisieren
'Verbindung einrichten'
conn.ConnectionString = "PERSIST SECURITY INFO=True;Provider=SQLOLEDB.1;Server=WWDDB;Database=01Projekt;User ID=XXX;Password=XXX;Trusted_Connection=True;Integrated Security=SSPI;"
conn.Open
conn.Open
returns 错误:
Error on login for the user 'XXXX'
这是我的代码片段,试试吧:
Set cnConn = New ADODB.Connection
With cnConn
.Provider = "SQLOLEDB.1"
.CursorLocation = adUseClient
.ConnectionTimeout = 0
.Properties("Data Source").Value = ' serverName
.Properties("Password").Value = ' pswd
.Properties("User ID").Value = ' userName
.Properties("Initial Catalog").Value = ' init DB
.Open
End With
问题是因为您使用的是具有 Integrated Security
的指定用户。这两种模式不兼容。
尝试删除 Integrated Security=SSPI
:
conn.ConnectionString = "PERSIST SECURITY INFO=True;Provider=SQLOLEDB.1;Server=WWDDB;Database=01Projekt;User ID=XXX;Password=XXX;Trusted_Connection=True;" conn.Open
或指定用户:
conn.ConnectionString = "PERSIST SECURITY INFO=True;Provider=SQLOLEDB.1;Server=WWDDB;Database=01Projekt;Trusted_Connection=True;Integrated Security=SSPI;" conn.Open