Как при выборе из выпадающего списка подставлять значение в Access? Как в access сделать выпадающий список


Создание списка вариантов с использованием списка или поля со списком

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

Примечание: Эта статья не относится к веб-приложениям Access.

В этой статье

Типы списков

Создание списка или поля со списком с помощью мастера

Создание списка или поля со списком путем добавления поля подстановок в форму

Создание списка или поля со списком без использования мастера

Изменение списка значений в форме, открытой в режиме формы

Настройка списка или поля со списком

Типы списков

Программой Access предусмотрены два типа элементов управления "Список": список и поле со списком.

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

Список

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

Использование поля со списком (раскрывающегося списка)

1. Нажмите стрелку, чтобы отобразить раскрывающийся список.

2. Выберите необходимый вариант из раскрывающегося списка.

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

Создание списка или поля со списком с помощью мастера

  1. В области навигации щелкните форму правой кнопкой мыши и выберите команду Конструктор.

    Примечание: Предполагается, при выполнении этой процедуры форма связана с таблицей или запросом. Некоторые из шагов неприменимы к свободным формам. Чтобы узнать, связана ли данная форма с таблицей или запросом, нажмите клавишу F4, после чего откроется страница свойств. На вкладке Данные страницы свойств в поле свойства Источник записей отображаются таблица или запрос, с которыми связана данная форма.

  2. На вкладке Конструктор в группе Элементы управления выберите параметр Использовать мастера Изображение кнопки .

  3. Нажмите кнопку Список Выноска 4 или Поле со списком Изображение кнопки .

  4. Нажмите в форме место, в которое нужно поместить список или поле со списком.

  5. В ответ на запрос мастера о способе получения значений элементом управления выполните одно из следующих действий.

    • Чтобы использовать текущие данные из источника записей, выберите вариант Объект "список" будет использовать значения из таблицы или запроса.

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

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

  6. Следуйте инструкциям для указания способа отображения значений.

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

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

    • Чтобы создать связанный элемент управления, выберите параметр Сохранить в поле и укажите поле, к которому должен быть присоединен элемент управления.

  8. Нажмите кнопку Далее и введите подпись для элемента управления. Подпись будет отображена рядом с элементом управления.

  9. Нажмите кнопку Готово.

Создание списка или поля со списком путем добавления поля подстановок в форму

Связанные списки или поля со списком можно создавать путем добавления поля подстановок в форму.

  1. Создайте в таблице поле подстановок. Можно создать поле подстановок, одновременно допускающее несколько значений или содержащее только одно значение.

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

  2. Выполните одно из указанных ниже действий.

    • Создайте форму, основанную на источнике записей, который содержит поле подстановок. Например, в области переходов выберите таблицу или запрос, содержащие поле подстановок, а затем на вкладке Создание в группе Формы нажмите кнопку Форма Изображение кнопки .

      Программа Access автоматически создаст поле со списком для поля подстановок.

    • Добавьте в форму список или поле со списком.

      1. В режиме конструктора откройте форму, основанную на источнике записей, который содержит поле подстановок.

      2. Если область Список полей не отображается, нажмите клавиши ALT+F8, чтобы открыть ее.

      3. Дважды нажмите поле подстановок или перетащите его из области Список полей в форму. Программа Access автоматически создаст поле со списком, связанное с этим полем.

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

Создание списка или поля со списком без использования мастера

При создании списка или поля со списком без использования мастера необходимо вручную задать ряд свойств элемента управления. Для получения дополнительных сведений об определенном свойстве нажмите это свойство, а затем — клавишу F1.

  1. Откройте форму в режиме конструктора.

  2. На вкладке Конструктор в группе Элементы управления отмените выбор параметра Использовать мастера.

    Выноска 4

  3. Нажмите кнопку Список Выноска 4

    или Поле со списком Изображение кнопки .

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

  5. Чтобы открыть станицу свойств элемента управления, при выделенном элементе управления нажмите клавишу F4.

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

Задача

Значение свойства "Тип источника строк"...

Задайте следующее значение свойства "Источник строк":

Показать значения из таблицы или запроса либо результатов инструкции SQL

Таблица/запрос

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

или

Введите инструкцию SQL.

или

На вкладке Данные страницы свойств нажмите Кнопка "Построитель" , чтобы открыть построитель запросов. Дополнительные сведения о создании запросов см. в статье Создание простого запроса на выборку.

Показать фиксированный список значений

Список значений

Введите список фиксированных значений, разделяя их точкой с запятой (;), например Север;Юг;Восток;Запад.

