【发布时间】:2019-03-29 22:27:52
【问题描述】:
如何在 MS Access 中编写一个宏来自动运行多个 SQL 查询并同时保存它们?如果我选择 OpenQuery 操作,那么它需要一个已保存的查询,但我想使用宏在多个表上运行查询,有没有办法做到这一点!
【问题讨论】:
-
不能使用宏。 VBA 和 QueryDef 可能会得到你想要的,但并不完全清楚那是什么。
如何在 MS Access 中编写一个宏来自动运行多个 SQL 查询并同时保存它们?如果我选择 OpenQuery 操作,那么它需要一个已保存的查询,但我想使用宏在多个表上运行查询,有没有办法做到这一点!
【问题讨论】:
使用一个简单的函数来创建查询。然后你只需要运行它。如果您不提供名称,则不会存储查询(临时)。
创建查询:
Private Function CreateQueryDefinition(ByVal qryName As String, ByVal sqlCommand As String) As DAO.QueryDef
Set CreateQueryDefinition = CurrentDb().CreateQueryDef(qryName, sqlCommand)
End Function
称呼它:
Private Sub Form_Load()
Dim q As DAO.QueryDef
Set q = CreateQueryDefinition("QueryName", "UPDATE Table SET Table.Field = 'Whatever';")
q.Execute dbFailOnError
End Sub
请注意,如果您尝试创建已存在的查询,则会引发错误。
【讨论】: