Как сделать справочник в access?

Создание базы данных в MS Access 2007: пошаговая инструкция

В современном мире нужны инструменты, которые бы позволяли хранить, систематизировать и обрабатывать большие объемы информации, с которыми сложно работать в Excel или Word.

Подобные хранилища используются для разработки информационных сайтов, интернет-магазинов и бухгалтерских дополнений. Основными средствами, реализующими данный подход, являются MS SQL и MySQL.

Продукт от Microsoft Office представляет собой упрощенную версию в функциональном плане и более понятную для неопытных пользователей. Давайте рассмотрим пошагово создание базы данных в Access 2007.

Описание MS Access

Microsoft Access 2007 – это система управления базами данных (СУБД), реализующая полноценный графический интерфейс пользователя, принцип создания сущностей и связей между ними, а также структурный язык запросов SQL. Единственный минус этой СУБД – невозможность работать в промышленных масштабах. Она не предназначена для хранения огромных объемов данных. Поэтому MS Access 2007 используется для небольших проектов и в личных некоммерческих целях.

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

Определения основных понятий

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

  1. Предметная область – множество созданных таблиц в базе данных, которые связаны между собой с помощью первичных и вторичных ключей.
  2. Сущность – отдельная таблица базы данных.
  3. Атрибут – заголовок отдельного столбца в таблице.
  4. Кортеж – это строка, принимающая значение всех атрибутов.
  5. Первичный ключ – это уникальное значение (id), которое присваивается каждому кортежу.
  6. Вторичный ключ таблицы «Б» – это уникальное значение таблицы «А», использующееся в таблице «Б».
  7. SQL запрос – это специальное выражение, выполняющее определенное действие с базой данных: добавление, редактирование, удаление полей, создание выборок.

Теперь, когда в общих чертах есть представление о том, с чем мы будем работать, можно приступить к созданию БД.

Создание БД

Для наглядности всей теории создадим тренировочную базу данных «Студенты-Экзамены», которая будет содержать 2 таблицы: «Студенты» и «Экзамены». Главным ключом будет поле «Номер зачетки», т.к. данный параметр является уникальным для каждого студента. Остальные поля предназначены для более полной информации об учащихся.

Итак, выполните следующее:

  1. Запустите MS Access 2007.
  2. Нажмите на кнопку «Новая база данных».
  3. В появившемся окне введите название БД и выберите «Создать».

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

Создание и заполнение таблиц

После успешного создания БД на экране появится пустая таблица. Для формирования ее структуры и заполнения выполните следующее:

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

Создание и редактирование схем данных

Перед тем, как приступить к связыванию двух сущностей, по аналогии с предыдущим пунктом нужно создать и заполнить таблицу «Экзамены». Она имеет следующие атрибуты: «Номер зачетки», «Экзамен1», «Экзамен2», «Экзамен3».

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

  1. Перейти во вкладку «Работа с базами данных».
  2. Нажать на кнопку «Схема данных».
  3. Если схема не была создана автоматически, нужно нажать ПКМ на пустой области и выбрать «Добавить таблицы».
  4. Выберите каждую из сущностей, поочередно нажимая кнопку «Добавить».
  5. Нажмите кнопку «ОК».

Конструктор должен автоматически создать связь, в зависимости от контекста. Если же этого не случилось, то:

  1. Перетащите общее поле из одной таблицы в другую.
  2. В появившемся окне выберите необходимы параметры и нажмите «ОК».
  3. Теперь в окне должны отобразиться миниатюры двух таблиц со связью (один к одному).

Выполнение запросов

Что же делать, если нам нужны студенты, которые учатся только в Москве? Да, в нашей БД только 6 человек, но что, если их будет 6000? Без дополнительных инструментов узнать это будет сложно.

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

Виды запросов

SQL синтаксис реализует принцип CRUD (сокр. от англ. create, read, update, delete — «создать, прочесть, обновить, удалить»). Т.е. с помощью запросов вы сможете реализовать все эти функции.

На выборку

