Access поиск в поле со списком - Как обезопасить себя в кризис?
Invest-currency.ru

Как обезопасить себя в кризис?
7 просмотров
Рейтинг статьи
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 просто так чтобы Вы понимали, что эта таблица может использоваться для разных полей со списком.

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

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

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

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

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

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

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

Читать еще:  Access code что это

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обеспечение возможности поиска записи путем выбора значения из списка

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

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

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

Читать еще:  Header access control allow origin

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

Создание списка или поля со списком

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

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

В группе элементы управления нажмите кнопку список или поле со списком.

В форме щелкните в том месте, где нужно поместить список или поле со списком.

На первой странице мастера в поле со списком или списке выберите пункт Поиск записи на форме, а затем нажмите кнопку Далее.

Параметр » найти запись. » недоступен.

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

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

Нажмите кнопку Отмена, чтобы закрыть мастер.

Щелкните правой кнопкой мыши список или поле со списком, которое вы создали ранее, и выберите команду Удалить.

Если область задач Страница свойств не отображается, нажмите клавишу F4, чтобы отобразить ее.

В верхней части страницы свойств выберите пункт форма .

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

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

Выбор существующей таблицы или запроса в качестве источника записей

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

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

Щелкните поле свойства Источник записей , а затем щелкните появившуюся стрелку раскрывающегося списка.

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

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

Создание нового сохраненного запроса или преобразование инструкции SELECT в сохраненный запрос

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

В окне свойства Источник записей нажмите кнопку Построить .

Access откроет поСтроитель запросов.

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

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

На вкладке Конструктор в группе Закрытие выберите команду Сохранить как.

В диалоговом окне Сохранить как введите имя запроса в поле Сохранить «запросn» в: « .

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

На вкладке Конструктор в группе Закрытие выберите команду Закрыть.

Нажмите кнопку Да , чтобы сохранить изменения, внесенные в запрос, и обновите свойство.

Access отобразит форму в режиме конструктора и изменит значение свойства Источник записей таким образом, чтобы на экране появится новое сохраненное имя запроса.

На панели быстрого доступа нажмите кнопку сохранить .

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

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

Элемент управления Поле со списком

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

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

Основные свойства для элемента управления Поле со списком (Combo Box) такие же, как и у элемента управления Список (List Box), однако есть дополнительные свойства, которые определяют формат вывода данных в текстовую часть поля: Формат поля (Format), Число десятичных знаков (Decimal Places), Маска ввода (Input Mask) (рис. 9.17).

Читать еще:  Switch access перевод

Еще два дополнительных свойства определяют особенности работы поля со списком:

  • Ограничиться списком (Limit To List). Это свойство может иметь значение Да (Yes), и тогда значение, которое вводится в поле, должно обязательно совпадать с одним из элементов списка, или Нет (No), и тогда список может дополняться значениями, вводимыми в текстовую часть поля со списком. Если значение этого поля Да, а вводимое значение не совпадает ни с одним из элементов списка, Access выдает сообщение об ошибке. Все ситуации, возникающие при вводе нового значения в поле, могут быть обработаны с помощью макроса или процедуры VBA, например, чтобы расширить список значений (см. также разд. «Применение макросов» гл. 11).
  • Автоподстановка (Auto Expand). Это свойство обычно имеет значение Да, что обеспечивает удобный выбор значения из списка. Так как списки в данном случае могут быть длинными, например список клиентов, прокручивать их в поисках нужного значения неудобно. Однако можно просто ввести необходимое значение в текстовую часть поля. При этом Access автоматически подставит в поле то значение из списка, у которого первые буквы совпадают с введенными.

Рис. 9.17. Свойства элемента Поле со списком

Обычно поле со списком используется для.тех полей базовой таблицы, которые служат внешними ключами, т. е. содержат значения, соответствующие первичным ключам записей в какой-либо другой таблице. В таблице такие поля обычно определяют как поля подстановки, т. е. при отображении этих полей отображается не то значение, которое содержится в данном поле, а соответствующее значение из связанной таблицы (ведь ключом часто является ничем не примечательный код) (см. также разд. «Создание таблиц»гл. 2). В этом случае Мастер форм при создании формы автоматически создаст для таких полей поля со списком и задаст их свойства.

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

Access поиск в поле со списком

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

Вот я создаю форму, на ней оказывается два поля id и name. Далее я преобразовываю name в выпадающий список, указываю в качестве data запрос select name from table. Все отображается в списке, можно выбирать. Но не происходит смена записи. Иду другим путем — кидаю на форму новый комбо-бокс, там в мастере указываю что значение его будет использовано для перехода по записям формы. Все ввожу как надо, открываю форму, комбобокс содержит нужные значения поля name, но блин, не разрешает себя изменять, потому что автоматом к нему добавляется поле id (скрытое), а т.к. оно ключевое, аксесс не разрешает его изменять.

Bas, не получилось — результат тот же. А разве с помощью гуи-средств нельзя это сделать? Ведь все сделано в акцессе так чтобы и секретарша могла базы делать, все автоматом добавляется, все само понимает куда чего дописать.

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

Добавлено 03.04.07, 14:27
Кроме того, после попытки добавления на форму комбобокса, базу начинает страшно плющить — постоянно по десять раз при каждом действии вызывающем сохранение формы появляется сообщение «Введенное в поле своства или макросва формы содержит ошибки или указывает на несуществующую форму«

Добавлено 03.04.07, 14:30
В общем я понял что это не мой тупизм, а какие то ошибки с СУБД. Потому что в справке все указано так, как я и делаю, только ничего не выходит, а появляются ошибки которые я указал выше.

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

Откройте форму в режиме конструктора (Режим конструктора. Окно, в котором отображается макет следующих объектов базы данных: таблицы, запросы, формы, отчеты, макросы и страницы доступа к данным. В режиме конструктора пользователь создает новые объекты базы данных или изменяет макеты существующих.).
Нажмите кнопку Мастера на панели элементов (Панель элементов. Набор инструментов для создания элементов управления в форме, отчете или на странице доступа к данным в режиме конструктора. Набор инструментов для страницы доступа к данным в режиме конструктора отличается от набора инструментов для формы и отчета в режиме конструктора.), если эта кнопка еще не нажата.
На панели элементов нажмите кнопку Список или Поле со списком .
Щелкните в форме место, в которое нужно поместить список или поле со списком.
В первом диалоговом окне мастера выберите параметр для поиска записи по значению, выбранному в списке или поле со списком.
Выполняйте инструкции, выводящиеся в диалоговых окна мастера. В последнем диалоговом окне нажмите кнопку Готово для вывода списка или поля со списком в режиме конструктора.
Для просмотра процедуры обработки события (Процедура обработки события. Процедура, автоматически выполняемая в ответ на событие, возникающее в результате действий пользователя, выполнения программы или генерируемое системой.), обеспечивающей работу списка или поля со списком, откройте окно свойств элемента управления и нажмите кнопку Построить рядом с ячейкой свойства После обновления (AfterUpdate).

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector