Polytech-soft.com

ПК журнал
16 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать еще:  Отчеты в аксесс

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

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

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

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

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

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

Нельзя использовать Visual Basic, а только встроенные макросы.
web2.rar

25.01.2017, 13:55

Выпадающий список в подчинённой форме
Уважаемые форумчане! Нужен совет по такому вопросу. Есть форма для ввода данных. На этой форме.

Как сделать выпадающий список на форме
на форме инспектор по контролю как можно сделать выпадающий список на фамилию, просто фамилий там.

Зависимый выпадающий список в подчиненной форме
Добрый день! Помогите с решением проблемы. Имеется 2 формы с выпадающими зависимыми списками. 1.

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

25.01.2017, 15:11225.01.2017, 15:24325.01.2017, 16:36425.01.2017, 16:545

Решение

Вложения

web25.zip (1.03 Мб, 29 просмотров)
25.01.2017, 19:596 Макрокоманда «ЗадатьСвойство»
Применяется к: Access 2016 Разработчик Access 2016 Access 2013 Дополнительно.
ВАЖНО : Данная статья переведена с помощью машинного перевода, см. Отказ от ответственности. Используйте английский вариант этой статьи, который находится здесь, в качестве справочного материала.
С помощью макрокоманды ЗадатьСвойство можно задать свойство элемента управления в форме или отчете классической базы данных Access. Вы также можете использовать макрокоманду «ЗадатьСвойство» для настройки свойства элемента управления в представлении списка или пустом представлении веб-приложения Access.
Настройка
Аргументы макрокоманды ЗадатьСвойство описаны ниже.

Visual Basic
Аргумент макрокомандыОписание
Имя элементаВведите имя поля или элемента управления, для которого вы хотите задать значение свойства. Используйте только имя элемента управления, а не полный синтаксис. Оставьте этот аргумент пустым, чтобы задать свойство для текущей формы или отчета.
СвойствоВыберите свойство, которое вы хотите настроить. Список свойств, которые можно настроить с помощью этой макрокоманды, приведен в разделе Заметки данной статьи.
ЗначениеВведите значение, которое нужно присвоить свойству. Для свойств в классических базах данных, значения которых равны «Да» или «Нет», укажите -1 вместо «Да» и 0 вместо «Нет». Для свойств в веб-приложениях Access со значениями «Да» или «Нет» используйте Да и Нет.

Заметки
• В классических базах данных с помощью макрокоманды ЗадатьСвойство можно настроить следующие свойства элемента управления: Enabled, Visible, Locked, Left, Top, Width, Height, Fore Color, Back Color и Caption .
ПРИМЕЧАНИЕ : Свойства, указанные выше, поддерживаются не для всех типов элементов управления в классических базах данных.
• Для веб-приложений Access можно задать следующие свойства элементов управления: Enabled, Visible, ForeColor, BackColor, Caption и Value.
ПРИМЕЧАНИЕ : Свойства, указанные выше, поддерживаются не для всех типов элементов управления в веб-приложениях Access. В веб-приложении Access макрокоманду «ЗадатьСвойство» можно использовать только в представлении списка и пустом представлении.
• При вводе недопустимого значения для аргумента Значение ошибка не возникает, но Access может изменить его в зависимости от того, как интерпретирует аргумент.
• В классических базах данных Access можно использовать макрокоманду ЗадатьСвойство в изолированном макросе только в том случае, если перед ней выполняется макрокоманда, выбирающая форму или отчет с элементом управления, для которого вы задаете свойство. Если форма или отчет не открыты, вы можете открыть и выбрать их с помощью макрокоманды ОткрытьФорму или ОткрытьОтчет. Если форма или отчет открыты, вы можете использовать макрокоманду ВыделитьОбъект, чтобы выбрать их. После этого можно настроить свойство с помощью макрокоманды ЗадатьСвойство. Если вы используете макрокоманду ЗадатьСвойство в макросе, внедренном в элемент управления, который находится в той же форме или отчете, что и элемент управления, для которого задается свойство, объект можно не выбирать.
• Для запуска макрокоманды ЗадатьСвойство в модуле VBA используйте метод ЗадатьСвойство объекта DoCmd.
Пример
Этот макрос задает для свойства Enabled элемента управления txtDescription в классической базе данных Access значение 0. Другими словами, он отключает элемент управления.

МакрокомандаАргументы
ЗадатьСвойствоИмя элемента: txtDescription
Свойство: Enabled
Значение: 0
25.01.2017, 19:59
25.01.2017, 19:59

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как сделать выпадающий список в форме ввода данных
Добрый день, есть две таблицы — «Проекты» и «Объекты» Одному проекту соответствует несколько.

