Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Форма со списком access

Выпадающий список на форме Access 2003

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

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

Что такое выпадающий список в Access 2003

Если говорить точнее, то в access данный элемент управления называется «Поле со списком». И он необходим, для того чтобы пользователь мог, не набирая на клавиатуре все значение целиком, выбрать его простым кликом мышки. Здесь имеется в виду, что эти значения будут распространенные, т.е. эти значения будут вводить достаточно часто и чтобы упростить и ускорить ввод этих данных и придумали выпадающий список. И если под итожить, то

Поле со списком – это набор значений (список), которые могут отобразиться на экране, для выбора, путем клика мышки по данном элементу управления, т.е. выпадающему списку.

Как создать выпадающий список

Для этого необходимо сначала создать форму, если она у Вас уже есть то это даже лучше, но для начинающих я повторюсь.

Открываем Access в режиме конструктора, выбираем «Формы» на окне объекты, и жмем создать

Затем нам предложат выбрать источник данных, но нам этого не нужно мы просто жмем «ОК»

Затем на панели элементов выбираем элемент «Поле со списком» и перетащим его на нашу форму, и сразу же в это время запустится мастер создания полей со списком. На первом шаге нам предложат, выбрать способ получения данных, и для начала мы выберем «Фиксированный набор значений», в дальнейшем мы разберем, как можно использовать получения данных на основе запроса или таблицы. А пока жмем далее:

Затем необходимо ввести набор значений, которые будет содержать наш список. И здесь мне бы хотелось бы рассказать, что очень часто мы используем два столбца, т.е. в первом храним идентификатор, а во втором само значение. Другим словами, чтобы не записывать в базу все значение целиком, мы записываем только идентификатор (например, для оптимизации размера базы данных). Поэтому мы укажем 2 столбца, и заполним их следующим образом:

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

Вот в принципе и все, единственное на следующем шаге мы можем задать подпись нашего выпадающего списка и жмем «Готово»

В итоге у нас на форме будет отображено следующее

Надпись «Свободный» означает, что данному выпадающему списку не заданно не одно поле из источника данных, поэтому все, что мы выберем, никуда не запишется.

Теперь сохраняем форму, и запускам ее:

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

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

И теперь у нас все будет выглядеть как надо

Отображается второй столбец, а записывается в базу первый, т.е. идентификатор.

Ну и теперь вкратце, как и обещал, покажу, как задать список значений на основе запроса к базе данных. Не используя при этом ввод значений, так как все наши значения будут храниться в базе. Для этого давайте определимся с источником, пусть это будет таблица test_table, вот с таким данными, простой запрос select:

И теперь чтобы переделать наше поле со списком заходим в его свойства, переходим на вкладку «Данные» и меняем там «Тип источника строк» на «Таблица, представление, процедура» и «Источник строк» на запрос скажем вот такой

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

Больше ничего не меняем, просто сохраняем и запускаем нашу форму

И теперь наш выпадающий список берет значения не из простого списка, а из базы данных.

С выпадающими списками Вы теперь знакомы, и знаете даже небольшие хитрости, которые помогут Вам в реализации Ваших задач. Удачи!

Поле со списком в форме

Может вопросы которые я задам и простые, но ответа не нашел (наверное неправильно формулирую вопрос поиском)

Вопрос такой
1.В форме «Postach» есть поле со списком. В нем отображаются записи из сводной таблицы «Сырьё», в которой значения вводятся в виде кодов счетчика из других таблиц («ЦветСырья», «РазмерСырья» итп). То есть при взгляде не ясно что именно в этой записи. Я как источник строк выбираю запрос который вsбирает данные ключа и названия сырья из сводной таблицы «Сырьё», данные о цвете сырья и его размере выбираю из таблиц «ЦветСырья» и «РазмерСырья». И все хорошо когда в сводной таблице Сырьё заполнены все поля. Но не всё сырьё имеет размер. И в таком случае запрос который служит источником строк для формы не отображает записи где нет размера, соответственно их невозможно внести.
Как посоветуете сделать так чтоб при введении в форму в поле со списком отображались записи в списке с «нормальными» значениями не важно, заполнены ли все поля в таблице Сырьё или нет.

