#ms-access #listbox
#ms-access #окно списка
Вопрос:
Учитывая, что я создал форму доступа со списком; property > other > Multi Select = Extended
; который разрешает множественный выбор.
Пользователь выбирает несколько элементов.
Нажимает кнопку, которая создает отчет в режиме «Предварительный просмотр»; но этот отчет основан на запросе, а запрос основан на значениях в форме.
Это достигается с помощью этого в запросе при просмотре в режиме разработки запроса Access (не SQL):
Like ([forms]![padc]![V2])
Где имя формы — padc
, а значение для сравнения — V2
.
Ранее вместо списка, который мог отображать 10 параметров, V2
было просто поле с одним значением. Пользователь либо ввел бы частичное значение, такое как jack*
, и отчет извлек бы каждый экземпляр, с которого начиналось это значение jack
; было ли это jack
, или jackie
, или jacko
, или jackson
и т.д. LIKE
Часть этого допускала «нечеткую» логику, приводящую к различным результатам. Запрос будет выполнен, и в отчете будут показаны все записи, которые начинаются с jack
.
На самом деле моя цель состоит в том, чтобы пользователь выбрал один, два или три или все доступные параметры в этом окне и получил правильный ответ отчета.
Я полагаю, что ListBox позволит мне это сделать, при условии, что у меня есть все правильные имена в таблице, которая является источником опций, доступных для выбора.
Я установил для списка значение «множественный выбор», чтобы включить множественный выбор в форме. Форма удовлетворяет. Это может позволить мне щелкнуть / выделить один или несколько элементов из списка.
Запрос не выполняется.
Для поля V2 ни
Like ([forms]![padc]![V2])
ни
=([forms]![padc]![V2])
Извлекает записи для заполнения отчета; независимо от того, выбрано ли только одно значение в поле списка или несколько значений. ( Like
= нечеткий и =
означает точное совпадение.)
Ни то, ни другое не работает.
Конечно, если запрос не будет выполнен, то и отчет не будет выполнен.
Как я могу написать правильный запрос в Access, используя «Вид запроса = конструкторский вид» и / или SQL, чтобы заставить это функционировать должным образом?
Если ответ «это невозможно сделать без использования VBA», то, пожалуйста, укажите мне на решение VBA, которое может понять 5-летний ребенок, потому что у меня нет опыта использования VBA.
Люди рекомендовали мне использовать VBA; в частности, что я должен каким-то образом включить « IN()
В функцию»; но я вообще не понимаю это решение.
Я признаю, что я невежествен; не глупый; но невежественный.
Комментарии:
1. Можно вручную встроить критерии IN () в объект запроса, но он не может быть динамическим. Требуется код VBA для построения критериев и применения к отчету при открытии. Если Аллен Браун не может помочь, то, возможно, никто не сможет allenbrowne.com/ser-50.html .
2. AFAIK, не удается смешать.
3. AFAIK? что такое «AFAIK?
4. Насколько я знаю.