2017-02-17 6 views
0

У меня есть форма доступа 2016 с 5 текстовыми полями с надписью txtprod, txtpri, txtcnt, txtph, txtmfg. У меня также есть запрос для моей таблицы для полей названия продукта, цены, количества, телефона и производителя.Доступ 2016 - Несколько текстовых полей - Поиск по мере ввода не работает

В моих формах 5 текстовых полей, я хотел бы иметь возможность автоматического поиска по мере ввода и иметь свой список автозаполнения.

Я следовал за эти учебники https://www.youtube.com/watch?v=SJLQqwMOF08 https://www.youtube.com/watch?v=MwaRFjgwBW8

Моя форма имеет вид нагрузки:

* Private Sub Form_Load() дим задачу As String задача = "SELECT * FROM pricingdata" Me! details.RowSource = task End Sub *

И в моем текстовом поле это событие «on change»

* Private Sub txtprod_Change() Dim задача As String задачи = "SELECT * FROM [pricingdata] WHERE ([Имя продукта] LIKE '"& Me.txtprod.Text &"');" Me! Details.RowSource = task End Sub *

Поиск по типу ввода отлично работает только с 1 текстовым полем. Но когда я добавляю следующий код в мое текстовое поле «Поменять», это не работает так, как предполагалось.

* Private Sub txtmfg_Change() Dim задача As String задачи = "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

 Смежные вопросы

  • Нет связанных вопросов^_^