按动态查询(vba)的值筛选表单

按动态查询(vba)的值筛选表单,vba,ms-access,Vba,Ms Access,首先,对不起我的英语,我是法国人。。。我保证我会尽力的 我有一个子表单,其中包含要装载的套件的详细信息(用于生产目的)。 其中几个工具包与其他工具包共享部件,我通过查询确定了这一点 因此,我们有一个子表单,其中包含我的工具包及其详细信息: Kit Number ---------------------------------------- Kit A Kit B Kit C 我有一个查询,确定套件共享零件,如套件a与套件a和套件B等 该查询由子窗体作为主工具的条件进行筛选: [Forms]!

首先,对不起我的英语,我是法国人。。。我保证我会尽力的

我有一个子表单,其中包含要装载的套件的详细信息(用于生产目的)。 其中几个工具包与其他工具包共享部件,我通过查询确定了这一点

因此,我们有一个子表单,其中包含我的工具包及其详细信息:

Kit Number
----------------------------------------
Kit A
Kit B
Kit C
我有一个查询,确定套件共享零件,如套件a与套件a和套件B等

该查询由子窗体作为主工具的条件进行筛选:
[Forms]![frm_Production01]。[Form]![q10_KitsToProduced_GroupBy_子表单].[Form]![套件]

通过点击我的子窗体(数据表视图)上的工具包,我希望使用相关的共享零件工具包筛选该子窗体。并且能够取消过滤并将过滤器应用到另一个套件上

现在,我在我的子窗体上创建了一个未绑定的文本框,其中包含一个单击事件,以根据查询筛选我的工具包:

Private Sub Text30_Click()
    Dim strFilter As String
    strFilter = "[Kit] In('" & "[q27_KitsWithSharedParts_2]![Kit_Number]" & "')"
    Me.Filter = strFilter
    Me.FilterOn = True
End Sub
(现场套件或套件编号不是数字,而是文本。)

所以,我的问题是它不工作,导致一个空的子窗体

你知道怎么做这样的事吗


提前非常感谢。

不要在字段参考周围加引号。引号表示文字字符串,而您希望字段或控件中的值。[Kit]是数字字段吗?如果是,也不要使用撇号分隔符。可能不需要查询名称前缀


strFilter=“[Kit]在(”&[q27\u KitsWithSharedParts\u 2]![Kit\u Number]&“)”

在代码行“Me.Filter=strFilter”上放置一个断点,并检查“strFilter”中的值。我认为这不会产生您期望的结果,因为您没有引用查询结果,而是会引用查询名称,而不是您期望的值。