Доступ: выпадающий список флажков

#forms #ms-access #checkbox #drop-down-menu #combobox

#формы #ms-access #флажок #выпадающее меню #выпадающий список

Вопрос:

Я пытаюсь выяснить, как воспроизвести то, что я сделал в VB.Net . Я пытаюсь создать выпадающий список флажков, чтобы пользователи могли выбирать несколько вариантов. Я смог создать выпадающий список, но у меня возникли проблемы с пониманием того, как добавлять флажки и как сделать так, чтобы длинные предложения не обрезались (см. выделено).введите описание изображения здесь

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

Комментарии:

1. Не тратьте свое время. Элементы управления в Access по существу статичны (не настраиваются за пределами встроенного поведения), и их свойства часто не предоставляют подробную конфигурацию, которую вы запрашиваете. Доступ не является VB. Net и, конечно же, не имеет надлежащей инфраструктуры для создания пользовательских элементов управления, подобных этому, даже с помощью VBA. Даже если вы соберете что-то вместе, используя многозначные поля, как в опубликованном ответе, вы никогда не сможете заставить его обрабатывать ваши длинные строки так, как вам нравится.

Ответ №1:

Насколько мне известно, единственный способ отобразить флажки, разрешающие множественный выбор из выпадающего списка, — это использовать многозначное поле, например:

введите описание изображения здесь

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

Вместо этого вы можете захотеть рассмотреть возможность использования окна списка, разрешающего множественный выбор, либо с помощью простого множественного выбора (когда при каждом нажатии выбирается другой элемент), либо расширенного множественного выбора (когда пользователь удерживает Ctrl или Shift для выбора несколько элементов).


Другой альтернативой может быть использование непрерывной подчиненной формы, где каждая запись отображается рядом с флажком, например:

введите описание изображения здесь

Комментарии:

1. Я думаю, для начала я воспользуюсь простым многозначным подходом со списком, я действительно только в начале понимания функций access, и это кажется самым простым. Мне интересно, как вы это делаете? Я предполагаю, что это простое «Да / Нет» где-то, но я не могу его найти

2. Хотя в ответе содержится предложение избегать этого подхода, оно не полностью объясняет, что, предоставляя выпадающему списку поддержку многозначных полей, он фактически изменяет схему скрытой таблицы связанного столбца. Он создает автоматическую скрытую таблицу «многие ко многим», которая затем предъявляет особые требования и ограничения к запросам и т.д. Я лично использовал их раньше с определенной пользой, но НЕ использую их только для того, чтобы получить контрольное поведение флажка. Делайте это только в том случае, если многозначное поле обеспечивает необходимую управляемую данными цель.

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

4. Я предлагаю два списка с кнопками —> и <— (и реализовать двойной щелчок) для выбора элементов между списками. Это разумная, полезная альтернатива в Access. На самом деле этот стиль используется в других контекстах, и в любом случае для очень длинных списков может быть лучше, чтобы пользователь мог видеть краткий список выбранных элементов, а не прокручивать, чтобы увидеть, что выбрано. Несмотря на мои сильные комментарии ранее, я полностью понимаю вашу потребность. Просто я и другие уже изучили эту опцию, и нет надежных решений со списком флажков, о которых я знаю, для доступа.

5. @CPerkins Я обновил свой ответ, чтобы предложить другой альтернативный вариант.