2. И еще — как в форме в поле со списком отображать больше чем 1 столбец не только при введении а и в уже введенных записях
Базу прилагаю.

Поле со списком в форме. В таблице — текст, а в поле загружаются цифры
Добрый день! Кто знает, подскажите пожалуйста. По форуму искал, что-то не нашел. Вообщем.

Читать еще:  Ease of access themes

Автоматически обновить поле в форме при добавлении нового значения в поле со списком
помогите плииииз, у меня форма в ней поля: код(счетчик); фамилия(текст); профессия(подстановка из.

Поле со списком в одной форме преобразовать в переключатель в другой форме
Добрый вечер! Можно ли реализовать в форме 1 есть данные поле со списком , а необходимо в другой.

Поле со списком в форме
Здравствуйте проффесионалы! Вопрос к Вам "маленький" Есть запрос с условием на выборку !! .

AMufu
По 1 вопросу думаю можно предусмотреть в справочнике где вы выбираете цвет — поле с пробелом и сделать его значением по умолчанию
— или уберите в схеме данных — обеспечение целостности данных (снять галочку).
По 2 вопросу — несколько значений можно отображать только в элементе — Список, а в — Поле со списком будет отображаться только 1 значение, ширина которого не равна 0

Добавлено через 4 часа 45 минут
AMufu — Забыл добавить.
По 2 вопросу, если хотите. чтоб отображалось несколько полей — соедините их в запросе в одном поле по примеру — , подставив свои имена полей.
ФИО:[Фамилия]&» «&[Имя]&» «&[Отчество]

Спасибо.
Сделал похоже — у справочниках ввел значение — Без размера, Без цвета итд. Пока устраивает.

По 2 вопросу — несколько значений можно отображать только в элементе — Список, а в — Поле со списком будет отображаться только 1 значение, ширина которого не равна 0

Добавлено через 4 часа 45 минут
AMufu — Забыл добавить.
По 2 вопросу, если хотите. чтоб отображалось несколько полей — соедините их в запросе в одном поле по примеру — , подставив свои имена полей.
ФИО:[Фамилия]&» «&[Имя]&» «&[Отчество]

Еще задам вопрос здесь же.
Вот вроде я сделал базу как надо (я так думаю). Построена она на справочниках, в каждой таблице ключевые поля счетчики, а в сводных таблицах связь с справочниками по номеру счетчика справочника. В формах все вроде реализовал, и все видно красиво. Но проблема с удобностью работы. То есть если в форме сводной таблицы ввожу информацию, а в справочнике нужного значения нет, то закрываю форму сводной таблицы, открываю форму таблицы справочника, ввожу нужное значение, закрываю форму справочника, опять открываю форму сводной таблицы и опять начинаю вводить ту же запись сначала. А так как форма сводной таблицы включает значения нескольких справочников, получается, что мне чтоб ввести 1 запись в сводную таблицу нужно иногда по несколько раз начинать вводить эту запись в сводную таблицу (пустые поля не допускаются). Кароче это очень неудобно.
Отсюда вопрос — как правильно сделать чтоб было удобнее. Думаю, что можно сделать кнопочки в форме сводной таблицы которые будут вызывать справочники. Даже сделал так, но когда справочник вызван, дополнен и закрыт, форма сводной таблицы не видит нового значения без того, чтоб её закрыть и опять открыть. А закрыл форму — введённое тобой уже пропало. Посоветуйте пожалуйста как правильно настроить, чтоб форма сводной таблицы обновлялась без закрытия.

И еще вопрос №2 — а действительно ли я сделал «правильную» базу, или всё же что-то желательно переделать ( в плане структуры, связей ну и вообще).
Заранее спасибо.

ПС все таблицы но и часть форм имеют свойство скрытый, так что нужно включить отображение скрытых объектов в параметрах. Прячу специально от криворуких пользователей.

Создание форм в Access

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

Создание форм

Access упрощает создание формы из любой таблицы в вашей базе данных. Любая форма, которую вы создаете из таблицы, позволит вам просматривать данные, которые уже есть в этой таблице, и добавлять новые данные . После того, как вы создали форму, вы также можете изменить ее, добавив дополнительные поля и элементы управления дизайном, такие как комбинированные поля.

Чтобы создать форму:

  1. В панели навигации, выберите таблицу, которую нужно использовать, чтобы создать форму. Вам не нужно открывать таблицу.
  2. Выберите вкладку «Создать» на ленте и найдите группу «Формы». Нажмите команду «Форма».
  3. Ваша форма будет создана и открыта в виде макета.
  4. Чтобы сохранить форму, нажмите кнопку «Сохранить» на панели быстрого доступа. При появлении запроса введите имя для формы и нажмите «ОК».

О подформах

Если вы создали форму из таблицы, записи которой связаны с другой таблицей, ваша форма, вероятно, включает в себя подчиненную форму . Подформация представляет собой форму данных, которая отображает связанные записи в табличном формате. Например, подформация, включенная в форму «Клиенты», которую мы только что создали, отображает связанные заказы клиентов.

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

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

Добавление дополнительных полей в форму

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

Чтобы добавить поле в форму:

  1. Перейдите на вкладку «Конструктор компоновки форм», затем найдите группу «Инструменты» в правой части ленты.
  2. Нажмите команду «Добавить существующие поля».
  3. Появится панель списка полей. Выберите поле или поля для добавления в форму.

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

Чтобы добавить поле из другой таблицы:

  1. Нажмите «Показать все таблицы».
  2. Щелкните знак плюса + рядом с таблицей, содержащей поле, которое вы хотите добавить.
  3. Дважды щелкните нужное поле.
  4. Будет добавлено новое поле.

Вы также можете использовать описанную выше процедуру, чтобы добавить поля в совершенно пустую форму. Просто создайте форму, нажав команду «Пустая форма» на вкладке «Создать», а затем выполните указанные выше шаги, чтобы добавить нужные поля.

Добавление элементов управления дизайном

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

Читать еще:  Свойства полей в access

Комбинированные поля

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

Комбинированные поля полезны для полей, которые имеют ограниченное число возможных действительных ответов. Например, вы можете использовать поле со списком, чтобы люди только вводили действительное состояние США при вводе адреса или что они выбирают только продукты, которые уже существуют в вашей базе данных при размещении заказа.

Чтобы создать поле со списком:

  1. В представлении «Макет формы» выберите вкладку «Дизайн макета форм» и найдите группу «Элементы управления».
  2. Выберите команду Combo Box, которая выглядит как раскрывающийся список.
  3. Ваш курсор превратится в крошечный значок перекрестия и выпадающего списка . Переместите курсор в место, где вы хотите вставить поле со списком, затем нажмите. Появится желтая строка, указывающая место, где будет создано ваше поле со списком.
    • В нашем примере, поле со списком будет расположен между в город поле и добавить в список рассылки.
  4. Появится диалоговое окно Combo Box Wizard . Выберите второй вариант, я наберу нужные значения и нажмите «Далее».
  5. Введите варианты, которые вы хотите отобразить в раскрывающемся списке. Каждый выбор должен быть в отдельности.
    • В нашем примере мы создаем поле со списком для добавления в список рассылки? поле в нашей форме, поэтому мы введем все возможные допустимые ответы для этого поля. Пользователи смогут выбрать один из трех вариантов из готового комбинированного поля: Нет, Да-Еженедельно и Только специальные предложения.
  6. При необходимости измените размер столбца, чтобы весь текст был виден. После того, как вы удовлетворены своим списком, нажмите «Далее».
  7. Выберите магазин, что значение в этом поле, а затем нажмите на стрелку раскрывающегося списка и выберите в поле, где вы хотите выбор из комбо — поля для записи. После выбора нажмите «Далее».
  8. Введите метку или имя, которое будет отображаться рядом с вашим полем со списком. Как правило, рекомендуется использовать имя поля, которое вы выбрали на предыдущем шаге.
  9. Нажмите «Готово» Ваше поле со списком появится в форме. Если вы создали свое поле со списком для замены существующего поля, удалите первое поле.
    • В нашем примере вы можете заметить, что теперь у нас есть два поля с тем же именем. Эти два поля отправляют информацию в одно и то же место, поэтому мы не нуждаемся в них обоих. Мы удалим его без поля со списком.
  10. Перейдите в режим просмотра формы, чтобы протестировать поле со списком. Просто нажмите стрелку раскрывающегося списка и убедитесь, что список содержит правильные варианты. Теперь поле со списком можно использовать для ввода данных.

Если вы хотите включить раскрывающийся список с длинным списком параметров и не хотите вводить их все, создайте поле со списком и выберите первый вариант в мастере со списком, я хочу получить значения из другой таблицы или запроса. Это позволит вам создать раскрывающийся список из поля таблицы.

Некоторые пользователи сообщают, что Access работает при работе с формами. Если у вас возникла проблема с выполнением любой из этих задач в представлении «Макет», попробуйте переключиться на «Дизайн».

Настройка параметров формы в Листе свойств

Лист свойств — это панель, содержащая подробную информацию о вашей форме и каждом ее компоненте. Из листа свойств вы можете вносить изменения в каждую часть своей формы, как с точки зрения функции, так и внешнего вида. Лучший способ ознакомиться с Листом свойств — открыть его и выбрать различные варианты. При выборе опции Access будет отображать краткое описание этой опции на нижней левой границы окна программы.

Изменение настроек формы

В Листе свойств слишком много вариантов, чтобы подробно обсудить их все. Мы рассмотрим два полезных здесь: скрытие полей и установление полей с датами для автоматического заполнения текущей даты . Практика этих процедур должна дать вам представление о том, как работать с другими настройками свойств.

Поле со списком access

Поле со списком access – составной элемент управления, объединяющий поле и раскрывающийся список, позволяющий не только выбирать (как в простом списке), но и вводить значения.

Поле со списком позволяет экономить место в объекте базы данных (форме, таблице и др.), так как по умолчанию оно отображает одну строку списка.

Открывается список нажатием на кнопке
(в правом углу элемента управления «Поле со списком access») или клавишами Alt+«стрелка вниз». При помощи простого макроса можно сделать так, чтобы поле со списком раскрывалось само при входе в него.

Чтобы ввести значение в поле со списком access, можно начать вводить значение в поле с клавиатуры или выбрать нужное значение в выпадающем списке. При вводе значений с клавиатуры помогает свойство «Автоподстановка». Если установить его как «да», то при вводе информации Access автоматически будет предлагать значения из списка, выделяя буквы предлагаемого значения после последнего введённого символа.

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

Если значение подходит, для его ввода надо лишь нажать клавишу Enter или Tab. Свойство «Ограничиться списком» не разрешит ввести значения, которого нет в списке. Ограничивать списком вводимые значения стоит в первую очередь для снижения вероятности ввода ошибочной информации.

Например, слово «детектив» в поле «литературный жанр» можно написать «детиктив» или «дитиктив», или ещё как-нибудь (неважно, опечатка это или следствие неграмотности оператора. Любой человек может ошибаться и даже имеет на это право).

Поле, содержащее такие значения, уже нельзя правильно ни отсортировать, ни использовать в запросе. Мы зададим запрос с фильтром Like «детектив» и запрос найдёт нам, предположим, 120 книг этого жанра. Но вследствие неправильного ввода информации запрос «не увидел», к примеру, 8 книг.

Такая ситуация просто недопустима. Гораздо проще один раз и в одном месте (в базовой таблице подстановки) правильно ввести название жанра и связать эту запись с полем подстановки в таблице поставок книг отношением «один-ко-многим» (можно и не связывать. Но этот вопрос не представляется возможным обсудить в пределах одной статьи, так как слишком много завязано вопросов с типами полей, связями и др.).

Другой вопрос состоит в том, стоит ли разрешать оператору добавлять новые значения в базовую таблицу подстановки (со стороны «один»). Всё зависит от конкретных задач и типа информации. Не всегда можно предугадать все возможные варианты для значений поля подстановки. Например, поле подстановки для указания пола сотрудника может принимать два значения: «мужской» и «женский». А вот попробуйте создать поле подстановки мужских или женских имён (например, мужские имена: Андрей, Андриан, Андрон, Анджей и т. д.; женские имена: Наталья, Наталия, Наталея, Натали и т. д.).

Аксесс довольно сложная программа. Это подтверждает тот факт, что в интернете можно найти массу информации по ней. Однако, вы знаете что на самом деле достаточно знать лишь 20% инструментов, чтобы создавать и настраивать 80% баз данных в программе?

Читать еще:  Как сделать слайд больше в powerpoint

Во-первых, некоторые родители дают такие имена, которых не было раньше в природе (а это имя ещё надо ввести в базовую таблицу подстановки).

Во-вторых, схожие имена будут «рябить» перед глазами (могут быть десятки очень похожих имён, отличающихся только одной буквой).

В-третьих, быстрее ввести имя вручную побуквенно, чем искать в большом списке, в-четвёртых, вряд ли придётся включать поле имени в простой или составной ключ, так как одних Ивановых Иванов Ивановичей в России не сосчитать (обычно для этого используют числовой код, однозначно идентифицирующий запись в таблице), в-пятых, неправильно введённое имя, как правило, не даёт критических ошибок при фильтрации или сортировке (по причине своей неуникальности имя редко используется для таких случаев.

К тому же оно чаще всего используется в инициалах. Например, я ввёл значение «Иванов Андриан Иванович», хотя имя человека «Андрей». В поле «ФИО» получим «Иванов А. И.». Вроде как и ошибки нет.)

Создаётся поле со списком access, как правило, в режиме конструктора объекта базы данных:

— в таблицах – в области «Свойства поля» на вкладке «Подстановка» есть такой аргумент «Тип элемента управления» с выпадающим списком. Выбираем значение «Поле со списком» и выбираем следующие аргументы: тип источника строк, сам базовый источник строк, номер присоединённого столбца и другие необходимые элементы;

— в формах — при помощи кнопки «Поле со списком» на панели элементов. Если создаём новое поле со списком из базового поля со списком в таблице, то можно просто перенести это поле на форму (отчёт) из окошка «Список полей». Все базовые свойства будут унаследованы новым элементом управления.

Список в отличие от поля со списком всегда открыт и содержит все значения, которые можно выбрать. Если список отображается не полностью, с помощью полос прокрутки можно выбрать нужное значение. Поле, список и поле со списком можно взаимно преобразовывать друг в друга (когда мы ошибочно создали не тот элемент управления. Например, поле вместо поля со списком).

В приведённом ниже примере при выборе города в поле со списком автоматически загружаются в подчинённую форму записи, относящиеся к этому городу (т. е. мы видим, кто стоит на учёте в г. Щёлково).

При создании списка или поля со списком можно брать значения из таблицы или запроса (присоединённый элемент) либо ввести вручную как набор значений (свободный элемент).

Можно создать выражение, которое ссылается на отдельный столбец списка поля со списком или списка. Для этого используем свойство Столбец этого элемента управления:

forms![ИмяФормы]'[Имя поля со списком].[Column](x). Например: forms![Типы]![НазваниеТипа].[Column](1)

х – номер столбца. Столбцы начинают нумерацию с нуля.

При вычислении номера видимого столбца надо принимать в расчет и невидимые столбцы.

Форма со списком access

Довольно распространена ситуация, когда выбор значения из одного списка должен приводить к обновлению второго, подчинённого списка, недавно я описывал такую реализацию на PHP, а теперь вот понадобилась в Access.

Если упростить задачу, то в базе хранится информация о сотрудниках предприятия, работающих в нескольких отделах, при этом в каждом отделе есть свой набор должностей. Поскольку и у отдела, и у должности есть свои атрибуты (название, номер офиса для отдела, должностной оклад для должности и т.п.), целесообразно вынести информацию об отделах и должностях в отдельные таблицы. С другой стороны, сотрудник работает и в отделе, и на должности, так что получается следующая схема данных:

«Примечания» здесь добавлены просто для иллюстрации отношения «один к одному» как связи между двумя ключами.

Теоретически сотрудник может переводиться как на другую должность в рамках отдела, так и в другой отдел, что приведёт к необходимости выбрать должность из списка должностей нового отдела. То есть, по выбору для сотрудника нового отдела из верхнего списка, должен обновляться и нижний список «Наименование должности»:

Как решить эту типовую задачу, мы и поговорим.

1. Источником записей формы «Сотрудники» делаем соответствующую таблицу, форму можно сгенерировать мастером, а затем удалить из неё поля «Код отдела» и «Код должности».

2. Вместо первого поля, включив кнопку «Мастера» на панели элементов Access, сгенерируем список, выводящий вместо кодов названия отделов. Сделать это можно так:

  • форма выведена в режиме конструктора, нажимаем кнопку «Поле со списком», показываем мышкой границы будущего списка. По отпускании кнопки мыши появится окно «Мастер создания полей со списком»;
  • выбираем «Объект будет использовать значения из таблицы или запроса», жмём «Далее»;
  • выбираем таблицу «Отделы», жмём «Далее»;
  • переносим оба поля таблицы отделов в №выбранные поля» (кнопкой >>), жмём «Далее»;
  • убеждаемся, что список виден, а галочка «Скрыть ключевой столбец» включена, жмём «Далее»;
  • выбираем «Сохранить в поле:» и поле «КодОтдела», жмём «Далее»; задаём подпись к списку и жмём «Готово».

3. С помощью конструктора запросов составляем следующий запрос:

Здесь «ПолеСоСписком16» — наименование компоненты верхнего списка.

4. Аналогично с помощью мастера делаем второй список, указав источником строк наш запрос, а выбор сохраняя в поле КодДолжности таблицы Сотрудники, получается вот такое окно свойств второго списка:

Увидеть это окно можно, щёлкнув правой кнопкой мыши на втором списке и выбрав «Свойства».

5. Теперь самое главное. В списке компонент выбираем «Форма» вместо имени поля со списком, выбираем вкладку события, событие Текущая запись, щёлкаем по кнопке с многоточием, подтверждаем, что нам нужен построитель программы, а не макроса или выражения:

Открылся редактор Visual Basic и появилась пустая функция с именем Form_Current . Пишем туда единственную строчку кода, которая обновит нижний список:

Здесь предполагается, что имя нижнего списка ПолеСоСписком20 .

6. Ту же самую строчку кода добавляем на событие «До обновления» верхнего списка, у меня получилось вот что:

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

Скачать этот пример в архиве ZIP (41 Кб)

Аналогично можно организовать любые другие 2 подчинённых списка на Access, когда при выборе значения из одного списка должны загружаться новые значения во второй список.

Ну и общие соображения по зависимым спискам в Access:

Если первый список не связан с полем источника записей формы, то обновление надо ставить в обработчик события BeforeUpdate («До обновления» в окне свойств конструктора формы в русских версиях Access-а), либо в AfterUpdate.

Если же первый список связан с полем источника записей формы, то обновление надо ставить в обработчик события Current («Текущая запись») формы и BeforeUpdate (AfterUpdate) первого списка.

Данный способ действует только для одиночной формы (на экране видно одну запись).

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

Ссылка на основную публикацию
Adblock
detector