如何将打开的,加密的2010 MS Access数据库中的数据导入Excel?

时间:2017-02-28 20:53:31

标签: excel ms-access

尝试通过转到Excel从2010密码保护的Access数据库向MS Excel添加数据源 - >数据 - >从Access(在获取外部数据中) - >选择数据库。

如果我从数据库中删除密码,我可以添加数据源/查询,无论我是否在Access中打开数据库。如果我添加密码并关闭数据库,我可以从Excel添加数据源/查询。但是,如果我加密Access数据库并打开数据库,Excel无法连接到数据库,我无法查询。

我使用“遗留加密方法”设置数据库密码(如有关此问题的其他问题所述),但它看起来是数据库锁定问题。在excel中,我将“打开模式”设置为DB_MODE_READ但没有添加连接。

我在测试时收到的一些错误消息:

“您试图在计算机上打开已由用户'Admin'打开的数据库...”不确定这意味着什么 - 我想要的只是对数据库的读访问权。

“工作组信息文件丢失或由其他用户独占打开。”我到处寻找,但找不到有关工作组信息文件的任何信息 - 我认为Access的更高版本取消了.mdw文件。

无论如何,您似乎无法连接或查询已打开的加密2010 Access数据库(与未加密的2010 Access数据库或加密但已关闭的Access数据库不同)。如果有人对解决查询打开的,加密的2010 Access数据库的问题有任何意见,那就太棒了!

1 个答案:

答案 0 :(得分:0)

想出来。需要更改数据中的连接字符串 - > connections - > properties - > definition - >连接字符串为" Share Deny None"而不是" Share Deny Write"。示例连接字符串如下。

Provider = Microsoft.ACE.OLEDB.12.0; Password ="&#34 ;; User ID = Admin; Data Source = [YOUR SOURCE]; Mode = Share Deny None ;扩展属性="&#34 ;; Jet OLEDB:系统数据库="&#34 ;; Jet OLEDB:注册表路径="&#34 ;; Jet OLEDB:数据库密码= 123; Jet OLEDB:引擎类型= 6; Jet OLEDB:数据库锁定模式= 0; Jet OLEDB:全局部分批量操作= 2; Jet OLEDB:全局批量事务= 1; Jet OLEDB:新数据库密码="&#34 ;; Jet OLEDB:创建系统数据库= False; Jet OLEDB:加密数据库= False; Jet OLEDB:不要复制Compact上的Locale = False; Jet OLEDB:Compact没有副本修复= False; Jet OLEDB:SFP = False ; Jet OLEDB:支持复杂数据= False; Jet OLEDB:绕过UserInfo验证= False