В этом случае в ход вступает принцип «прочесть». Например, нам нужно найти всех студентов, которые учатся в Харькове. Для этого нужно:

  1. Перейти во вкладку «Создание».
  2. Нажать кнопку «Конструктор запросов» в блоке «Другие».
  3. В новом окне нажмите на кнопку SQL.
  4. В текстовое поле введите команду: SELECT * FROM Студенты WHERE Адрес = «Харьков»; где «SELECT *» означает, что выбираются все студенты, «FROM Студенты» — из какой таблицы, «WHERE Адрес = «Харьков»» — условие, которое обязательно должно выполняться.
  5. Нажмите кнопку «Выполнить».
  6. На выходе мы получаем результирующую таблицу.

А что делать, если нас интересуют студенты из Харькова, стипендии у которых больше 1000? Тогда наш запрос будет выглядеть следующим образом:

SELECT * FROM Студенты WHERE Адрес = «Харьков» AND Стипендия > 1000;

а результирующая таблица примет следующий вид:

На создание сущности

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

  1. Перейти во вкладку «Создание».
  2. Нажать кнопку «Конструктор запросов» в блоке «Другие».
  3. В новом окне нажмите на кнопку SQL, после чего в текстовое поле введите команду:

CREATE TABLE Преподаватели
(КодПреподавателя INT PRIMARY KEY,
Фамилия CHAR(20),
Имя CHAR (15),
Отчество CHAR (15),
Пол CHAR (1),
Дата_рождения DATE,
Основной_предмет CHAR (200));

где «CREATE TABLE» означает создание таблицы «Преподаватели», а «CHAR», «DATE» и «INT» — типы данных для соответствующих значений.

  1. Кликните по кнопке «Выполнить».
  2. Откройте созданную таблицу.
На добавление, удаление, редактирование

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

  • для заполнения кортежа:
    INSERT INTO Преподаватели
    VALUES (1, ‘Иванова’, ‘Иванна’, ‘Ивановна’, ‘Ж’, ’05-06-1981′, ‘География’);
  • для редактирования записи:
    UPDATE Преподаватели SET Имя = ‘Анна’;
  • для удаления:
    DELETE * FROM Преподаватели WHERE Имя=’Анна’;.

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

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

  1. Откройте интересующую таблицу.
  2. Перейдите во вкладку «Создание».
  3. Нажмите на необходимый формат формы из блока «Формы».

Все базовые функции MS Access 2007 мы уже рассмотрели. Остался последний важный компонент – формирование отчета.

Формирование отчета

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

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

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

Если отображение вас не устраивает, его можно немного подкорректировать. Для этого:

  1. Нажмите ПКМ на вкладке отчета и выберите «Конструктор».
  2. Вручную расширьте интересующие столбцы.
  3. Сохраните изменения.

Итак, с уверенностью можно заявить, что создание базы данных в MS Access 2007 мы разобрали полностью. Теперь вам известны все основные функции СУБД: от создания и заполнения таблиц до написания запросов на выборку и создания отчетов. Этих знаний хватит для выполнения несложных лабораторных работ в рамках университетской программы или использования в небольших личных проектах.

Для проектирования более сложных БД необходимо разбираться в объектно-ориентированном программировании и изучать такие СУБД, как MS SQL и MySQL. А для тех, кому нужна практика составления запросов, рекомендую посетить сайт SQL-EX, где вы найдете множество практических занимательных задачек.

Удачи в освоении нового материала и если есть какие-либо вопросы – милости прошу в комментарии!

Домашняя телефонная книга

Для разработки телефонного справочника воспользуемся офисной программой Microsoft Access. Открыть программу можно двумя способами, используя меню кнопки «Пуск» => ВСЕ ПРОГРАММЫ => MicrosoftOffice =>, или ярлык MicrosoftAccess 2010, размещенный на Рабочем столе компьютера. Откройте программу любым из предложенных способов.

