Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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(Excel)连接到SQL Server 2016_Sql Server_Excel_Vba - Fatal编程技术网

Sql server 使用VBA(Excel)连接到SQL Server 2016

Sql server 使用VBA(Excel)连接到SQL Server 2016,sql-server,excel,vba,Sql Server,Excel,Vba,我正在尝试连接到SQL Server 2016上的数据库。使用Excel向导(Data->Get Data->From Database->From SQL Server Database),我可以进行连接,并且一切正常 接下来,我尝试使用VBA连接到服务器,但未成功: 首次尝试使用提供程序sqloledb: Dim objMyConn As ADODB.Connection Dim objMyCmd As ADODB.Command Dim objMyRecordset As ADODB.Re

我正在尝试连接到SQL Server 2016上的数据库。使用Excel向导(Data->Get Data->From Database->From SQL Server Database),我可以进行连接,并且一切正常

接下来,我尝试使用VBA连接到服务器,但未成功:

首次尝试使用提供程序sqloledb:

Dim objMyConn As ADODB.Connection
Dim objMyCmd As ADODB.Command
Dim objMyRecordset As ADODB.Recordset
Dim con as string

Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset

con = "Provider=sqloledb;Data Source=10.111.1.1,123456;Network Library=DBMSSOCN;Initial Catalog=DB01;User ID=user123;Password=XXXX;Integrated Security=SSPI"

objMyConn.ConnectionString = con
objMyConn.Open
SQLNCLI11的另一次尝试

Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim sXMLResult As String

con.ConnectionString = "Provider=SQLNCLI11;" _
         & "Server=10.111.1.1,123456" _
         & "Database=DB01;" _
         & "User ID=user123;" _
         & "Password=XXXX;" _
         & "DataTypeCompatibility=80;"

con.Open
在两次代码尝试中,我都得到了一个错误

[DBNETLIB][ConnectionOpen(Connect())。]SQL Server不存在或访问被拒绝

我用服务器名和IP都试过了。端口是正确的。
我还能试什么?内置的“获取数据”使用什么连接字符串?

这是个问题,
Server=10.111.1.1123456
。允许的tcp/udp端口号范围为0到65535。该端口在该范围内。我刚刚在我的示例中添加了一个虚拟数字。但是谢谢你的提示
Server=10.111.1.1123456
后面也没有分号,因此它会运行到下一个连接字符串参数
Server=10.111.1.1123456 database=DB01。可能需要指定实例?Server=myServerName\theinstancename如果可以手动连接,只需检查它创建的连接:数据/连接