通过OleDb ACE访问Excel 2007二进制文件(.xlsb)

8 oledb ssis excel-2007

我发现Excel 2007二进制格式(扩展名为.xlsb)完全适合我的需要,因为它加载速度快,非常紧凑.我在Excel中提供了大量带有大量数据的报告,这些报告实际上正在加载IS包.

所以我假设转换为这种格式,阅读Access Ole DB Provider 12上的文档,其中写道xlsb受此提供程序支持.我在Excel中转​​换了文件,然后在尝试在包中更改它们时(只需通过添加"b"后缀来更改文件的路径),我收到以下错误消息:

"Test connection failed because of an error in initializing provider. This 
file was created in a previous beta version of Excel 2007.  Open the file 
with Excel 2007 to save it to the most recent version of the Excel 2007 file 
format before opening the file in Access 2007."
Run Code Online (Sandbox Code Playgroud)

好吧,我认为这可能是文件转换的一些问题,所以我选了一个全新的文件,并填写了一些信息.再试一次,同样的错误!!

然后我用".udl"文件尝试了这个方法,同样的错误!然后我尝试在不同的机器上进行测试: - 我自己的(Windows Vista SP1) - 我的同事(Windows XP SP2) - IS服务器(Windows Server 2003 x64 SP2)

错误仍然存​​在.我发现重现错误很容易,我有点惊讶,我没有通过谷歌搜索找到任何关于它的东西!

有人能帮助我吗?

谢谢,拉斐尔

Koo*_*eng 3

我知道这是旧帖子。几天前我遇到了这个问题,经过一番努力,我能够解决它。希望它可以帮助别人。

就我而言,我有同样的错误:

此文件是在 Excel 2007 的早期测试版中创建的。使用 Excel 2007 打开该文件,将其保存为最新版本的 Excel 2007 文件格式,然后再在 Access 2007 中打开该文件。

当我尝试打开 OldDB 连接时会发生这种情况。我怀疑这是由于我的连接字符串语法或值问题造成的,但经过大量更改后没有任何效果。

我的机器上安装了以下内容:

1) Microsoft Access 数据库引擎 2010 版本 14.0.7015 (从这里获取)

2) Microsoft Office Access 数据库引擎 2007 版本 12.0.4581 (从这里获取)

这是导致错误发生的我的连接字符串:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Project\Excel1.xlsb;Extended Properties='Excel 12.0;HDR={1}'"
Run Code Online (Sandbox Code Playgroud)

然后我发现这可以解决我的挣扎:

Microsoft Office Access 运行时和数据连接 2007 Service Pack 2 (SP2)

我只需要下载、运行它并重新启动我的机器。然后瞧,我可以打开 OleDB 连接而不会出现该错误。

希望这会有所帮助。