В открывшемся диалоговом окне выберите Новая база данных, в поле Имя файла справа введите имя создаваемой базы данных telephone directory. Чтобы изменить расположение, в котором будет создан файл, нажмите кнопку Обзор (Изображение раскрытой папки справа от поля Имя файла), выберите новое расположение и нажмите кнопку ОК, а далее командную кнопку Создать. В MS Access имя файла задается ДО создания новой базы. Все изменения, вносимые в базу данных, отображаются в ее файлах, что позволяет минимизировать риск потери большого количества данных даже при непредвиденных сбоях (например, отключение электропитания).

Microsoft Access создаст базу данных и откроет пустую таблицу (с именем «Таблица1») в режиме таблицы.

На левой панели окна «База данных» сосредоточены элементы управления для вызова всех типов объектов Access (таблицы, запросы, формы и т.д.). Сюда же добавляются и создаваемые объекты. Окно имеет панель инструментов для осуществления основных операций с объектами (открытие, редактирование, удаление и т.п.).

Начинаем проектировать телефонную книгу. Телефонная книга будет состоять из двух таблиц: первая таблица будет содержать номера телефонов, ФИО и адрес абонентов, а также код категории, вторая таблица будет содержать код категории и наименование категории.

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

Дважды кликнув на наименование поля (например, наименование поля Код), получаем мигающий курсор в имени поля. Введите название поля, которое запланировано, а именно, Номер телефона. Далее открывается окно типов данных, которые могут быть размещены в данном поле. Выберите поле Текст. Используя левую клавишу мыши, добавьте следующее поле . После заполнения всех полей таблицы перейдите в режим конструктора, воспользовавшись пиктограммой ( ) на ленте Главная. Перед переходом в режим конструктора MSAccess попросит присвоить имя первой таблице. Назовем ее «Телефонный справочник», далее ОК.

Создайте вторую таблицу. Выберите ленту Создание и на этой ленте блок Таблицы, далее Конструктор таблиц ( ). Запустите конструктор создания таблиц. Откроется окно проектирования структуры таблицы.

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

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

Для успешной работы базы данных установим ключевое поле (в нашем примере это поля «Номер телефона» [Телефонный справочник] и «Код» [Категории]). Чтобы установить ключ, перейдем в режим конструктора таблицы. Далее выделяем наименование поля, которое содержит уникальные значения и нажимаем на пиктограмму с изображением ключа . О том, что поле задано ключевым, свидетельствует значок ключа рядом с именем поля в окне редактирования структуры таблицы.

Закройте таблицы Категория и Телефонный справочник, при закрытии появляется окно диалога, предлагающее сохранить изменения в созданных таблицах. Подтвердите сохранение изменений, выбрав командную кнопку ДА (ОК). Обратите внимание на то, что в окне ВСЕ ОБЪЕКТЫ Accessпоявились новые элементы – только что созданные таблицы «ТЕЛЕФОННЫЙ СПРАВОЧНИК» и «КАТЕГОРИИ», сохраненные не в виде отдельных файлов на диске, а в структуре базы данных.

Первой откройте таблицу «КАТЕГОРИИ», дважды кликнув левой клавишей мыши по наименованию таблицы в окне ВСЕ ОБЪЕКТЫ ACCESS => Таблицы или с помощью контекстно независимого меню, установив курсор мыши на наименование таблицы и, нажав правую клавишу мыши, выбрать из ниспадающего списка команд команду ОТКРЫТЬ.

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

Откройте таблицу «Телефонный справочник» и заполните ее приведенными ниже данными:

Таблица «ТЕЛЕФОННЫЙ СПРАВОЧНИК»

Телефонный справочник

Номер телефона

ФИО абонента

Адрес

Код категории

Анна Егоровна Чернова

Москва, ул. Большая, 1

Иван Петрович Рут

Москва, Маленький пер., 15

Москва, Пр-т Центральный, 21

Москва, Мастеров пер., 5

Москва, ул. Фиалковая, 28

Москва, Аллея Звезд, 4

Светлана Геннадьевна Короткова

Москва, ул. Родная, 8

При заполнении КОДА КАТЕГОРИИ надо иметь в виду, что коды категорий двухсимвольные.

