Использование MS Acess 2016 для удаления определенных полей записи при одновременном отображении всего набора данных в запросе

307
Zach

Я пытаюсь выполнить запрос к моему набору данных в MS Access 2016, где в вывод запроса включены только определенные строки (пожалуйста, посмотрите на включенное изображение). Я хочу включить все поля со строками, которые содержат слова «rat», «mouse», «stoat» и «possum» из столбцов «Pest_com», в то время как все остальные поля в этих столбцах исключены.

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

Заранее спасибо за помощь!

Использование MS Acess 2016 для удаления определенных полей записи при одновременном отображении всего набора данных в запросе

0

1 ответ на вопрос

0
Jason

Я думаю, что вы хотите, чтобы показать значение в поле, если значение соответствует вашему списку тестов. В этом случае я бы использовал функцию IIF. Первый параметр - это логический тест, в котором необходимо определить, есть ли совпадение. Если это так, отобразите значение в противном случае, отобразите пустым.

В QBE вы можете заменить Pest_Com1 на приведенное ниже, где использование tbl - это имя таблицы.

Pest_COM1: IIF (tbl.Pest_COM1 LIKE "*rat*" OR tbl.Pest_COM1 LIKE "*mouse*" OR tbl.Pest_COM1 LIKE "*stoat*" OR tbl.Pest_COM1 LIKE "*possum*",tbl.Pest_COM1, "") 

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

Если вы буквально хотите включить только соответствующие поля, вам придется создать строку SQL в коде vba. Вам нужно будет определить, есть ли значения в каждом поле, чтобы определить, следует ли включать. Для этого вы можете использовать IIF, аналогичный приведенному выше, но замените истинную часть (второй параметр) на 1, а ложную часть (третий параметр) на 0. Затем выполните суммирование. Если поле имеет значение> 0, вы хотите включить поле. Это только часть запроса.

Похожие вопросы