В столбце Тип данных таблицы, открытой в режиме конструктора, нужно определить необходимый тип данных и присвоить определенные имена полям (рис. 2).
Тип данных:
текстовый – тип данных, используемый для хранения обычного неформатированного текста ограниченного размера (до 255 символов);
поле Memo – специальный тип данных для хранения больших объемов текста (до 65535 символов). Физически текст не хранится в поле. Он хранится в другом месте базы данных, а в поле хранится указатель на него, но для пользователя такое разделение заметно не всегда;
числовой – тип данных для хранения действительных чисел;
дата/время – тип данных для хранения календарных дат и текущего времени;
денежный – тип данных для хранения денежных сумм. Теоретически, для их записи можно было бы пользоваться и полями числового типа, но для денежных сумм есть некоторые особенности (например, связанные с правилами округления), которые делают более удобным использование специального типа данных, а не настройку числового типа;
Рис. 2
счетчик – специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием. Естественное использование - для порядковой нумерации записей;
логический – тип для хранения логических данных (могут принимать только два значения, например, Да или Нет);
поле объекта OLE – специальный тип данных, предназначенный для хранения объектов OLE, например, мультимедийных. Реально такие объекты в таблице не хранятся, они хранятся в другом месте внутренней структуры файла базы данных, а в таблице хранятся только указатели на них;
гиперссылка – специальное поле для хранения адресов URL Web-объектов Интернета. При щелчке на ссылке автоматически происходит запуск броузера и воспроизведение объекта в его окне;
Мастер подстановок – это не специальный тип данных. Это объект, настройкой которого можно автоматизировать ввод данных в поле так, чтобы не вводить их вручную, а выбирать из раскрывающегося списка.
Каждый тип данных связан с вполне определенным набором свойств.
Установление связей между таблицами
Microsoft Access имеет дело с базами родственных данных, благодаря чему вы можете одновременно работать с данными из нескольких таблиц. Сформировав таблицы базы данных и установив ключевое поле для каждой таблицы, можно создать между таблицами взаимоотношения. Они помогут Microsoft Access связывать данные в каждом новом запросе, форме или отчете, включающем обе связанные таблицы.
В Microsoft Access можно создать два типа связей: отношение один-ко-многим (рис. 7) или отношение один-к-одному (рис. 6). В первом случае, более распространенном, одна запись таблицы связана с множеством записей другой таблицы.
В случае менее распространенного отношения один-к-одному одной записи в первичной таблице соответствует только одна запись связанной таблицы. Например, фамилия, имя, отчество, пол, дата рождения, группа студента могут располагаться в одной таблице, а данные о результатах сессии - в другой. Между этими таблицами будет существовать отношение один-к-одному, так как каждой записи в одной из них соответствует единственная запись в другой.
Создание связи между двумя таблицами
Для создания связи между двумя таблицами, следует прежде убедиться, что в них есть совпадающие поля, выбрать базовую таблицу из двух (если речь идет о связи один – ко – многим).
Например, в двух таблицах студент и сессия (рис. 1 и рис. 3) количество записей одинаково, следовательно, здесь тип связи один – к –одному. Для осуществления связи необходимо предварительно в режиме Конструктора (таблицы студент и сессия) установить Ключевое поле с помощью динамического меню, нажав мышью напротив поля Номер. Установив Ключевое поле в двух таблицах, их можно связать.
Например, в двух других таблицах: сессия (рис. 3) и стипендия (рис.4), количество записей разное, следовательно, здесь тип связи один – ко – многим. В этом случае необходимо выбрать из них базовую таблицу. Базовая таблица – эта та таблица, в которой нет совпадающих записей в одинаковых полях двух таблиц (совпадающие поля – Результат). В данном примере базовой будет таблица стипендия и только в ней необходимо установить Ключевое поле напротив поля Результат. Установив Ключевое поле в таблице стипендия, можно установить тип связи один – ко - многим.
После того как связь установлена, нельзя изменять или удалять поля, на которых она основана, до тех пор, пока не удалите саму связь.
Прежде чем создать связь, необходимо открыть окно Схема данных. Для этого выберите команду Схема данных из меню Сервис. Если данное окно открывается не впервые, окно появится точно в таком виде, в каком сохранили его в последний раз. При первом установлении связи окно будет пустым и сначала появится диалоговое окно Добавление таблицы. Затем необходимо добавить все таблицы, которые необходимо связать.
В данном примере в окне Схема данных показана взаимосвязь между таблицами базы данных sess.dmb (рис. 5). Дополнительные две таблицы: сессия и стипендия показаны на рис. 3 и рис. 4 соответственно.
Для установления связи между таблицей студент и таблицей сессия необходимо:
Перетащите мышью поле Номер из списка полей студенты в поле Номер из списка полей сессия. Отпустив клавишу мыши, появится диалоговое окно Связи (рис.6).
Замечание: проверьте, что имя поля находится в обоих списках. В диалоговом окне Связи также приведены элементы управления для обеспечения условий целостности данных. Если установлен только флажок Обеспечение целостности данных, то удалять данные из ключевого поля главной таблицы нельзя. Если включены и флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей, то, соответственно, операции редактирования и удаления данных в ключевом поле главной таблицы разрешены, но сопровождаются автоматическими изменениями в связанной таблице.
Нажмите на кнопку Создать, теперь таблица студент связана с таблицей сессия. Видно линию, которая соединяет два совпадающих поля в этих таблицах (рис. 5). Взаимосвязь будет сохраняться до тех пор, пока ее не удалите. Два раза щелкнув по данной связи, можно ее изменить.
Закройте данное окно, при этом система спросит, сохранить ли изменения макета Схема данных. Заметим, что от вашего решения зависит лишь графическое представление окна. Установленные же связи останутся в вашей базе данных. Нажмите на кнопку Да, чтобы сохранить представление окна взаимосвязей.
Открыв в следующий раз окно Схема данных, увидите его таким, каким только что сохранили.
Для установления связи между таблицей стипендия и таблицей сессия необходимо:
Перетащите мышью поле Результат из списка полей стипендия в поле Результат из списка полей сессия. Отпустив клавишу мыши, появится диалоговое окно Связи (рис.7).
Далее действовать аналогичным образом, как и при установлении связи между предыдущими таблицами.
Замечание: Поля связанной таблицы, соответствующие ключевым полям первичной таблицы, могут иметь разные имена. Но они должны содержать совпадающие данные и характеризоваться одинаковым типом данных, а поля данных цифрового типа должны также иметь одинаковый формат.
Исключение составляет случай, когда ключевое поле первичной таблицы по типу данных является счетчиком. Тогда соответствующее поле связанной таблицы может быть тоже счетчиком или характеризоваться цифровым типом данных, причем свойство Размер поля должно быть установлено на Длинное целое.
Работа с запросами
Эти объекты служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде. Запрос определяет группу записей, с которыми необходимо работать. Можно применить запрос для сортировки данных или для просмотра целого подмножества сведений из вашей базы данных. Например, вместо того, чтобы просматривать всю таблицу студент, можно просмотреть сведения только о студентах, получивших оценки хорошо или отлично (рис. 9) или о студентах, получивших также и удовлетворительные оценки (рис. 8).
Запросы лучше готовить вручную, с помощью Конструктора. Для этого необходимо из меню Вставка выбрать команду Запрос, при этом появится диалоговое окно Новый запрос, в котором необходимо выбрать режим Конструктор. Создание запроса в режиме Конструктор откроет специальный бланк, называемый бланком запроса по образцу (рис. 10, 11). Он состоит из двух областей. В верхней отображается структура таблиц, к которым запрос адресован, а нижняя область разбита на столбцы – по одному столбцу на каждое поле будущей результирующей таблицы.
С помощью команды Добавить таблицу из меню Запрос откроется диалоговое окно Добавление таблицы. Выбрав необходимые таблицы, в верхней области (рис. 10) откроются те таблицы, к которым обращен запрос. Между этими таблицами необходимо установить нужные связи для правильного запуска запроса. Затем из них переместите мышью те поля, которые должны войти в результирующую таблицу. При этом автоматически заполняются столбцы в нижней части бланка. Сформировав структуру запроса, его закрывают, дают ему имя и в дальнейшем запускают двойным щелчком на значке в окне База данных.
В нижней части бланка имеется специальная строка Сортировка. При щелчке на этой строке открывается кнопка раскрывающегося списка, в котором можно выбрать метод сортировки: по возрастанию или по убыванию.
В нижней части бланка имеется специальная строка Условие отбора. Для каждого поля в этой строке можно задать индивидуальное условие, например, на рис. 10 введено условие 0 в столбце Процент,на рис. 11 введено условие >0.
Рис. 3
Рис. 4
Рис. 5
Рис. 6
Рис. 7
Рис. 8
Рис. 9
Рис. 10
Рис. 11
Другие виды запросов
Мы рассмотрели запросы на выборку. Это самые простые и, в то же время, наиболее распространенные виды запросов. Однако существуют и другие виды запросов. К ним относятся, прежде всего:
перекрестный запрос (создается при использовании Мастера запросов), позволяющий создавать результирующие таблицы на основе результатов расчетов, полученных при анализе группы таблиц. Например, данный запрос может автоматически произвести группировку и подсчет сумм и представит данные в удобном формате (рис. 12);
повторяющиеся записи (рис. 13);
записи без подчиненных (рис. 14).
Рис. 12
Рис. 13
Рис. 14
Работа с формами
С одной стороны, формы позволяют пользователям вводить данные в таблицы базы данных без непосредственного доступа к самим таблицам. С другой стороны, они позволяют выводить результаты работы запросов не в виде результирующих таблиц, а в виде красиво оформленных форм. Также возможен и комбинированный подход – это вопрос творчества.
Рис. 15
Существует три вида автоформ (рис.15): в столбец, ленточная и табличная. Автоформа в столбец (рис. 16) отображает все поля одной записи – она удобна для ввода и редактирования данных. Ленточная автоформа (рис. 17) отображает одновременно группу записей – ее удобно использовать для оформления вывода данных. Табличная – похожа на таблицу, на которой она основана.
Форма, которая основана на одном объекте, называется простой формой. Форма, основанная на полях из нескольких связанных таблиц, называется сложной и представляет собой композицию из нескольких форм.
Рис. 16
Рис. 17
Структура формы
Форма имеет три основных раздела: область заголовка, область данных и область примечания. Линии, разделяющие разделы, перетаскиваются по вертикали с помощью мыши – это позволяет изменять размеры разделов так, как требуется. Элементы управления, которыми может пользоваться разработчик, представлены на Панели элементов. Ее можно открыть из меню Вид командой Панель элементов только в режиме Конструктора. Выбор элемента управления выполняется одним щелчком на его значке в Панели элементов, после чего следующим щелчком в поле формы вставляется место, куда он должен быть поставлен. Вместе с элементом в поле формы вставляется его присоединенная надпись. Редактированием свойства элемента управления можно дать элементу управления более содержательную подпись через контекстное меню.