В структуре нашей базы данных уже есть две таблицы. Однако они пока существуют независимо и наша цель сделать так, чтобы в таблице «ТЕЛЕФОНЫ» вместо кодов категорий абонентов подставлялись их полные наименования из таблицы «КАТЕГОРИИ». Для этого необходимо настроить подстановочные параметры поля «КОД КАТЕГОРИИ», а также задать параметры связей между таблицами.

Для установления связей между таблицами воспользуемся вкладкой Работа с базами данных и выбираем из блока ОТНОШЕНИЯ пиктограмму Схема данных ( ). После выполнения команды открывается окно схемы данных, в которое нужно добавить уже созданные таблицы. Воспользуйтесь пиктограммой Отобразить таблицу ( ); откроется окно добавления таблицы, в котором представлены наши две таблицы. Используя SHIFT+ левая клавиша мыши, выделите обе таблицы и подтвердите выбор командной кнопкой ДОБАВИТЬ, а затем, используя командную кнопку ЗАКРЫТЬ, перейти в окно СХЕМЫ ДАННЫХ.

Настроим параметры связи между таблицами. Связь уже была создана (в процессе настройки подстановочного поля), но для обеспечения целостности данных требуется ее дополнительная настройка. Для настройки связей воспользуемся пиктограммой ( ) ИЗМЕНЕНИЕ СВЯЗЕЙ. В открывшемся окне, используя командную кнопку Новое…, настраиваем связи между полями Код таблицы КАТЕГОРИИ и поля Код категории таблицы ТЕЛЕФОННЫЙ СПРАВОЧНИК окна Создание.

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

Закройте макет СХЕМЫ ДАННЫХ, используя кнопку ЗАКРЫТЬ. На вопрос о сохранении схемы подтвердите желание Сохранить «Да/ОК». Закройте окно «Схема данных».

Естественно, электронный справочник удобней, чем традиционная телефонная книга. Во-первых, можно редактировать (изменять) телефоны абонентов, которые размещены в электронном телефонном справочнике. Во-вторых, можно быстро выбрать нужного абонента с полным набором необходимой информации: ФИО абонента, Адрес, Номер телефона. Это делается с помощью запросов.

Чтобы создать запрос, необходимо воспользоваться вкладышем СОЗДАНИЕ и выбрать блок ЗАПРОСЫ. В блоке воспользуемся пиктограммой ( ) Конструктор запросов. В открывшемся окне будет дана возможность добавить таблицы. Сделайте это и закройте окно добавления таблиц. Перед вами откроется бланк запроса по образцу:

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

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

Перетащите поля «Номер телефона», «ФИО абонента» «Адрес» «Наименование категории» и «Код» в формируемую таблицу. Можно указать ;параметр «Сортировка» (по возрастанию) для поля «Код категории». Это обеспечит группировку отображаемых записей по категориям.

Добавьте в поле «Код» условие «РД», в соответствии с которым из всего списка телефонного справочника будут выбираться номера телефонов Родственников.

Сохраните запрос под именем «Телефоны родных», закройте бланк запросов по образцу и посмотрите результаты выполнения запроса, активировав пиктограмму ВЫПОЛНИТЬ.

Таблицы и запросы обеспечивают не только хранение и обработку информации в базе данных, но и позволяют пользователям выполнять базовый набор операций с данными (просмотр, пополнение, изменение, удаление). Вместе с тем, в Microsoft Access существуют специальные объекты, которые призваны упростить повседневную работу с базой данных. К таким объектам относят, в первую очередь, формы и отчеты.

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

Материал подготовила методист Шутилина Л.А.

При подготовке материала использовались ресурсы:

Домашняя телефонная книга

Для разработки телефонного справочника воспользуемся офисной программой Microsoft Access. Открыть программу можно двумя способами, используя меню кнопки «Пуск» => ВСЕ ПРОГРАММЫ => MicrosoftOffice =>, или ярлык MicrosoftAccess 2010, размещенный на Рабочем столе компьютера. Откройте программу любым из предложенных способов.

