这些配置在2020年1月适用于我的新机器构建:
(1-x64 only) Windows 10 x64,Office 365 x64,AccessDatabaseEngine_x64 2016安装了/passive参数,VStudio构建设置显式设置为x64,并使用以下连接字符串:Provider=Microsoft.ACE.OLEDB.16.0; Data Source=D:...\MyDatabase.accdb
(2-x64或x32) Windows 10 x64,Office 365 x64,AccessDatabaseEngine_x64 2016已安装/passive参数,另外还安装了AccessDatabaseEngine 2010 (32位)/passive参数,VStudio构建设置为AnyCPU,并使用以下连接字符串:Provider=Microsoft.ACE.OLEDB.16.0; Data Source=D:...\MyDatabase.accdb
(3-x32 only) Windows 10 x64,Office 365 x32,AccessDatabaseEngine 2010 (32位)安装了/passive参数,VStudio构建设置为x86,并使用以下连接字符串:Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:...\MyDatabase.accdb
失败记录:
仅使用以上(1)中安装的AccessDatabaseEngine_x64 2016,使用连接字符串中的ACE.OLEDB.12.0 x64提供程序会失败。
在(1)中使用Visual Studio构建设置中的AnyCPU会失败。必须设置为x64。可能是因为AnyCPU意味着Vstudio必须在编译时看到一个x32 ACE.OLEDB.nn.0提供程序。
当发现周围有x64应用程序时,ACE.OLEDB.12.0 2016 x32 /passive引擎将无法安装。(ACE.OLEDB.12.0 2010 x32 /passive安装程序可以正常工作。)
结论:
要使用x64构建设置,需要具有2016 x64数据库引擎和ACE.OLEDB.16.0连接字符串提供程序以及显式的x64构建设置才能在2020年1月与Office 365配合使用。使用/passive选项使安装变得容易。感谢发布此提示的人!
要使用AnyCPU,我需要安装ACE.OLEDB.12.0 2010 x32引擎和ACE.OLEDB.16.0 x64引擎。这样Vstudio就可以在"AnyCPU"编译时看到x32和x64引擎。我可以将提供程序连接字符串更改为ACE.OLEDB.12.0以进行x32操作或ACE.OLEDB.16.0以进行x64操作。两者都可以正常工作。
要使用x86构建设置,需要具有2010 x32数据库引擎和ACE.OLEDB.12.0连接字符串提供程序以及显式的x86构建设置才能在2020年1月与Office 365 x32配合使用。
execute master.dbo.xp_enum_oledb_providers
它会告诉你它认为你有哪些提供商。它告诉我我有Microsoft.ACE.OLEDB.16.0和Microsoft.ACE.OLEDB.12.0两个提供商,但当我尝试导入数据时,对于Excel 16和Excel 2007文件格式(oledb.16.0和oledb.12.0),我得到了与OP相同的“未在本地计算机上注册”的错误。此时放弃微软软件是明智的选择。 - user1040323execute master.dbo.xp_enum_oledb_providers
命令可以告诉你服务器上有哪些内容,而不是你的本地计算机。 - Nathan Goings