Специальные символы в фильтре
336
Thomas Weller
У меня есть база данных Access для управления обучением сотрудников. Есть 2 случая, которые вызывают проблемы, и для одного я еще не нашел решение.
Случай 1: название тренинга содержит C++
Случай 2: это групповое обучение, в этом случае работник обозначается как *
для всех
Когда я открываю базу данных, я могу применить фильтр к заголовкам столбцов, но он не фильтруется правильно. Я думаю, что специальные символы должны быть экранированы.
Я старался:
- выберите одну из записей через флажок
- используйте текстовый фильтр, который говорит "содержит ..." с различными экранированием, как показано ниже
- использовать
\
в качестве escape-символа - использовать
[
...]
в качестве escape-символа (предложение на форуме), возможно, возвращаясь к оператору LIKE . Это работает для*
части, но не работает дляC++
части - используя
C??
, но это также совпадает с такими терминами, какadvanced
- построение формы для таблицы и последующая фильтрация в форме
- Добавление точки останова и просмотр полученных фильтров. Я вижу, что
+
запрос разбивает, поэтому я также попытался использоватьC[++][++]
Как отфильтровать таблицу для записей, содержащих +
?
Я использую Access 2016. Обратите внимание, что +
это в данных, а не в имени таблицы или в имени столбца.
Не открывайте стол. Создайте и откройте форму в табличном представлении - она имеет свойство Filter, которое может легко принимать нужные вам значения. Конечно, если вы используете оператор LIKE в значении Form.Filter, вы должны заключать в кавычки специальные символы, как в запросе.
Akina 6 лет назад
0
@ Акина: я создал форму сейчас, но у нее та же проблема
Thomas Weller 6 лет назад
0
Откройте форму в режиме дизайна. Откройте его код. Создайте метод Form_ApplyFilter, добавьте в него оператор Stop. Переключить форму в режим просмотра. Примените фильтр, который вам нужен (со значением (ями), которые содержат проблемы, вызванные символами). Когда выполнение остановится, откройте окна Locals и найдите значение Me.Filter, которое содержит необходимые вам символы и является правильным.
Akina 6 лет назад
0
@ Акина: хорошо, я создал этот метод и добавил точку останова. Значение `Me.Filter` равно` "* C" + "+ *" `, когда я просто набираю` C ++ `. Значение фильтра равно `" C ["+"] ["+"] * "`, когда я набираю `C [+] [+]`. Кажется, что знак плюс всегда остается знаком плюс, несмотря ни на что.
Thomas Weller 6 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
2
Как добавить в «Общие выражения» в Access?
-
5
Какие интерфейсы помимо MS Access доступны для манипулирования файлами MDB
-
11
Менее устрашающий интерфейс для SQL Server
-
-
4
Каков наилучший способ преобразования базы данных MySQL в базу данных доступа?
-
4
Открытие mdb файлов в Ubuntu
-
1
Access 2007 не будет отображать панель навигации
-
2
Эквивалент функции Excel NETWORKDAYS с Jet ADO
-
11
Почему Access сообщает, что не может получить команду для своей программы?
-
2
MS Access сплит базы данных запросов
-
1
Открытие файлов .mdb 2003 в MS Access 2007