For loop 循环以运行一系列查询,为不同表中的每条记录追加一个表。MS Access 2010

For loop 循环以运行一系列查询,为不同表中的每条记录追加一个表。MS Access 2010,for-loop,ms-access,foreach,vba,ms-access-2010,For Loop,Ms Access,Foreach,Vba,Ms Access 2010,以下是我需要做的: 我有一系列的查询,用于为一个项目创建包含多个统计列的最终报告。我有一张桌子,每张桌子上都有一把钥匙。我需要做的是创建一个循环,该循环运行一个项的一系列查询,并使用最终查询将结果附加到“report”表中 我已经设置了所有的Make表查询和最后的Append查询。有两个查询需要密钥,其余查询取决于前两个查询的结果。因此,我需要在这两个查询中使用该键作为参数。我需要的是一个循环,它将为“Items”表中的每个键运行对该键的查询,然后循环 我有一个模块设置来运行完整的查询集,但是现

以下是我需要做的:

我有一系列的查询,用于为一个项目创建包含多个统计列的最终报告。我有一张桌子,每张桌子上都有一把钥匙。我需要做的是创建一个循环,该循环运行一个项的一系列查询,并使用最终查询将结果附加到“report”表中

我已经设置了所有的Make表查询和最后的Append查询。有两个查询需要密钥,其余查询取决于前两个查询的结果。因此,我需要在这两个查询中使用该键作为参数。我需要的是一个循环,它将为“Items”表中的每个键运行对该键的查询,然后循环

我有一个模块设置来运行完整的查询集,但是现在我需要为每个项目运行它。我的想法是,我需要一个“for I in items…”类型的循环,但我不知道如何在VBA中做到这一点


使用MS Access 2010

据我所知,您希望在表中保存查询的位置运行多个查询。有些查询依赖于父查询

伪逻辑:

  • 运行并执行父查询
  • 如果结果存在,则检索值
  • 启动循环,直到父查询具有值
  • 检索/构造子查询
  • 执行子查询
  • 端环
  • 一些伪代码:

    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
    
    注意:这只是一个伪答案,可以帮助您了解场景的可能性