или

На вкладке Данные страницы свойств нажмите кнопку Кнопка "Построитель" , чтобы открыть диалоговое окно Изменение элементов списка, а затем введите элементы списка, каждый в отдельной строке.

Показать список полей из таблицы или запроса

Список полей

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

  1. Если вы хотите включить в элемент управления несколько столбцов, перейдите к ячейке свойства Число столбцов и введите их число. Задайте ширину столбцов с помощью свойства Ширина столбцов. Чтобы получить дополнительные сведения о каждом свойстве установите курсор в поле этого свойства и нажмите клавишу F1.

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

Изменение списка значений в форме, открытой в режиме формы

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

Примечание: Чтобы изменить список значений, для свойства Разрешить изменение списка значений списка или поля со списком должно быть задано значение Да.

Редактирование списка значений в режиме формы

Если поместить курсор в список или поле со списком (нажав поле или переключившись на него), под списком появится кнопка.

Поле со списком с кнопкой "Изменение элементов списка"

  1. Нажмите эту кнопку, чтобы открыть диалоговое окно Изменение элементов списка.

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

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

  4. Нажмите кнопку ОК.

Запрещение изменения списка значений в режиме формы

  1. В области переходов щелкните форму правой кнопкой мыши и выберите пункт Конструктор или Режим макета.

  2. Нажмите элемент управления, чтобы выделить его, а затем нажмите клавишу F4, чтобы открыть страницу свойств.

  3. На вкладке Данные страницы свойства Разрешить изменение списка значений укажите значение Нет.

  4. Нажмите Файл, а затем выберите команду Сохранить или нажмите клавиши CTRL+S Изображение кнопки .

Выбор другой формы для редактирования списка значений

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

  1. В области навигации щелкните форму правой кнопкой мыши и выберите в контекстном меню пункт Конструктор или Режим макета.

  2. Нажмите элемент управления, чтобы выделить его, а затем нажмите клавишу F4, чтобы открыть страницу свойств.

  3. На вкладке Данные страницы свойств нажмите стрелку раскрывающегося списка в поле свойства Форма изменения элементов списка.

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

  5. Нажмите Файл, а затем выберите команду Сохранить или нажмите клавиши CTRL+S Изображение кнопки .

Настройка списка или поля со списком

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

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

    • Перейдите на вкладку Данные и нажмите поле свойства Источник строк.

    • На вкладке Данные страницы свойств нажмите кнопку Кнопка "Построитель" , чтобы открыть построитель запросов.

    • В строке Сортировка для столбца, данные в котором нужно отсортировать, укажите требуемый порядок сортировки.

  • Присоединение столбца списка или поля со списком   

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

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

  • Скрытие столбца в списке или в поле со списком в форме   

    • В поле свойства Ширина столбцов введите значение 0 для столбцов, которые нужно скрыть.

      Предположим, что у вас есть присоединенное поле со списком из двух столбцов: "КодПоставщика" шириной 1 см и "ИмяПоставщика" шириной 5 см. Столбец "КодПоставщика" — первый столбец списка, поэтому для свойства Ширина столбцов задано значение 1см;5см. Чтобы скрыть столбец "КодПоставщика", установите для свойства Ширина столбцов значение 0см;5см. Столбец "КодПоставщика" остается присоединенным, несмотря на то, что он скрыт.

  • Примечание: Если список не раскрыт, в поле со списком отображается первый видимый столбец списка. Например, в предыдущем примере будет отображаться столбец "ИмяПоставщика", поскольку столбец "КодПоставщика" скрыт. Если бы он не был скрытым, в поле отображались бы значения из этого столбца, а не столбца "ИмяПоставщика".

  • Добавление заголовков столбцов в поле со списком в форме   

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

      Если поле со списком или список созданы на основе источника записей, программа Access будет использовать имена полей этого источника записей в качестве заголовков столбцов. Если поле со списком или список созданы на основе списка фиксированных значений, то в качестве заголовков столбцов программа Access будет использовать первые n элементов списка значений (заданных в свойстве Источник строк), где n равно значению свойства Число столбцов.

  • Отключение автозавершения при вводе для поля со списком в форме   

    • В поле свойства Автоподстановка задайте значение Нет.

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

  • Настройка ширины списка для поля со списком в форме   

    • Введите в поле свойства Ширина списка значение ширины в текущих единицах измерения (заданных в панели управления Windows). Чтобы использовать единицы измерения, отличные от принятых по умолчанию, введите обозначение единиц измерения. Например, введите значение 2 см. Убедитесь, что оставлено достаточно места для полосы прокрутки.

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

  • Настройка максимального числа строк, отображаемых в поле со списком в форме   

    • Введите число в поле свойства Число строк списка.

      Если фактическое количество строк списка превышает значение, указанное в свойстве Число строк списка, при раскрытии списка отображается вертикальная полоса прокрутки.

  • Ограничение значений поля со списком элементами, присутствующими в списке в форме   

    • В поле свойства Ограничиться списком выберите значение Да.

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

    • Если для свойства Ограничиться списком задано значение Нет, то при вводе в присоединенное поле со списком значения, которого нет в списке, это значение заносится в базовое поле, но не добавляется в список. Чтобы добавить в список элементы, используйте свойство Отсутствие в списке и событие Нет в списке.

