MS ACCESS/VBA-在docmd.runsql更新查询中使用表单筛选器

MS ACCESS/VBA-在docmd.runsql更新查询中使用表单筛选器,vba,ms-access,Vba,Ms Access,我有一个子表单,客户端使用下拉筛选列表搜索40k条记录 我需要使用他们在一行代码中选择的过滤器来更新临时表中的select标志,以便他们可以将其附加到另一个表中,该表充当他们正在编译的列表。记录集仍然有所有40k记录,所以我只需要选择屏幕上显示的内容 如何在代码中轻松使用过滤器,而无需进行大量的instr和mid操作?这是代码中的过滤器: ([sfmJobSearch][VerticalMarket]位于(“AR-娱乐和娱乐”、“联合商业”、“GO-政府”)) 但我更需要像[垂直市场]一样的“

我有一个子表单,客户端使用下拉筛选列表搜索40k条记录

我需要使用他们在一行代码中选择的过滤器来更新临时表中的select标志,以便他们可以将其附加到另一个表中,该表充当他们正在编译的列表。记录集仍然有所有40k记录,所以我只需要选择屏幕上显示的内容

如何在代码中轻松使用过滤器,而无需进行大量的instr和mid操作?这是代码中的过滤器:

([sfmJobSearch][VerticalMarket]位于(“AR-娱乐和娱乐”、“联合商业”、“GO-政府”))

但我更需要像[垂直市场]一样的“AR-娱乐和娱乐”(除了所有选项,而不仅仅是一个)

任何帮助都会很好

执行以下操作 1.在作为“子窗体记录源生成字段”属性的表中,有一个“查找”列表框,该列表框的“允许多个值”选项设置为“是”

  • 然后创建一个插入查询,将数据移动到临时表中

  • 插入查询如下所示 插入表3(字段1) 选择表2.Field1.Value 来自表2

  • 4这将解决这个问题,一旦记录被移动到临时表中,您就可以使用临时表中的值来更新另一个表中的任何其他值

  • 将所有查询按您希望它们运行的顺序放入宏中

  • 我建议您使用删除查询,首先删除临时表中的所有值。在3中运行查询之前


  • 删除查询应该是宏中的第一个查询。

    中的
    是您所需要的,因此,
    中的id在(1,2,3,4)
    中的id=1或id=2或id=3或id=4
    相同,所以在SQL更新中使用
    中的where
    ,但替换
    [sfmJobSearch]
    临时表?附加到新表?这听起来像是不必要的数据复制。使用关系数据库的全部目的是通过关系消除数据重复。如果用户正在编译一个列表,那么应该有一个只包含其他表中所选条目ID的列表表。如果列表表只有ListName和SelectionID列,则可以查询并按ListName选择所有条目,查看它们选择的所有内容。这将是一个列表视图查询。