以下是我需要做的事情:
我有一系列查询,用于创建包含项目的多列统计信息的最终报告。我有一个表,每个项目都有一个键。我需要做的是创建一个循环来运行项目的一系列查询,并使用最终查询将结果附加到" report"表
我已经设置了所有Make Table查询和最终的Append查询。有两个查询需要密钥,其余查询依赖于前两个查询的结果。因此,我需要将该密钥用作这两个查询中的参数。我需要的是一个循环,用于"项目" table对该键运行查询,然后循环。
我有一个模块设置来运行完整的查询集,但是现在我需要为每个项目运行它。我的想法是,我需要一个" for i in items ......"类型循环,但我不知道如何在VBA中这样做
使用MS Access 2010
答案 0 :(得分:0)
据我所知,您希望运行多个查询,其中查询保存在表中。一些查询取决于父查询。
伪逻辑:
一些伪代码:
dim MyDb as Dao.Database
dim myRs as Dao.Recordset
set mydb = currentdb
dim SQL_PARENT as string
sql_parent = "" ' Retrieve your parent query here
sql_parent = vba.replace(sql_parent, "searchkey", "replace_key") ' Replace keys
' or if you have the keys in a table then use the dlookup() function to replace keys
set myrs = mydb.openRecordSet(sql_parent)
'do error trapping here
dim iResult = nz(myrs("ResultField"),"")
'follow the parent query operation
'construct the sub queries
dim RS_SUB as DAo.Recordset
dim SQL_SUB as string
dim I as integer
for i = 1 to total of your query collection
sql_sub = query_collection(i)
sql_sub = vba.replace(sql_sub,"searchkey",iResult)
set rs_sub = mydb.openrecordset(sql_sub)
next i
注意:这只是一个伪答案,可以帮助您了解您的方案的可能性。