Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 将Microsoft Access查询切换到SQL Server的ODBC驱动程序17不会返回任何记录_Sql Server_Vba_Ms Access_Odbc_Adodb - Fatal编程技术网

Sql server 将Microsoft Access查询切换到SQL Server的ODBC驱动程序17不会返回任何记录

Sql server 将Microsoft Access查询切换到SQL Server的ODBC驱动程序17不会返回任何记录,sql-server,vba,ms-access,odbc,adodb,Sql Server,Vba,Ms Access,Odbc,Adodb,我们正在更改为ODBC驱动程序17以支持TLS 1.2,将提供程序从sqloledb更改为驱动程序ODBC 17会导致记录集为空。查询将执行,正如我在SQL Profiler中看到的那样,但不会将任何记录返回给Microsoft Access。这是旧的连接字符串和新的连接字符串 Dim connectionString As String ' old - this worked connectionString = "Provider=sqloledb;Server=SQL\SQLIn

我们正在更改为ODBC驱动程序17以支持TLS 1.2,将提供程序从sqloledb更改为驱动程序ODBC 17会导致记录集为空。查询将执行,正如我在SQL Profiler中看到的那样,但不会将任何记录返回给Microsoft Access。这是旧的连接字符串和新的连接字符串

Dim connectionString As String
' old - this worked connectionString = "Provider=sqloledb;Server=SQL\SQLInstance;Database=databaseName;Trusted_Connection=yes;"    
connectionString = "DRIVER={ODBC Driver 17 for SQL Server};Server=SQL\SQLInstance;Database=databaseName;Trusted_Connection=yes;"

Dim Rs As ADODB.Recordset
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command

cmd.ActiveConnection = connectionString
cmd.CommandText = "SELECT * From [dbo].[TableName]"
cmd.CommandType = adCmdText
Set Rs = cmd.Execute
是否有其他方法使用此返回记录?为了便于故障排除,我简化了问题,实际案例使用了参数化存储过程

"Provider=MSOLEDBSQL;Server=SQL\SQLInstance;Database=databaseName;
Trusted_Connection=yes;DataTypeCompatibility=80;MARS Connection=True;"

这是正确的连接字符串,在跟随@DavidBrowne Microsoft的链接之后,我需要安装Microsoft OLE DB Driver 18.5 for SQL Server,并在其工作之前重新启动。

两个连接字符串中的
服务器
不同。而
SQLOLEDB
的推荐替代品是
MSOLEDBSQL
链接表是否与17驱动程序一起工作?尝试链接表-查看该连接字符串。另外,我相信有两位17岁的本地司机。一组驱动程序不支持oleDB,因此您必须安装正确的驱动程序。链接表使用ODBC,因此建议使用DAO代替ADO。但是,如果您要使用oleDB(ADO),则需要安装对它的支持-@DavidBrowne Microsoft这如何更改上述代码,我已安装了18.5 MSOLEDBSQL提供程序,我是否只需将连接字符串放回原始字符串?仅更改连接字符串似乎无法解决问题,connectionString=“Provider=MSOLEDBSQL;Server=SQL\SQLInstance;数据库=数据库名称;可信连接=是;DataTypeCompatibility=80;火星连接=真;"