我可以使用SQL成功创建UNION ALL
查询来加入多个(总共7个)SELECT
个查询,这些查询是在Access中的设计视图中构建的 - 我只需复制SQL,创建一个新查询,并将UNION ALL
放在它们之间。像我期望的那样快速地工作。
但是,我经常被要求修改单个SELECT
查询的某些方面。使用UNION ALL
重新创建查询的唯一方法是复制SELECT
语句并重新粘贴。
使用DoCmd.OpenQuery
或RunSQL
?
我正在寻找一种简单的方法来调用可能看起来像qry_Input_1 UNION ALL qry_Input_2
的方法,而无需在每次进行更改时重新键入/复制/粘贴SELECT
查询。我对SQL或VBA方法持开放态度。
这是我根据下面的输入启动的VBA(感谢@Ispep Aloc)。我按照建议在我的tempTable上遇到了麻烦。
Sub UnionQuery()
Dim i As Integer
Dim tempTable As String
tempTable = "tbl_P54_Union"
For i = 1 To 7
DoCmd.RunSQL "INSERT INTO tempTable SELECT * FROM qry_P54Input_" + CStr(i)
Next i
End Sub
答案 0 :(得分:0)
我会采取不同的方法。假设您的查询名为qry_Input_1,qry_Input_2等,我将在VBA中创建一个for循环来填充一个表,其中_1,_2是动态的,然后创建一个只从该表中选择的查询。大概是这样的
dim i as integer
for i = 1 to 7
docmd.runsql "insert into temp table select * from qry_Input_" + CStr(i)
next i