Что такое ключевое поле в аксессе
Содержание:
- Признаки БД, чем отличаются от электронных таблиц
- Установка первичного ключа
- Условия отбора записей — Базы данных
- Ключевое поле
- Создание запроса с несколькими таблицами
- Создание условия на значение для проверки данных в поле
- InformatikUrok » Blog Archive » Как определить ключевое поле в таблице
- Сравнение поля со списком и элемента управления с автозаполнением
- Определение ключевых полей
- Как сделать список в access?
- Вычисляемые поляв запросе БД Access 2003
- Свойства полей в Access;
Признаки БД, чем отличаются от электронных таблиц
Любая база данных обладает набором стандартных признаков. Основными из них являются:
- хранение и обработка в вычислительной системе;
- логическая структура;
- наличие схемы или метаданных, которые описывают логическую структуру базы в формальном виде.
Примечание
Первый признак соблюдается строго, остальные могут трактоваться по-разному и иметь неодинаковые степени оценки. Согласно общепринятой практике, к базам данных не относят файловые архивы, интернет-порталы или электронные таблицы.
Рассмотреть базу данных целесообразно на примере Access. Это специальное приложение, в котором хранятся упорядоченные данные, что допускает применение и других приложений (к примеру, Excel). В обоих случаях информация представлена в табличном виде.
Excel включает особые средства, позволяющие работать с упорядоченными данными, позволяет формировать простые базы данных. При внешнем сходстве приложения обладают рядом отличий:
- Excel не предусматривает установку реляционных связей между таблицами. Благодаря связям в Access, исключается ненужное дублирование информации и ошибки при обработке данных. Также допускается совместное использование данных из разных таблиц.
- Access обеспечивает хранение в таблицах нескольких миллионов записей. При этом скорость их обработки сохраняется на высоком уровне.
- Access включает возможность организации одновременной работы с базой данных нескольких десятков пользователей, которые в реальном времени могут видеть изменения, выполненные другими пользователями.
- Данные в Access сохраняются автоматически после завершения редактирования текущей записи. В случае Excel для этого нужно запустить команду «Сохранить».
- Таблицы в Access характеризуются заранее предопределенной жесткой структурой. Невозможно в один столбец записать разные типы данных или форматировать отдельные ячейки.
- Прямо в таблице базы данных Access нельзя выполнять вычисления, подобные действия реализуются с применением запросов.
Вывод: Excel целесообразно использовать для создания компактных баз данных, которые могут поместиться на одном рабочем листе. Excel обладает рядом значительных ограничений для ведения полноценной базы данных, но может успешно использоваться для анализа данных благодаря достаточному математическому аппарату.
Установка первичного ключа
Если вы сразу не установили ключевое поле, то надо это проделать. Для определения первичного ключа выделите поле Код группы и нажмите на панели конструктора таблиц кнопку с изображением ключа или выберите команду Ключевое поле из меню. В Microsoft Access можно выделить три типа ключевых полей:
счетчик, простой ключ и составной ключ.
Если первичный ключ не установлен пользователем до сохранения вновь созданной таблицы, Access выдаст запрос о необходимости включения в таблицу поля первичного ключа. При положительном ответе Access создаст ключевое поле типа счетчикс именем Код, в которое для каждого блока данных будет вводиться уникальный номер.
Простойключ определяется полем, содержащим уникальное значение.
Ключевое поле не позволит вводить в таблицу повторяющиеся или пустые значения, поскольку поле первичного ключа содержит однозначный идентификатор для каждой записи. Ключевое поле помогает Microsoft Access наиболее активно организовать поиск, хранение и объединение данных.
В случаях, когда невозможно гарантировать уникальность значений каждого поля, создают составной ключ, состоящий из нескольких полей. Такая ситуация возникает для таблицы, используемой для связывания двух таблиц в отношении «многие-ко-многим».
Условия отбора записей — Базы данных
Литералы — конкретные значения, воспринимаемые Access так, как они записаны. В качестве литералов могут быть использованы числа, текстовые строки, даты. Текстовые строки заключаются в двойные кавычки, даты — в знаки (#). Например, 567, «Информатика», #1-Января-99#.
Константы — не изменяющиеся значения, которые определены в Access, например, True, False, Да, Нет, Null.
Идентификатор — ссылка на значение поля, элемента управления или свойства. Идентификаторами могут быть имена полей таблиц, форм, отчетов и т. д., которые должны заключаться в квадратные скобки. Как правило, Access производит автоматическую подстановку скобок.
Во многих случаях ссылка на конкретное значение должна указывать точное его местоположение в иерархии объектов базы данных, начиная с объекта верхнего уровня.
Если необходимо указать ссылку на поле в конкретной таблице, форме, отчете, то перед именем поля ставится имя таблицы, формы, отчета, также заключенное в квадратные скобки и отделенное от имени поля восклицательным знаком.
Например, ссылка на поле в таблице примет вид: ! , а ссылка на свойство DefaultValue элемента управления Дата рождения в форме СТУДЕНТ: Forms! ! .DefaultValue
Операторами сравнения и логическими операторами, использование которых допускается в выражении условия отбора, являются:
Эти операторы определяют операцию над одним или несколькими операндами.
Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =.
Текстовые значения, если они содержат пробелы или знаки препинания, вводятся в двойных кавычках. В противном случае кавычки можно не вводить, они будут добавлены автоматически.
Допускается использование операторов шаблона — звездочка (*) и вопросительный знак (?).
- Оператор Between позволяет задать интервал для числового значения и даты. Например:
- Between 10 And 100
- задает интервал от 10 до 100; можно задать интервал дат:
Between #01.01.1997* And #31.12.1997*
- Оператор in позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Например:
- In («Математики»;»Информатики»; » Истории»)
Ключевое поле
Ключевое поле
Это та запись, которая определяет запись в таблице.
Нажимаем в колонке слева на названии таблицы Читатель. Справа появилась таблица. Правой кнопкой нажимаем на названии – конструктор – в пустом поле пишем код читателя.
Сделаем это поле ключевым (на панели задач – ключевое поле) и закроем таблицу.
Это первичный ключ. Для ключевых полей используют тип – счетчик или числовой.
Определим ключевое поле для каждой таблицы аналогично предыдущей.
Книги – код книги.
Издательство – код издательства (тип данных –мастер подстановок – Издательство- выберите поле код и наименование).
Выдача – код выдачи (код читателя – таблица Читатель /код читателя и фамилия/ и код книги – таблица Книги/ код книги и название).
Любое поле можно перетащить мышкой в начало таблицы или в другое нужное место. Ключевые поля обычно ставят на первое месте
Связывание таблиц
Переходим на вкладку – Работа с базами данных – схема данных – появилось окно.
Поочередно нажимаем на название каждой таблицы и закрываем окно.
Появилась схема данных. Определим как будем связывать таблицы.
Издательства выпускают книги. Значит, в таблицу Книги надо добавить Код издательства. Для этого открываем таблицу Книги в режиме конструктора и добавляем код издательства.
Возвращаемся в схему данных и перетаскиваем Код издательства из одной таблицы в Код издательства другой. Появляется окно. Ставим Обеспечение целостности данных и в двух других пунктах ниже. Далее нажимаем создать. Появляется связь – один ко многим, т.е. одно издательство выпускает много книг.
Аналогично свяжем две другие таблицы.
Откроем таблицу Выдача через конструктор. Добавляем поле Код читателя.
Сохраняем, закрываем.
Теперь Код читателя таблицы Читатель переносим на Код читателя таблицы Выдача.
Ставим везде галочки — создать. Появилась связь (читатель берет много книг).
Теперь свяжем таблица Книги и Выдача. Для этого в таблицу Выдача добавим Код книги. И проделаем те же манипуляции.
Заполнение таблиц
Берем таблицу Читатель. Код читателя ставим на первое место. Нумерация будет автоматическая в этом поле. Вводим остальные данные (не менее 10) и сохраняем правой кнопкой.
Заполняем остальные таблицы по аналогии.
Создание запроса с несколькими таблицами
Теперь, когда мы запланировали наш запрос, мы готовы его спроектировать и запустить. Если вы создали письменные планы для своего запроса, обязательно обращайтесь к ним часто в процессе разработки запроса.
Чтобы создать запрос с несколькими таблицами:
- Выберите команду « Конструктор запросов» на вкладке « Создать » на ленте.
В появившемся диалоговом окне « Показать таблицу » выберите каждую таблицу, которую вы хотите включить в свой запрос, затем нажмите « Добавить» . После того, как вы добавили все нужные таблицы, нажмите « Закрыть» . Когда мы планировали наш запрос, мы решили, что нам нужна информация из таблицы Customers и Orders , поэтому мы добавим их.
Таблицы появятся в панели «Связывание объектов» , которая связана линией соединения . Дважды щелкните тонкий раздел линии соединения между двумя таблицами, чтобы изменить направление соединения.
Регистрация Свойства диалоговое окно. Выберите вариант, чтобы выбрать направление вашего соединения.
- Выберите вариант 2: для объединения слева направо . В нашем запросе левая таблица — таблица Customers , поэтому выбор этого означает, что все наши клиенты, которые соответствовали нашим критериям местоположения, независимо от того, разместили ли они заказ, будут включены в наши результаты. Мы не хотим выбирать этот вариант для нашего запроса.
- Выберите вариант 3: для запроса справа налево . Поскольку наш правильный стол является нашей таблицей Orders , выбор этого параметра позволит нам работать с записями для всех заказов и только для клиентов, разместивших заказы. Мы выберем этот вариант для нашего запроса, потому что это именно те данные, которые мы хотим видеть.
В окнах таблицы дважды щелкните имена полей, которые вы хотите включить в свой запрос. Они будут добавлены в дизайнерскую сетку в нижней части экрана.
В нашем примере мы будем включать большинство полей из таблицы Customers : имя , фамилия , адрес , город , штат , почтовый индекс и номер телефона . Мы также будем включать идентификационный номер из таблицы Orders .
Установите критерии поля , введя требуемые критерии в строке критериев каждого поля. Мы хотим установить два критерия:
- Во-первых, чтобы найти клиентов, которые не живут в Роли, мы будем вводить Not In («Raleigh») в поле City.
- Во-вторых, чтобы найти клиентов , которые имеют телефонный номер , начинающийся с кодом 919 , мы вводим Like ( «919 *») в номер телефона поле.
После того, как вы установили критерии, запустите запрос, нажав команду « Выполнить» на вкладке « Дизайн запросов ».
Результаты запроса будут отображаться в представлении Datasheet запроса , которое выглядит как таблица. Если вы хотите, сохраните запрос, нажав команду « Сохранить» на панели быстрого доступа. Когда появится запрос на его имя, введите нужное имя и нажмите «ОК» .
Новые статьи
- Проектирование собственной базы данных в Access — 21/08/2018 15:16
- Форматирование форм в Access — 21/08/2018 15:11
- Создание форм в Access — 21/08/2018 15:05
- Изменение таблиц в Access — 21/08/2018 14:58
- Дополнительные параметры отчета в Access — 21/08/2018 14:48
- Создание отчетов в Access — 21/08/2018 14:42
- Дополнительные параметры дизайна запроса в Access — 21/08/2018 14:36
Предыдущие статьи
- Сортировка и фильтрация записей в Access — 21/08/2018 04:37
- Работа с формами в Access — 21/08/2018 04:25
- MS Access — Работа с таблицами, создание, удаление, настройка внешнего вида — 20/04/2018 17:18
- MS Access — Управление базами данных и объектами — 30/03/2018 16:18
- Начало работы в Access. Знакомство с Access 2010 — 10/02/2018 18:24
- MS Access: Введение в объекты — Таблицы, формы, запросы и отчеты — 07/02/2018 08:32
- MS Access: Что такое база данных? Отличие Access от Excel. — 03/02/2018 18:18
Создание условия на значение для проверки данных в поле
Применимо к: Microsoft
Office Access 2007
Печать
В этой статье рассматривается добавление
условий на значение в базу данных.
Условия на значение вносят ограничения
на данные, вводимые пользователем в
поле, а также помогают предотвратить
ввод данных неправильного типа или
объема.
Предполагаемое действие:
- Основные сведения об условиях на значение
- Проверка данных при вводе в поля таблицы
- Проверка данных при вводе в формы
- Проверка данных при выполнении операций импорта
- Справочные сведения об условиях на значение
Основные сведения об условиях на значение
Условия на значение вносят ограничения
на данные, которые пользователь может
ввести в поле таблицы или элемент
управления (например, поле ввода) в
форме.
В Microsoft Office Access 2007 предусмотрено
множество способов проверки данных, и
часто некоторые из этих способов
используются для задания условия на
значение.
Условие на значение можно
представить себе в виде набора уровней —
можно использовать некоторые или все
уровни проверки, чтобы обеспечить
правильный ввод данных пользователями.
- Типы данных.Типы данных обеспечивают первый уровень проверки. При разработке таблицы базы данных определяются типы данных для каждого поля в таблице, и эти типы данных служат ограничением на вводимые пользователями данные. Например, в поле типа даты и времени можно ввести только дату и время, а в поле денежного типа можно ввести только денежные данные и т. д.
- Размеры полей.Размеры полей обеспечивают другой уровень проверки. Например, при создании поля для хранения имен можно указать, что оно должно принимать не более 20 знаков. Так можно предотвратить вставку в поле больших объемов ненужного текста недобросовестными пользователями или ошибочный ввод неопытным пользователем имени и фамилии в поле, предназначенное для хранения только имени.
- Свойства таблицы.Свойства таблицы обеспечивают особые типы проверки. Например, если задать для свойстваОбязательное поле (Required)значениеДа, пользователи обязательно должны будут вводить значение в это поле.
Можно также использовать свойствоУсловие на значение (Validation Rule), чтобы
ограничить ввод только определенными
значениями, и свойствоСообщение об
ошибке (Validation Text)для предупреждения
пользователей об ошибках.
Например,
использование правила>100 And =требует ввода конечной даты, совпадающей
с начальной датой или более поздней.
Текст, введенный в свойствоСообщение
об ошибке (Validation Text), например «Введите
значения в пределах от 100 до 1000» или
«Введите конечную дату не ранее
начальной», сообщит пользователям о
допущенной ошибке и о том, как ее
исправить.
Инструкции по вводу условия на значение
в поле таблицы см. в разделе Проверка
данных при вводе в поля таблицыдалее в этой статье.
Маски ввода.Маски ввода можно использовать для проверки данных, если требуется, чтобы пользователи вводили значения в определенном формате. Например, с помощью маски ввода можно разрешить вводить даты только в европейском формате (2007.04.14).
Для проверки данных можно использовать
некоторые или все из описанных способов.
Некоторые из этих средств, например
типы данных, входят в состав базы данных
по умолчанию, но можно по своему усмотрению
использовать и другие средства: свойства
полей, условия на значение и маски ввода.
В этой статье рассматривается использование
свойств Сообщение об ошибке (Validation
Text)иУсловие на значение (Validation
Rule)в полях таблицы, запросах и элементах
управления форм. Полное описание других
средств проверки, таких как типы данных,
размеры полей и маски ввода выходит за
рамки данной статьи.
Дополнительные сведения о типах данных
и размерах полей см. в статье Изменение
типа данных для поля. Дополнительные
сведения о масках ввода см. статьюСоздание
маски ввода для ввода значений в поле
или элемент управления в определенном
формате.
InformatikUrok » Blog Archive » Как определить ключевое поле в таблице
Сегодня на занятии мы рассмотрим, что такое ключевое поле в таблице, узнаем виды ключевых полей и научимся определять ключевое поле в таблице Access на конкретном примере.
Основное свойство таблицы в реляционной БД состоит в том, что все записи должны быть уникальными, т.е. не должно быть в одной таблице двух абсолютно одинаковых записей:
- Иванов Иван Иванович
- Иванов Иван Иванович
Это не один человек записанный дважды в таблице, а два разных конкретных человека! Да, в таблице могут быть два совершенно разных человека с именами Иванов Иван Иванович. Как их различить? Это достигается с помощью ключевого поля.
Ключевое поле — это атрибут или группа атрибутов, которые обеспечивают уникальность каждой строки (записи).
Именно ключевое поле позволит каждую запись считать разной, в данном примере позволит различить двух Ивановых.
Ключевые поля бывают тех видов:
- счетчик;
- простой ключ;
- составной ключ.
В каждой таблице должно быть обязательно ключевое поле. Мы будем использовать ключевое поле типа счетчик. Для его создания достаточно выделить атрибут в контекстном меню ПКМ выбрать команду Ключевое поле. Если вы не определили атрибут, который будет ключевым, то при закрытии таблицы, Access обязательно предложит создать ключевое поле, выбрав ключ самостоятельно.
Обратите внимание, что ключевое поле очень важно при создании таблиц. Ключевое поле используется
- для связи таблиц между собой;
- для быстрого поиска информации в таблицах.
- Давайте на примере конкретной таблицы попробуем определить ключевое поле. Пример подробно рассмотрен в видеоуроке:
- Повторим:
- Если атрибут Фамилия сделать ключевым полем, то в таблице не должно быть двух одинаковых фамилия, что в реальной жизни невозможно, т.к. в классе, например, учатся брат и сестра с одинаковыми фамилиями.
- Если использовать в качестве первичного ключа (Фамилия, Домашний_Адрес), то не должно быть одинаковых адресов в записях таблицы, что так же невозможно, т.к. в одном классе могут учиться брат и сестра, проживающие по одному адресу.
- Перебрав все атрибуты на кандидаты в первичный ключ, приходим к выводу, что нужно ввести дополнительное поле, которое будем использовать в качестве ключа.
- Напомню, если название поля состоит из двух слов, то пробелы использовать не рекомендуется. Лучше в этом случае использовать нижнее подчеркивание для соединения слов.
P.S. Театр начинается с вешалки, а таблица с ключевого поля
Очень важно правильно научиться определять ключевое поле
Напомню, что есть несколько способов создания БД, которые рассмотрены в уроке «Введение в Access», есть также несколько способов создания таблиц. В уроке «Способы создания таблиц в Access» подробно рассмотрены первые два способа: с помощью мастера и ввода в таблицу.
Сравнение поля со списком и элемента управления с автозаполнением
В следующем представлении:
Для поля Зона доставки используется элемент управления с автозаполнением. Как только пользователь введет первую или несколько первых букв зоны, будет отображено первое соответствие в списке. Элемент управления с автозаполнением следует применять, если пользователи уже знают, что они ищут, и не хотят полностью просматривать длинный список. Дополнительные сведения см. в статье Добавление элемента управления автозаполнением в представление.
Для поля Штат используется элемент управления «поле со списком». Нажмите кнопку со стрелкой вниз, чтобы увидеть весь список значений. Поле со списком следует применять, когда пользователи сразу должны видеть все варианты выбора. Дополнительные сведения см. в статье Добавление поля со списком в представление.
Определение ключевых полей
Выше неоднократно упоминалось понятие ключевого поля. Ключевое поле — это одно или несколько полей, комбинация значений которых однозначно определяет каждую запись в таблице. Если для таблицы определены ключевые поля, то Microsoft Access предотвращает дублирование или ввод пустых значений в ключевое поле. Ключевые поля используются для быстрого поиска и связи данных из разных таблиц при помощи запросов, форм и отчетов.
В Microsoft Access можно выделить три типа ключевых полей: счетчик, простой ключ и составной ключ. Рассмотрим каждый из этих типов.
Для создания ключевого поля типа Счетчик необходимо в режиме Конструктора таблиц:
- Включить в таблицу поле счетчика.
- Задать для него автоматическое увеличение на 1.
- Указать это поле в качестве ключевого путем нажатия на кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц (Table Design).
Если до сохранения созданной таблицы ключевые поля не были определены, то при сохранении будет выдано сообщение о создании ключевого поля. При нажатии кнопки Да (Yes) будет создано ключевое поле счетчика с именем Код (ID) и типом данных Счетчик (AutoNumber).
Для создания простого ключа достаточно иметь поле, которое содержит уникальные значения (например, коды или номера). Если выбранное поле содержит повторяющиеся или пустые значения, его нельзя определить как ключевое. Для определения записей, содержащих повторяющиеся данные, можно выполнить запрос на поиск повторяющихся записей. Если устранить повторы путем изменения значений невозможно, следует либо добавить в таблицу поле счетчика и сделать его ключевым, либо определить составной ключ.
Составной ключ необходим в случае, если невозможно гарантировать уникальность записи с помощью одного поля. Он представляет собой комбинацию нескольких полей. Для определения составного ключа необходимо:
- Открыть таблицу в режиме Конструктора.
- Выделить поля, которые необходимо определить как ключевые.
- Нажать кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц (Table Design).
Для составного ключа существенным может оказаться порядок образующих ключ полей. Сортировка записей осуществляется в соответствии с порядком ключевых полей в окне Конструктора таблицы. Если необходимо указать другой порядок сортировки без изменения порядка ключевых полей, то сначала нужно определить ключ, а затем нажать кнопку Индексы (Indexes) на панели инструментов Конструктор таблиц (Table Design). Затем в появившемся окне Индексы (Indexes) нужно указать другой порядок полей для индекса с именем Ключевое поле (Primary Key).
Рассмотрим в качестве примера применения составного ключа таблицу «Заказано» (OrderDetails) базы данных (Northwind) (рис. 2.23).
В данном случае в качестве составного ключа используются поля «Код заказа» (OrderlD) и «КодТовара» (ProductID), т. к. ни одно из этих полей в отдельности не гарантирует уникальность записи. При этом в таблице выводится не код товара, а наименование товара, т. к. поле «КодТовара» (ProductID) данной таблицы содержит подстановку из таблицы «Товары» (Products), а значения полей «КодТовара» (ProductID) этих таблиц связаны отношением «один-ко-многим» (одной записи таблицы «Товары» (Products) может соответствовать несколько записей таблицы «Заказано» (OrderDetails)). Оба поля могут содержать повторяющиеся значения. Так, один заказ может включать в себя несколько товаров, а в разные заказы могут включаться одинаковые товары. В то же время сочетание полей «КодЗаказа» (OrderlD) и «КодТовара» (ProductID) однозначно определяет каждую запись таблицы «Заказы» (OrderDetails).
Чтобы изменить ключ, необходимо:
- Открыть таблицу в режиме Конструктора.
- Выбрать имеющиеся ключевые поля.
- Нажать на кнопку Ключевое поле (Primary Key), при этом кнопка должна принять положение Выкл., а из области выделения должны исчезнуть значки ключевого поля.
- Выбрать поле, которое необходимо сделать ключевым.
- Нажать на кнопку Ключевое поле (Primary Key). При этом в области выделения должен появиться значок ключевого поля.
Чтобы удалить ключ, необходимо:
- Открыть таблицу в режиме Конструктора.
- Выбрать имеющееся ключевое поле (ключевые поля).
- Нажать на кнопку Ключевое поле (Primary Key), при этом кнопка должна принять положение Выкл., а из области выделения должен исчезнуть значок (значки) ключевого поля.
Как сделать список в access?
Довольно распространена ситуация, когда выбор значения из одного списка должен приводить к обновлению второго, подчинённого списка, недавно я описывал такую реализацию на PHP, а теперь вот понадобилась в Access.
Если упростить задачу, то в базе хранится информация о сотрудниках предприятия, работающих в нескольких отделах, при этом в каждом отделе есть свой набор должностей. Поскольку и у отдела, и у должности есть свои атрибуты (название, номер офиса для отдела, должностной оклад для должности и т.п.), целесообразно вынести информацию об отделах и должностях в отдельные таблицы. С другой стороны, сотрудник работает и в отделе, и на должности, так что получается следующая схема данных:
«Примечания» здесь добавлены просто для иллюстрации отношения «один к одному» как связи между двумя ключами.
Теоретически сотрудник может переводиться как на другую должность в рамках отдела, так и в другой отдел, что приведёт к необходимости выбрать должность из списка должностей нового отдела. То есть, по выбору для сотрудника нового отдела из верхнего списка, должен обновляться и нижний список «Наименование должности»:
Как решить эту типовую задачу, мы и поговорим.
1. Источником записей формы «Сотрудники» делаем соответствующую таблицу, форму можно сгенерировать мастером, а затем удалить из неё поля «Код отдела» и «Код должности».
2. Вместо первого поля, включив кнопку «Мастера» на панели элементов Access, сгенерируем список, выводящий вместо кодов названия отделов. Сделать это можно так:
- форма выведена в режиме конструктора, нажимаем кнопку «Поле со списком», показываем мышкой границы будущего списка. По отпускании кнопки мыши появится окно «Мастер создания полей со списком»;
- выбираем «Объект будет использовать значения из таблицы или запроса», жмём «Далее»;
- выбираем таблицу «Отделы», жмём «Далее»;
- переносим оба поля таблицы отделов в №выбранные поля» (кнопкой >>), жмём «Далее»;
- убеждаемся, что список виден, а галочка «Скрыть ключевой столбец» включена, жмём «Далее»;
- выбираем «Сохранить в поле:» и поле «КодОтдела», жмём «Далее»; задаём подпись к списку и жмём «Готово».
3. С помощью конструктора запросов составляем следующий запрос:
Здесь «ПолеСоСписком16» — наименование компоненты верхнего списка.
4. Аналогично с помощью мастера делаем второй список, указав источником строк наш запрос, а выбор сохраняя в поле КодДолжности таблицы Сотрудники, получается вот такое окно свойств второго списка:
Увидеть это окно можно, щёлкнув правой кнопкой мыши на втором списке и выбрав «Свойства».
5. Теперь самое главное. В списке компонент выбираем «Форма» вместо имени поля со списком, выбираем вкладку события, событие Текущая запись, щёлкаем по кнопке с многоточием, подтверждаем, что нам нужен построитель программы, а не макроса или выражения:
Открылся редактор Visual Basic и появилась пустая функция с именем Form_Current . Пишем туда единственную строчку кода, которая обновит нижний список:
Здесь предполагается, что имя нижнего списка ПолеСоСписком20 .
6. Ту же самую строчку кода добавляем на событие «До обновления» верхнего списка, у меня получилось вот что:
7. Готово, теперь при выборе отдела из верхнего списка в нижний список подгружается список должностей этого отдела. Все остальные возможности приложения — стандартные и не потребуют написания кода.
Аналогично можно организовать любые другие 2 подчинённых списка на Access, когда при выборе значения из одного списка должны загружаться новые значения во второй список.
Ну и общие соображения по зависимым спискам в Access:
Если первый список не связан с полем источника записей формы, то обновление надо ставить в обработчик события BeforeUpdate («До обновления» в окне свойств конструктора формы в русских версиях Access-а), либо в AfterUpdate.
Если же первый список связан с полем источника записей формы, то обновление надо ставить в обработчик события Current («Текущая запись») формы и BeforeUpdate (AfterUpdate) первого списка.
Данный способ действует только для одиночной формы (на экране видно одну запись).
Обычно ленточные и табличные формы предназначены для поиска и просмотра, для ввода и редактирования — одиночная форма, поэтому в ней как раз и нужна фильтрация списков.
Вычисляемые поляв запросе БД Access 2003
2010-02-28
Владимир Ткаченко
В БД Microsoft Access вычисляемые поля могут быть созданы в запросе, форме или отчете.
Вычисляемые поля используются для различных целей, в том числе и для проведения расчетов, Для выполнения подсчетов в вычисляемые поля объектов базы данных Access вводят Выражения.
Выражения — это формулы аналогичные формулам Excel, но только вместо ссылок на ячейки в них используются имена полей. Ввод выражений возможен как вручную, так и с помощью Построителя выражений.
Выражения могут содержать следующие элементы:
- идентификаторы (имя поля и элемента управления, которые заключаются в квадратные скобки);
- операторы (арифметические, логические, сравнения и другие операторы);
- функции (готовые формулы, которые состоят из имени и аргумента, помещенного в круглые скобки)
- константы (элементы, которые не изменяются в Выражении, например Null, Истина, Ложь);
- значения (например, значения даты и времени, численные положительные или отрицательные значения).
Примеры Выражения:
- =/1,2, где «=» — опрератор, — имя поля, а 1,2 — значение;
- Date(), где Date — имя функции текущей даты, которая не имеет аргумента.
Рассмотрим создание вычисляемых полей в бланке запроса базы данных Access 2003. Для ввода Выражения в запрос его необходимо открыть в режиме Конструктора.
Чтобы создать вычисляемое поле в запросе (в существующем или вновь создаваемом запросе) открытого в режиме конструктора, необходимо ввести Выражение в строку Поле свободного столбца бланка запроса.
Рассмотрим создание вычисляемого поля в бланке запроса на примере базы данных Training_students_VP. Постановка задачи: в запросе на выборку (Запрос 3) создать поле, в котором должны отображаться итоговые оценки (ниже на 20% от полученных по результатам рейтинга). Для решения этой задачи откроем бланк «Запроса 3» в режиме конструктора (Рис. 1).
Рис. 1.
Для создания вычисляемого поля можно применить «Построитель выражений». Для этого надо установить курсор в свободное поле и выбрать на панели инструментов команду Построить (можно также воспользоваться контекстным меню), откроется окно Построитель выражений.
В верхней области построителя расположено текстовое поле выражения, предназначенное для записи выражения. Ниже поля выражения размещается строка с операторами. Три текстовых поля в нижней области используются для выбора элементов, которые могут быть вставлены в текстовое поле выражения. Выражение можно записать с клавиатуры или сформировать из готовых функций, операторов и других элементов.
Для поставленной задачи в Построитель можно ввести выражение =/1,2 с клавиатуры (Рис.2) и щелкнуть на кнопке ОК. Рис. 2.
В результате в бланке запроса появится вычисляемое поле =/1,2
Рис. 3.
Далее надо закрыть бланк запроса в режиме конструктора и открыть его в режиме таблицы. В таблице вычисляемое поле состоит из слова «Выражение» и цифры 1, которая показывает, каким по счету создано выражение. Необходимо также отметить, что результаты вычислений, отображаемые в записях, не отформатированы.
Рис. 4.
С учетом вышеизложенного следует изменить название вычисляемого поля и отформатировать его. Для этого необходимо вернуться в режим конструктора и слово Выражение1 заменить на «Итог_оценка». Затем щелкнуть правой кнопкой мыши на вычисляемое поле и в контекстном меню выбрать команду Свойства, откроется диалоговое окно Свойства поля (Рис. 5)
Рис. 5.
В окне Свойства поля установить формат, например Фиксированный и закрыть это окно. Затем закрыть запрос в режиме конструктора и открыть его в режиме таблицы. В результате на экране будет отображен запрос с отформатированным вычисляемым полем. Необходимо отметить, что значения вычисляемого поля не хранятся в базе данных, а являются результатом вычислений при формировании запроса.
Свойства полей в Access;
Типы полей в Access
Текстовый – используется для хранения текстовой информации. Это могут быть любые символы, количеством не более 255.
Поле МЕМО – предназначен для данных объемом до 64 тыс. символов. Это может быть текст или комбинация текста и чисел.
Числовой – предназначен для данных, которые могут использоваться в математических расчетах.
Дата/время – значения вводятся в поля в стандартном формате, например, 20.01.98 или 12:15. Однако пользователь может создать и собственный формат.
Денежный – предназначен для хранения точного значения очень больших чисел (15 знаков слева от запятой и 4 — справа). Система поддерживает шесть стандартных форматов, например, основной — 3456,789; фиксированный — 514,75; денежный – 2500 р., но пользователь может также создать собственный формат.
Счетчик– при использовании этого типа полю автоматически присваивается числовое значение. Это могут быть последовательные числа, начиная с 1 или случайные числа. Значения полей этого типа пользователь изменить не может.
Логический – поле может принимать только два значения: Да/Нет, Истина/Ложь, Вкл/Выкл.
Поле объекта OLE – этот тип поля предназначен для хранения объектов, созданных в других приложениях Windows (документов, таблиц, графиков, рисунков, звуковой информации и др.).
Размер поля – система допускает для текстового поля максимальное число символов — 255. По умолчанию устанавливается 50. Для числового поля по умолчанию устанавливается размер до 15 десятичных знаков.
Формат поля – определяет, в каком виде число, набираемое на клавиатуре, выводится на экран. Система поддерживает семь форматов. Например, денежный формат выводит на экран символ денежной единицы.
Маска ввода – используется в том случае, если все значения поля должны иметь один формат. Например, номер телефона, дата, почтовый индекс и т.п. Маска может состоять из трех частей, разделенных точками с запятой. Например, (99) 000-000; 0; _ _
Первая часть – это собственно маска ввода.
Вторая часть (здесь 0) указывает на режим автоматического занесения постоянных символов. По умолчанию или при значении 1 в поле заносятся только набираемые пользователем символы.
Третья часть (здесь _ _) показывает символы, которые используются для отображения пустых позиций в маске ввода на экране. По умолчанию для этой цели используется символ подчеркивания.
Для написания масок ввода зарезервированы определенные символы, которые жестко задают правило ввода значений полей.
0 — допускается только цифра от 0 до 9. Обязательный символ.
9 — цифра или пробел.
# — цифра, пробел, + или — (минус).
L — только буква. Обязательный символ.
? — буква или пробел.
А — обязательно буква или цифра.
а — буква, цифра, пробел.
& — должен быть любой символ или пробел.
С — произвольный символ.
— преобразование символа в верхний регистр.
! — маска должна заполняться справа налево.
— ввод следующего за обратной чертой символа как символьной константы.
В списке стандартных масок есть маска Пароль. При ее выборе вводимые с клавиатуры символы не отображаются на экране.
Подпись – это второй идентификатор поля. Первый — имя поля. Подпись используется для заголовка столбца в таблице. Ее делают более информативной, чем имя поля. Например, имя поля — КТ, а подпись — код товара.
Значение по умолчанию – значение поля, автоматически вводимое в таблицу при добавлении записи. Значение устанавливается пользователем.
Условие на значение – это свойство служит для автоматического контроля значения поля, вводимого в таблицу: оно должно удовлетворять условию, заданному пользователем. Например, выражение >1995 And