如何对Access数据库运行一系列查询

时间:2012-04-13 15:36:30

标签: ms-access access-vba

我想在几个类似的数据库上创建并运行预定义查询列表。

这个想法是打开数据库,运行查询,然后关闭。 现在我手动创建它们,运行然后从每个数据库中删除它们。

我不知道如何在VBA代码中执行此操作。 有人可以用一个简单的例子告诉我如何做到这一点吗?

1 个答案:

答案 0 :(得分:3)

您可以使用数据库Name集合中每个项目的QueryDefs属性来制作已保存查询的列表。我认为这解决了你问题的标题。然而,就我所知,你问题的主体似乎要求更多。

您可以使用当前数据库中SQL的{​​{1}}属性中的文本加载字符串变量。然后使用QueryDef方法打开另一个db文件,并在那里使用OpenDatabase字符串。

Execute

有足够的空间来完善那一个。例如,您应该添加错误处理。但是,虽然快速&肮脏,我希望它能指出你有用的方向。

我在我的系统上测试了它,它适用于我的数据库和查询名称。

Public Sub RunQueryOnAnotherDb(ByVal pQuery As String, _
        ByVal pRemoteDb As String)

    Dim dbRemote As DAO.Database
    Dim strSql As String
    strSql = CurrentDb.QueryDefs(pQuery).SQL
    'Debug.Print strSql
    Set dbRemote = OpenDatabase(pRemoteDb)
    dbRemote.Execute strSql, dbFailOnError
    Debug.Print "RecordsAffected: " & dbRemote.RecordsAffected
    dbRemote.Close
    Set dbRemote = Nothing
End Sub