2016-09-22 2 views
1

Я создал окно поиска доступа 2010, которое фильтрует результаты на основе столбца внутри таблицы, а затем представляет мне результаты на основе запроса.текстовое поле с несколькими элементами поиска

То, что я пытаюсь достичь, состоит в том, чтобы иметь возможность помещать не только один элемент за раз в поле поиска, но и несколько элементов. это для целого имущества маршрутизаторов, которым я управляю, и каждый день я получаю список маршрутизаторов, которые должны быть проверены, поэтому теперь я копирую и вставляю каждое имя маршрутизатора в поле поиска, и это дает мне статус , местоположение и схема ref, но я хочу сделать это, чтобы копировать и вставлять все имена маршрутизаторов за один раз и получать независимые результаты для каждого маршрутизатора.

это код, который я применил для фильтра в текстовом поле:

Where Condition = [Circuit Reference] Like "*" & [Forms]![Query1]! [Text12] & "*" 

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

Я не являюсь гуру доступа, поэтому общаюсь, если этот вопрос слишком легко ответить, но я не могу найти что-либо в Интернете, что помогает мне с моей проблемой.

+0

Почему бы не использовать combobox в качестве фильтра? Если у вас есть все ссылки на маршрутизаторы в таблице, это хороший способ. – LostReality

+0

, который не будет делать трюк, я думаю @LostReality, поскольку мне нужно иметь возможность копировать и вставлять до 20 имен маршрутизаторов и получать независимые результаты для каждого в форме. –

+0

Что значит «независимые» результаты? Все ли они должны быть подстановочными поисками? Какую строку вы хотите вставить? запятая, пробел, новая строка, вкладка? – Brad

ответ

2

Похоже, вы хотите, чтобы несколько подстановочных знаков находились в одном и том же поле. Вы можете сделать это, используя OR в своем SQL-запросе.

Dim strSearchConditions As String 
Dim strTerms() As String 
Dim strSQL As String 
Dim i as Integer 

strSearchConditions = "" 

strTerms = Split(Me.txtSearch,",") 'Assuming you separate your search terms with a comma 

For i = 0 To UBound(strTerms) 
    If Not strTerms(i) = "" Then 
     strSearchConditions = " OR [Circuit Reference] Like '*" & strTerms(i) & "*'" 
    End If 
Next i 

If Not strSearchConditions = "" Then 
    strSQL = "Select * FROM tblMyTable WHERE 1=1 AND (" & strSearchConditions & ")" 
Else 
    MsgBox "No search terms!" 
End If 
+0

Я хочу несколько шаблонов, но условия не будут разделены на комы, каждая из них будет на новой строке, и результат каждого поиска подстановочных знаков должен появиться в форме. , чтобы лучше объяснить ситуацию: Я хочу ввести 20 разных имен маршрутизаторов каждый на другой строке текста. и когда я нажимаю кнопку «Найти», я хочу, чтобы форма отображала «имя хоста», «статус» и «пропускную способность» маршрутизатора1. , то ниже, что мне нужны те же результаты, но для router2 .... и так далее ... то, что я получаю сейчас, является всего лишь результатом для одного элемента за раз. –

+2

Это ничего не меняет, кроме функции «Сплит» из вышеприведенного решения. Вместо запятой найдите строку. Попробуйте заменить «,» на 'Chr (13) & Chr (10)', 'vbCrLf' или' vbNewLine' (без кавычек) в приведенном выше коде. – SunKnight0

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