Access 2016 - 多个文本字段 - 键入时无法搜索

时间:2017-02-17 20:41:33

标签: vb.net access

我有一个Access 2016表单,其中包含5个标记为txtprod,txtpri,txtcnt,txtph,txtmfg的文本框。我还查询了我的表格,了解产品名称,价格,数量,电话和制造商字段。

在我的表单5个文本框中,我希望能够在您键入时自动搜索并自动填充列表。

我遵循了这些教程 https://www.youtube.com/watch?v=SJLQqwMOF08 https://www.youtube.com/watch?v=MwaRFjgwBW8

我的表单有一个表单加载:

* Private Sub Form_Load()     昏暗的任务作为字符串     task =“SELECT * FROM pricingdata”     我!details.RowSource =任务 结束Sub *

我的文本框名称此事件“正在更改”

* Private Sub txtprod_Change()     昏暗的任务作为字符串     task =“SELECT * FROM [pricingdata] WHERE([Product Name] LIKE'”& Me.txtprod.Text&“');”     我!details.RowSource =任务 结束Sub *

我只需1个文本框即可完美搜索。但是当我将以下代码添加到我的制造商文本框事件“on change”时,它无法正常工作。

* Private Sub txtmfg_Change()     昏暗的任务作为字符串     task =“SELECT * FROM [pricingdata] WHERE([Manufacturer] LIKE'”& Me.txtmfg.Text&“');”     我!details.RowSource =任务 结束Sub *

现在,当我输入我的产品名称文本框时,它搜索产品就好了。当我开始在“制造商”文本框中输入内容时,它完全忽略了我在“产品名称”文本框中输入的内容,并开始搜索,因为我只在“制造商”文本框字段中键入文本。

如何进行此设置,以便所有5个文本框字段中的所有文本都有助于应用于我的列表的搜索过滤器?

1 个答案:

答案 0 :(得分:0)

像这样的东西。 。 。

Private Sub ComboSelect_Change()

    '  You need to use String delimiters if you want to use a Text Field like:
    '  Me.Filter "[ATextFieldInRecordSource] = """ & Me.FilterComboBox & """"

    '  For a Numeric Field, use something like this:
    '  Me.Filter "[ANumericFieldInRecordSource] = " & Me.FilterComboBox
    '  Me.FilterOn = True

    Me.[Customer_Query subform1].Form.Filter = "[Company_Name] Like '*" &
                     Replace(Me.ComboSelect.Text, "'", "''") & "*'"
    Me.[Customer_Query subform1].Form.FilterOn = True

End Sub

Notice a few things:

    The subform is named Customer_Query subform1’
    The combobox is named ComboSelect’
    Finally, the ‘like clause’ is used in combination with the wildcard character.
    Like '*" & Replace(Me.ComboSelect.Text, "'", "''") & "*'"

在组合框中键入文本时,会动态重新查询子表单中的结果。

enter image description here