2013-03-18 120 views
1

我有一个Excel中调用Access数据库(.mdb)中查询的VBA宏。但是,Access已更新为.accdb文件,我不知道如何更改宏(和/或包含任何库,因为我没有真正理解该部分),以便代码可以工作。从Excel宏调用访问查询

这是当前的“头”代码:

'Step 1: Declare your variables 
Dim MyDatabase As DAO.Database 
Dim MyQueryDef As DAO.QueryDef 
Dim MyRecordset As DAO.Recordset 


'Step 2: Identify the database and query 
Set MyDatabase = DBEngine.OpenDatabase("C:\Users\Ben\Google Drive\Database\Production\FOREAL PROD.mdb") 
+0

您是否尝试更新'Set MyDatabase'语句中的文件名并运行代码?如果是这样,发生了什么? – 2013-03-18 16:42:27

+0

是的。我收到一个无法识别的数据库错误。我认为这是因为MyDatabase是一个DAO.Database,它需要是ADO。但我不明白这一切。 – user2183177 2013-03-18 16:53:22

+0

如果您有近期足够的组件(用于ACE数据库引擎),则DAO仍可与.accdb文件一起使用。你使用的是什么版本的Excel? – 2013-03-18 16:57:45

回答

1

如果您收到一个“无法识别的数据库格式”错误然后您的Excel项目,可以使用旧的DAO(数据访问对象)引用不知道如何处理.accdb文件。

在VBA窗口中,选择Tools > References...。如果你看到一个旧的DAO参考像...

“Microsoft DAO 3.6对象库”

...那么,可以说明这个问题。

你要升级旧的DAO参考这个...

“的Microsoft Office 14.0 Access数据库引擎对象库”

...要做到这一点,您需要从here下载并安装Microsoft Access数据库引擎2010 Redistributable。