В открывшемся диалоговом окне выберите Новая база данных, в поле Имя файла справа введите имя создаваемой базы данных telephone directory. Чтобы изменить расположение, в котором будет создан файл, нажмите кнопку Обзор (Изображение раскрытой папки справа от поля Имя файла), выберите новое расположение и нажмите кнопку ОК, а далее командную кнопку Создать. В MS Access имя файла задается ДО создания новой базы. Все изменения, вносимые в базу данных, отображаются в ее файлах, что позволяет минимизировать риск потери большого количества данных даже при непредвиденных сбоях (например, отключение электропитания).

Microsoft Access создаст базу данных и откроет пустую таблицу (с именем «Таблица1») в режиме таблицы.

На левой панели окна «База данных» сосредоточены элементы управления для вызова всех типов объектов Access (таблицы, запросы, формы и т.д.). Сюда же добавляются и создаваемые объекты. Окно имеет панель инструментов для осуществления основных операций с объектами (открытие, редактирование, удаление и т.п.).

Начинаем проектировать телефонную книгу. Телефонная книга будет состоять из двух таблиц: первая таблица будет содержать номера телефонов, ФИО и адрес абонентов, а также код категории, вторая таблица будет содержать код категории и наименование категории.

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

Дважды кликнув на наименование поля (например, наименование поля Код), получаем мигающий курсор в имени поля. Введите название поля, которое запланировано, а именно, Номер телефона. Далее открывается окно типов данных, которые могут быть размещены в данном поле. Выберите поле Текст. Используя левую клавишу мыши, добавьте следующее поле . После заполнения всех полей таблицы перейдите в режим конструктора, воспользовавшись пиктограммой ( ) на ленте Главная. Перед переходом в режим конструктора MSAccess попросит присвоить имя первой таблице. Назовем ее «Телефонный справочник», далее ОК.

Создайте вторую таблицу. Выберите ленту Создание и на этой ленте блок Таблицы, далее Конструктор таблиц ( ). Запустите конструктор создания таблиц. Откроется окно проектирования структуры таблицы.

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

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

Для успешной работы базы данных установим ключевое поле (в нашем примере это поля «Номер телефона» [Телефонный справочник] и «Код» [Категории]). Чтобы установить ключ, перейдем в режим конструктора таблицы. Далее выделяем наименование поля, которое содержит уникальные значения и нажимаем на пиктограмму с изображением ключа . О том, что поле задано ключевым, свидетельствует значок ключа рядом с именем поля в окне редактирования структуры таблицы.

Закройте таблицы Категория и Телефонный справочник, при закрытии появляется окно диалога, предлагающее сохранить изменения в созданных таблицах. Подтвердите сохранение изменений, выбрав командную кнопку ДА (ОК). Обратите внимание на то, что в окне ВСЕ ОБЪЕКТЫ Accessпоявились новые элементы – только что созданные таблицы «ТЕЛЕФОННЫЙ СПРАВОЧНИК» и «КАТЕГОРИИ», сохраненные не в виде отдельных файлов на диске, а в структуре базы данных.

Первой откройте таблицу «КАТЕГОРИИ», дважды кликнув левой клавишей мыши по наименованию таблицы в окне ВСЕ ОБЪЕКТЫ ACCESS => Таблицы или с помощью контекстно независимого меню, установив курсор мыши на наименование таблицы и, нажав правую клавишу мыши, выбрать из ниспадающего списка команд команду ОТКРЫТЬ.

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

Откройте таблицу «Телефонный справочник» и заполните ее приведенными ниже данными:

Таблица «ТЕЛЕФОННЫЙ СПРАВОЧНИК»

Телефонный справочник

Номер телефона

ФИО абонента

Адрес

Код категории

Анна Егоровна Чернова

Москва, ул. Большая, 1

Иван Петрович Рут

Москва, Маленький пер., 15

Москва, Пр-т Центральный, 21

Москва, Мастеров пер., 5

Москва, ул. Фиалковая, 28

Москва, Аллея Звезд, 4

Светлана Геннадьевна Короткова

Москва, ул. Родная, 8

При заполнении КОДА КАТЕГОРИИ надо иметь в виду, что коды категорий двухсимвольные.

