2017-02-17 6 views
0

私は、txtprod、txtpri、txtcnt、txtph、txtmfgという5つのテキストボックスを持つAccess 2016フォームを持っています。私はまた、製品名、価格、数、電話番号、メーカーフィールドのテーブルを検索しています。アクセス2016 - 複数のテキストフィールド - 入力したときに検索する

私のフォームには5つのテキストボックスがあり、入力時に自動検索してリストを自動入力できるようにしたいと考えています。

私は私のフォームは、フォームのロード持つこれらのチュートリアルに https://www.youtube.com/watch?v=SJLQqwMOF08 https://www.youtube.com/watch?v=MwaRFjgwBW8

を追っ:文字列 タスク= ミー "pricingdata SELECT * FROM" として

*プライベートサブのForm_Load() 薄暗いタスクを! details.RowSource = task End Sub *

そして、私のテキストボックス名にはこのイベントが「変更中」

*プライベートサブtxtprod_Change() 薄暗いタスク列 タスクとして= "SELECT * [pricingdata] FROM WHERE([商品名] LIKE '"& Me.txtprod.Text &"');" Me!details.RowSource = task End Sub *

検索すると、1つのテキストボックスで完全に正常に動作します。しかし、私がメーカーのテキストボックスイベント "change on"に次のコードを追加すると、意図したとおりに動作しません。ストリング タスクとして

*プライベートサブtxtmfg_Change() 薄暗いタスクが= "SELECT * FROM [pricingdata] WHERE([メーカー] LIKE '"& Me.txtmfg.Text &"');" Me!details.RowSource = task End Sub *

ここで、[製品名]テキストボックスに入力すると、正常に製品が検索されます。メーカーのテキストボックスに入力を開始すると、[製品名]テキストボックスに入力したものはすべて無視され、[製造元]テキストボックスフィールドにテキストのみを入力すると検索が開始されます。

5つのテキストボックスフィールドのすべてのテキストが、検索フィルタが自分のリストに適用されるように、この設定を行うにはどうすればよいですか?

答えて

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

関連する問題