Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 运行简单的VBA脚本来测试连接_Sql Server_Excel_Vba - Fatal编程技术网

Sql server 运行简单的VBA脚本来测试连接

Sql server 运行简单的VBA脚本来测试连接,sql-server,excel,vba,Sql Server,Excel,Vba,我正在尝试测试GoDaddy SQL Server数据库的连接。我得到一个“无效的连接字符串属性” 这个脚本有什么问题 Dim cnn As ADODB.Connection Dim canConnect As Boolean Public Sub TestConnection() Set cnn = New ADODB.Connection cnn.Open "Provider=sqloledb;Data Source=GoDaddyServer.com;Initia

我正在尝试测试GoDaddy SQL Server数据库的连接。我得到一个“无效的连接字符串属性”

这个脚本有什么问题

Dim cnn As ADODB.Connection
Dim canConnect As Boolean

Public Sub TestConnection()

    Set cnn = New ADODB.Connection   
    cnn.Open "Provider=sqloledb;Data Source=GoDaddyServer.com;Initial Catalog=dBase1;UserID=userID; Password='password';"   
    If cnn.State = adStateOpen Then
        canConnect = True
        cnn.Close
    End If   
MsgBox canConnect

End Sub

IIRC,必须在连接字符串之外指定Provider属性,如下所示:

Dim conn
Set conn = New ADODB.Connection
conn.Provider = "sqloledb"
conn.Open "Data Source=GoDaddyServer.com; Initial Catalog=dbase1; User ID=userid; Password=pass;"

我从未见过像您这样在SQL Server连接字符串中引用密码。尝试删除引号:

"Provider=sqloledb;Data Source=GoDaddyServer.com;Initial Catalog=dBase1;User ID=userID; Password=password;" “Provider=sqloledb;数据源=GoDaddyServer.com;初始目录=dBase1;用户ID=userID;密码=Password;”
将来您可能会发现它很有用。

可以在连接字符串中直接指定提供程序

Dim cnn as ADODB.Connection
Dim cnn_str as String
cnn_str = "Provider=SQLOLEDB;Data Source=SERVER;Initial Catalog=DB;User ID=sa;Password=PASSWORD"
Set cnn = New ADODB.Connection
cnn.Open cnn_str

谢谢我让它工作了。关键是将连接字符串放在一个单独的对象中,并将该字符串传递给连接对象。另一个键正在将用户ID参数更改为“Uid”。“Provider=sqloledb;你说得对。我把密码上的记号去掉了。谢谢。@原始海报,如果下面的答案中有一个解决了你的问题(听起来是这样的),不要忘记为将来遇到同样问题的人检查一下。