В структуре нашей базы данных уже есть две таблицы. Однако они пока существуют независимо и наша цель сделать так, чтобы в таблице «ТЕЛЕФОНЫ» вместо кодов категорий абонентов подставлялись их полные наименования из таблицы «КАТЕГОРИИ». Для этого необходимо настроить подстановочные параметры поля «КОД КАТЕГОРИИ», а также задать параметры связей между таблицами.

Для установления связей между таблицами воспользуемся вкладкой Работа с базами данных и выбираем из блока ОТНОШЕНИЯ пиктограмму Схема данных ( ). После выполнения команды открывается окно схемы данных, в которое нужно добавить уже созданные таблицы. Воспользуйтесь пиктограммой Отобразить таблицу ( ); откроется окно добавления таблицы, в котором представлены наши две таблицы. Используя SHIFT+ левая клавиша мыши, выделите обе таблицы и подтвердите выбор командной кнопкой ДОБАВИТЬ, а затем, используя командную кнопку ЗАКРЫТЬ, перейти в окно СХЕМЫ ДАННЫХ.

Настроим параметры связи между таблицами. Связь уже была создана (в процессе настройки подстановочного поля), но для обеспечения целостности данных требуется ее дополнительная настройка. Для настройки связей воспользуемся пиктограммой ( ) ИЗМЕНЕНИЕ СВЯЗЕЙ. В открывшемся окне, используя командную кнопку Новое…, настраиваем связи между полями Код таблицы КАТЕГОРИИ и поля Код категории таблицы ТЕЛЕФОННЫЙ СПРАВОЧНИК окна Создание.

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

Закройте макет СХЕМЫ ДАННЫХ, используя кнопку ЗАКРЫТЬ. На вопрос о сохранении схемы подтвердите желание Сохранить «Да/ОК». Закройте окно «Схема данных».

Естественно, электронный справочник удобней, чем традиционная телефонная книга. Во-первых, можно редактировать (изменять) телефоны абонентов, которые размещены в электронном телефонном справочнике. Во-вторых, можно быстро выбрать нужного абонента с полным набором необходимой информации: ФИО абонента, Адрес, Номер телефона. Это делается с помощью запросов.

Чтобы создать запрос, необходимо воспользоваться вкладышем СОЗДАНИЕ и выбрать блок ЗАПРОСЫ. В блоке воспользуемся пиктограммой ( ) Конструктор запросов. В открывшемся окне будет дана возможность добавить таблицы. Сделайте это и закройте окно добавления таблиц. Перед вами откроется бланк запроса по образцу:

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

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

Перетащите поля «Номер телефона», «ФИО абонента» «Адрес» «Наименование категории» и «Код» в формируемую таблицу. Можно указать ;параметр «Сортировка» (по возрастанию) для поля «Код категории». Это обеспечит группировку отображаемых записей по категориям.

Добавьте в поле «Код» условие «РД», в соответствии с которым из всего списка телефонного справочника будут выбираться номера телефонов Родственников.

Сохраните запрос под именем «Телефоны родных», закройте бланк запросов по образцу и посмотрите результаты выполнения запроса, активировав пиктограмму ВЫПОЛНИТЬ.

Таблицы и запросы обеспечивают не только хранение и обработку информации в базе данных, но и позволяют пользователям выполнять базовый набор операций с данными (просмотр, пополнение, изменение, удаление). Вместе с тем, в Microsoft Access существуют специальные объекты, которые призваны упростить повседневную работу с базой данных. К таким объектам относят, в первую очередь, формы и отчеты.

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

Материал подготовила методист Шутилина Л.А.

При подготовке материала использовались ресурсы:

Ускоренное создание справочников в Access

Многоуровневые справочники.

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

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

Имя таблицы

Имя поля

Тип поля

При установке связей между таблицами СПРАВОЧНИК и СПРАВОЧНИК Sub установим флажок «Каскадное удаление связанных записей» — это как раз тот случай, когда такая процедура будет полезной. Ведь при удалении записи из таблицы «СПРАВОЧНИК» связанные с ней данные становятся не нужными.