К началу страницы

support.office.com

Выпадающий список на форме Access 2003 | Info-Comp.ru

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

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

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

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

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

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

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

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

Скриншот 1

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

Скриншот 2

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

Скриншот 3

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

Скриншот 4

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

Скриншот 5

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

Скриншот 6

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

Скриншот 7

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

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

Скриншот 8

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

Скриншот 9

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

Скриншот 10

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

Скриншот 11

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

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

Скриншот 12

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

select id, name from test_table where priz = 0

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

Скриншот 13

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

Скриншот 14

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

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

Похожие статьи:

info-comp.ru

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

Поле со списком в access может стать полем для поиска. Поисковое поле со списком в Access может сильно облегчить вам работу с данными.

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

access-01

Рассмотрим способ создания поля для поиска вручную. В режиме конструктора формы добавим свободное поле в примечание формы (кнопка «Мастера» должна быть отжата):

access-02

Зададим следующие свойства для свободного поля «ПолеПоиск» (для этого надо выделить его в режиме конструктора и нажать клавишу F4):

access-03

Перейдём на вкладку «Данные» свойств поля со списком. Значения свойства «Данные» оставим пустым. В «Источнике строк» мы выбираем подстановку из поля «ФИО» базового запроса «зап_СписокДляФормы» (этот же запрос «даёт» данные для текущей формы и поле «ФИО» запроса является базовым для поля «ФИО» формы). Свойства «Ограничиться списком», «Автоподстановка» и «Доступ» принимают значение «да».

На вкладке «События» определяем для свойства «После обновления» макрос «МакросПоиск».

access-04

Макрос состоит всего из двух команд:

access-05

access-06

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

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

access-07

Теперь нажимаем «Enter» или «Tab» и фокус ввода перейдёт на нужную нам запись в область данных формы:

access-08

accesshelp.ru

Как при выборе из выпадающего списка подставлять значение в Access? — Toster.ru

Доброго. Коллега, ну все ж просто. Смотрите, искать по фамилии не очень разумно, искать надо по Id.

Значит, что делаем. Делаем источником данных для комбика запрос. Я буду писать как привык, а вы сообразите под ваши реалии переделать. Однако рекомендую таблицы делать с префиксом tbl_ и юзать именно английские названия - пригодится.

Select Id_Staff, StaffName from tbl_Staff -- вот тут мы с вами получили Id сотрудника и его фамилиюТеперь комбик делаем с двумя колонками, вот так: 0;3 - тогда id сотрудника будет скрыто и ничем не отличаться от привычного комбика - кроме того, что значения в нем будут ограничены списком.

Едем дальше. У вас должна быть связь между таблицами, я это делаю промежуточной таблицей tbl_StaffPosition. Есть у вас такая таблица? Задавая вопрос, очень неплохо прилагать к нему структуру хотя бы в виде скрина.

В ней три Id - Id_StaffPosition - первичный ключId_Staff - ссылка на сотрудникаId_Position - ссылка на должность. DataPositionStart -- начало работы в должности, недопустим Null DataPositionFinish -- окончание работы в должности, допустим Null IsWorker -- признак, что он работает сейчас. И этот признак у вас должен быть уникальным индексом с Id_Position вместе, исходя из: один сотрудник не может занимать сразу две должности.

Далее вы делаете запрос вида:

select p.PositionName from tbl_Position p -- вот это название должностиjoin tbl_StaffPosition sp on p.Id_Position = sp.Id_Position -- это линк с таблицей должностей.where sp.Id_Staff = cmbStaff.Column(0) -- значение из комбобокса.

А уже результат подставляете в ваш текстбокс.

Если не сделаете отдельную таблицу со временем в должности - наступите на грабли. Грабли такие:

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

toster.ru