按动态查询的值过滤表单(vba)

时间:2017-05-18 03:29:50

标签: vba ms-access

首先,对不起我的英语,我是法国人...我尽我所能保证!

我有一个子窗体包含有关要安装的套件的详细信息(用于生产目的)。 其中一些套件与其他套件共用零件,我提出了一个查询来识别它。

所以我们有一个包含我的工具包及其详细信息的子表单:

Kit Number
----------------------------------------
Kit A
Kit B
Kit C

我有一个查询,用于识别共享零件的套件,例如套件A,套件A和套件B等......

子查询将该查询过滤为Main_Kit的条件:     [Forms]![frm_Production01].[Form]![q10_KitsToProduced_GroupBy_subform].[Form]![Kit]

通过在我的子表单上的工具包上(数据表视图),我想用相关的共享部件工具包过滤该子表单。并且能够不过滤并将过滤器应用于另一个套件。

现在,我在子表单上创建了一个未绑定的文本框,其中包含一个点击事件,可根据查询过滤我的工具包:

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或Kit Number不是数字,而是文本。)

所以,我的问题是那不起作用,导致一个空的子表单。

你对如何做这样的事情有任何想法吗?

非常感谢你。

1 个答案:

答案 0 :(得分:0)

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

strFilter = "[Kit] In('" & [q27_KitsWithSharedParts_2]![Kit_Number] & "')"