Как сделать на форме выпадающий список с вводом нескольких значений?
Используется Access 2016 MySql 5,7 — х64 Access использует внешние таблицы через ODBC Таблицы.

Выпадающий список
Здравствуйте, помогите пожалуйста. Проблема звучит так: Имеются две связанные таблицы.

Выпадающий список
Здравствуйте, подскажите пожалуйста, можно ли сделать в данном примере выпадающий список, если да.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавление значения в привязанное поле со списком Add a value to a bound combo box

Поля со списками обычно используются для отображения списка значений в таблице или запросе. Combo boxes are commonly used to display a list of values in a table or query. Отвечая на событие NotInList, можно предоставить пользователю способ для добавления значений, которых нет в списке. By responding to the NotInList event, you can provide a way for the user to add values that are not in the list.

Часто значение, отображаемое в поле со списком, подставляется из записи в связанной таблице. Often the value displayed in a combo box is looked up from a record in a related table. Так как список создается из таблицы или запроса, необходимо предоставить пользователю способ ввода новой записи в базовой таблице. Because the list is derived from a table or query, you must provide a way for the user to enter a new record in the underlying table. Затем можно использовать метод Requery, чтобы повторно запросить список, содержащий новое значение. Then you can use the Requery method to requery the list, so it contains the new value.

При вводе в поле со списком значения, которого нет в списке, возникает событие NotInList поля со списком, если свойству LimitToList поля со списком присвоено значение Да или столбец, кроме привязанного столбца поля со списком, отображается в поле. When a user types a value in a combo box that is not in the list, the NotInList event of the combo box occurs as long as the combo box’s LimitToList property is set to Yes, or a column other than the combo box’s bound column is displayed in the box. Можно создать процедуру обработки события NotInList, позволяющую пользователю добавлять новую запись в таблицу, из которой берутся значения списка. You can write an event procedure for the NotInList event that provides a way for the user to add a new record to the table that supplies the list’s values. Процедура обработки события NotInList включает строковый аргумент NewData, который Access использует для передачи введенного пользователем текста процедуре обработки событий. The NotInList event procedure includes a string argument named NewData that Access uses to pass the text the user enters to the event procedure.

В процедуре обработки события NotInList также есть аргумент Response, с помощью которого можно сообщить Access необходимые действия после запуска процедуры. The NotInList event procedure also has a Response argument, in which you tell Access what to do after the procedure runs. В зависимости от используемых действий в процедуре обработки событий, нужно присвоить аргументу Response одно из трех заранее определенных значений констант: Depending on what action you take in the event procedure, you set the Response argument to one of three predefined constant values:

Константа ConstantОписание Description
acDataErrAdded acDataErrAddedЕсли процедура обработки событий вводит новое значение в источнике записей для списка или позволяет это делать пользователю, присвойте аргументу Response значение acDataErrAdded. If your event procedure enters the new value in the record source for the list or provides a way for the user to do so, set the Response argument to acDataErrAdded. После этого Access повторно запрашивает поле со списком, добавляя новое значение в список. Access then requeries the combo box for you, adding the new value to the list.
acDataErrDisplay acDataErrDisplayЕсли новое значение не добавляется и требуется, чтобы в Access отобразилось стандартное сообщение об ошибке, присвойте аргументу Response значение acDataErrDisplay. If you do not add the new value and want Access to display the default error message, set the Response argument to acDataErrDisplay. В Access требуется ввод пользователем допустимого значения из списка. Access requires the user to enter a valid value from the list.
acDataErrContinue acDataErrContinueЕсли отображается собственное сообщение в процедуре обработке событий, присвойте аргументу Response значение acDataErrContinue. If you display your own message in the event procedure, set the Response argument to acDataErrContinue. В Access не отображается стандартное сообщение об ошибке, но по-прежнему требуется, чтобы пользователь ввел значение в поле. Access does not display its default error message, but still requires the user to enter a value in the field. Если не нужно, чтобы пользователь выбирал существующее значение из списка, можно отменить изменения поля с помощью метода Undo. If you do not want the user to select an existing value from the list, you can undo changes to the field by using the Undo method.

Например, в приведенной ниже процедуре обработки событий у пользователя спрашивается, следует ли добавить значение в список, добавляется значение и используется аргумент Response, чтобы сообщить Access о необходимости повторно запросить список. For example, the following event procedure asks the user whether to add a value to a list, adds the value, and then uses the Response argument to tell Access to requery the list:

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

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