Если Вы откроете схему данных, то увидите только две связанные между собой справочные таблицы. В предыдущем примере к основной таблице «Адресат» были привязаны все справочники, и я еще подробно рассказывал о связях, флажках… Дело в том, что при данной схеме организации справочной системы мы не сможем прицепить таблицу «СПРАВОЧНИК» к какому либо полю, ведь в ней теперь хранятся все справочные данные. Да в этом и нет надобности. Если учесть, что пользователь будет работать с базой исключительно через формы, то вероятность ввода в основную таблицу записей, которых нет в справочной, сводиться практически к нулю.

Параметры справочников хранятся в служебной таблице tSystemFormPar. В поле Tabl указан идентификатор соответствующего справочника.
Рассмотрим отличия от предыдущего варианта.

Все глобальные переменные и константы я перенес в специальный модуль, который так и называется Constants. Хотя объявлять их можно в любом модуле, главное, чтобы они были в разделе General и начинались с ключевого слова Public, но лучше хранить их для наглядности в одном месте.

В модуль SprawForm добавилась новая функция – fFilListBox. Она во многом похожа на fFilForm, но служит для фильтрации списка, поэтому в параметрах вместо frm As Form поставлено lst As ListBox. Кроме этого, в обеих функциях изменена строка формирования фильтра:

strFiltr = » WHERE Left([» & strFieldName & «],» & Len(strFiltr) & «) = ‘» & strFiltr & «‘» & » and СПРАВОЧНИК.Type = » & strTableName

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

RecordSource = strSql1 & strFiltr & » » & strSql2

то для списка нужно использовать свойство RowSource

RowSource = strSql & strFiltr & » » & strSql1

Добавилась функция удаления записей – sDeleteRecord. Пользовательская функция нужна для перехвата события удаления. Теперь посмотрим, что изменилось в модулях форм.

В модуле формы «Справочник» добавилось условие отбора по полю Type таблицы СПРАВОЧНИК

Me.Subfrm.Form.RecordSource = strSql2 & » WHERE СПРАВОЧНИК.Type = » & strTableName & strSql3

и появилось новое – присвоение полю Type значения по умолчанию, равное текущему значению переменной strTableName

Ведь если этого не сделать, то запись в таблице СПРАВОЧНИК окажется не привязанной к текущему типу справочника.

В модуле формы двухуровневого справочника «СправочникМ» видим, что формируются две пары строк – источников данных: strSql, strSql1 – для списка и strSql2, strSql3 – для табличной формы. Строки разбиты на пары потому, что между ними нужно будет вставлять условие отбора (WHERE…) Чтобы новое введенное значение в поле формы тут же отображалось в списке, служит процедура

Private Sub Fld_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.ListB.RowSource = strSql & » WHERE СПРАВОЧНИК.Type = » & strTableName & strSql1
End Sub

А для навигации по форме (поиску нужной записи) используем

Private Sub ListB_AfterUpdate()
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst «[id] = » & Str(Nz(Me![ListB], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Чтобы исключить возможность ввода в табличную форму (источник — СПРАВОЧНИК Sub) записей, не связанных с основной формой (источник — СПРАВОЧНИК) служит процедура, которая выводит соответствующее сообщение при подобной попытке и блокирует ее:

Private Sub Subfrm_Enter()
If flgDeleteRecord = False Then
If IsNull([id]) Then
MsgBox «Сначала нужно завести основные данные!», vbCritical, NomWers
Fld.SetFocus
End If
End If
End Sub

Раз на форме появилось второе поле фильтра, появилась соответствующая процедура фильтрации по этому полю

Private Sub П2_Change()
strFiltr = Me.П2.Text
Set idField = Me.П2
Call fFilForm(strFiltr, strSql2, strSql3, Me.Subfrm.Form, «Name»)
End Sub

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

А теперь можете поэкспериментировать, создавая разного вида справочники — простые и двухуровневые.

Пример для данной статьи Вы можете скачать здесь…

Читать еще:  Как сделать связь один к одному в access 2013?
Ссылка на основную публикацию
Adblock
detector