Access 2016 Form Query Issue - PullRequest
       1

Access 2016 Form Query Issue

0 голосов
/ 28 февраля 2020

Запрос захватывает / получает критерии из формы. Проблема в том, что у меня есть одно поле в таблице данных, в котором несколько элементов разделены запятой. Они называются Upgrade Codes:

Пример: 18AAA, 8AAA, 2GAA, 1EAA

enter image description here

Я использую Like [Forms]![Service Action Report]![Upgrade Codes] Or Like "*" & [Forms]![Service Action Report]![Upgrade Codes] & "*" в своем запросе, и это работает все, но также возвращает аналогичные совпадения.

Например: 8AAA Поиск по запросу формы вернет все записи с 8AAA, а также 18AAA, поскольку 8AAA является частью 18AAA, это не желаемый результат, это способ получить все записи с кодом обновления, предоставленным в форме?

1 Ответ

0 голосов
/ 09 марта 2020

Попробуйте следующее:

Like [Forms]![Service Action Report]![Upgrade Codes] Or 
Like [Forms]![Service Action Report]![Upgrade Codes] & ", *" Or 
Like "*, " & [Forms]![Service Action Report]![Upgrade Codes] & ", *" Or 
Like "*, " & [Forms]![Service Action Report]![Upgrade Codes]

Включив * , и , * в ваш запрос, вы увидите, что на самом деле значение кода обновления выглядит следующим образом: 8AAA:

Like "8AAA" Or 
Like "8AAA, *" Or 
Like "*, 8AAA, *" Or 
Like "*, 8AAA"

Разделенные операторы "" или "работают следующим образом:

  1. "8AAA":
    Полное совпадение 8AAA (в строке нет других значений)
  2. "8AAA, *":
    Совпадение 8AAA только в том случае, если это первое разделенное запятыми значение в списке
  3. "*, 8AAA, *":
    Совпадение 8AAA только в случае среднего значения окружен 2 запятыми
  4. "*, 8AAA":
    Соответствует 8AAA только если это последнее значение

Включая границы запятая или начало / конец строки, которую вы гарантируете, что могут соответствовать только полные коды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...