尝试通过转到Excel从2010密码保护的Access数据库向MS Excel添加数据源 - >数据 - >从Access(在获取外部数据中) - >选择数据库。
如果我从数据库中删除密码,我可以添加数据源/查询,无论我是否在Access中打开数据库。如果我添加密码并关闭数据库,我可以从Excel添加数据源/查询。但是,如果我加密Access数据库并打开数据库,Excel无法连接到数据库,我无法查询。
我使用“遗留加密方法”设置数据库密码(如有关此问题的其他问题所述),但它看起来是数据库锁定问题。在excel中,我将“打开模式”设置为DB_MODE_READ但没有添加连接。
我在测试时收到的一些错误消息:
“您试图在计算机上打开已由用户'Admin'打开的数据库...”不确定这意味着什么 - 我想要的只是对数据库的读访问权。
“工作组信息文件丢失或由其他用户独占打开。”我到处寻找,但找不到有关工作组信息文件的任何信息 - 我认为Access的更高版本取消了.mdw文件。
无论如何,您似乎无法连接或查询已打开的加密2010 Access数据库(与未加密的2010 Access数据库或加密但已关闭的Access数据库不同)。如果有人对解决查询打开的,加密的2010 Access数据库的问题有任何意见,那就太棒了!
答案 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