Типы данных в Microsoft Office Access
С основными типами данных мы уже знакомы. Так, например, при изучении электронных таблиц Microsoft Excel мы видели, что они работают с тремя типами данных: текстами, числами и формулами. Таблицы баз данных, как правило, допускают работу с гораздо большим количеством типов данных. Так, например, базы данных Microsoft Access работают со следующими типами данных (рис. 4.7).
Текстовый - тип данных, используемый для хранения обычного неформатированного текста ограниченного размера (до 255 символов).
Поле Мемо - специальный тип данных для хранения больших объемов текста (до 65 535 символов). Физически текст в поле не хранится. Он хранится в другом месте базы данных, а в поле хранится указатель на него, но для пользователя такое разделение заметно не всегда.
Поле счетчика | Текстовые поля | Числовой тип | Денежный тип | Логический тип | Тип дата/время |
Рис. 4.7. Таблица с полями некоторых типов
Числовой - тип данных для хранения действительных чисел. Тип числового поля может принимать значения из следующего списка:
· байт - целые числа в пределах от 0 до 255;
· целое - целые числа от - 32768 до 32767;
· длинное целое - целые числа от - 2147483648 до 2147483647;
· одинарное с плавающей точкой (4 байта) - числа в пределах от
–3.402823E+38 до –1.401298E–45;
· двойное с плавающей точкой (8 байт) - числа в пределах от
–1.79769313486231E+308 до –4.94065645841247E–324
Дата/время - тип данных для хранения календарных дат и текущего времени. Для данных этого типа существует набор форматов поля, приведенный ниже вместе с примерами:
· Полный формат (по умолчанию): 15.04.1994 17:30:10
· Длинный формат даты: 15 Апрель 1994 г.
· Средний формат даты: 15-апр-1994
· Краткий формат даты: 15.04.1994
· Длинный формат времени: 16:15:11
· Средний формат времени: 04:15 РМ
· Краткий формат времени: 16:15
Денежный - тип данных для хранения денежных сумм. Теоретически, для их записи можно было бы пользоваться и полями числового типа, но для денежных сумм есть некоторые особенности (например, связанные с правилами округления), которые делают более удобным использование специального типа данных, а не настройку числового типа. Для данных этого типа существует набор форматов поля, приведенный ниже вместе с примерами:
· Основной - 3456,789
· Денежный - 3 456, 79 р.
· Евро - 3 456, 79 ?
· Фиксированный - 3456, 79
· С разделителями разрядов - 3 456, 79
· Процентный - 123 %
· Экспоненциальный - 3,46Е+03
Счетчик - специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием. Естественное использование - для порядковой нумерации записей БД.
Логический - тип для хранения логических данных (могут принимать два значения, например Да или Нет).
Поле объекта OLE - специальный тип данных, предназначенный для характеристики объектов OLE, например мультимедийных. Реально, конечно, такие объекты в таблице не хранятся. Как и в случае полей MEMO, они хранятся в другом месте внутренней структуры файла базы данных, а в таблице хранятся только указатели на них (иначе работа с таблицами была бы чрезвычайно замедленной).
Гиперссылка - специальное поле для хранения адресов URL для Web-объектов Интернета. При щелчке на ссылке автоматически происходит запуск браузера и воспроизведение объекта в его окне.
Мастер подстановок - это не специальный тип данных. Это объект, настройкой которого можно автоматизировать ввод данных в поле так, чтобы не вводить их вручную, а выбирать из раскрывающегося списка.
4.3. Работа с таблицами и формами в Microsoft Office Access
В Microsoft Access поддерживаются два способа создания базы данных. Имеется возможность создать пустую базу данных, а затем добавить в нее таблицы, формы, отчеты и другие объекты. Такой способ является наиболее гибким, но требует отдельного определения каждого элемента базы данных. Имеется также возможность сразу создать с помощью мастера базу данных определенного типа со всеми необходимыми таблицами, формами и отчетами. Это простейший способ начального создания базы данных.
Для создания пустой базы данных выберите команду Файл - Создать (кнопка ), а затем в окне диалога Создание щелкните дважды по значку Новая база данных. После этого откроется окно диалога Файл новой базы данных (рис. 4.8). В раскрывающемся списке Папка выберите нужный диск и папку, например, диск С: - папка Списки. После этого в поле Имя файла введите имя новой базы данных. Access автоматически добавит к имени файла расширение .MDB .
Рис. 4.8. Окно диалога Файл новой базы данных
Теперь остается только нажать на кнопку Создать, и на экране появится окно базы данных, представленное на рис. 4.9.
Рис. 4.9. Главное окно базы данных
Создание таблиц. Работа с любыми объектами начинается с окна База данных (рис. 4.9). На левой панели данного окна сосредоточены элементы управления для вызова всех семи типов объектов программы. Создание таблиц начинается с выбора элемента управления Таблицы.
На правой панели представлен список таблиц, уже имеющихся в составе базы (если они были созданы ранее), и приведены элементы управления для создания новой таблицы. Чтобы создать таблицу вручную, следует использовать значок Создание таблицы в режиме конструктора или кнопку Конструктор на панели инструментов.
Окно Конструктора таблиц представлено на рис. 4.10. То, что мы видим в этом режиме, фактически является графическим бланком для создания и редактирования структуры таблиц. В первом столбце (1, рис. 4.10) вводят имена полей. Если свойство Подпись для поля не задано, то Имя поля станет одновременно и именем столбца будущей таблицы. Тип для каждого поля выбирают из раскрывающегося списка открываемого кнопкой выбора типа данных (см. рис. 4.10). Эта кнопка (2, рис. 4.10) - скрытый элемент управления. Она отображается только после щелчка на поле бланка. Это надо иметь в виду - в Microsoft Access очень много таких скрытых элементов управления, которые не отображаются, пока ввод данных не начат.
Рис. 4.10. Создание таблицы в режиме конструктора
Нижняя часть бланка содержит список свойств поля (4, рис. 10), выделенного в верхней части. Свойства поля - это набор характеристик, обеспечивающий дополнительные возможности управления данными. Некоторые из свойств уже заданы по умолчанию. Свойства полей не являются обязательными. Их можно настраивать по желанию, а можно и не трогать. Ниже перечислены основные свойства полей таблиц баз данных СУБД Microsoft Access.
• Имя поля - определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).
• Тип поля - определяет тип данных, которые могут содержаться в данном поле (см. п. 4.2 – типы данных).
• Размер поля - определяет предельную длину (в символах) данных, которые могут размещаться в данном поле.
• Формат поля - определяет способ форматирования данных в ячейках, принадлежащих полю.
• Маска ввода - определяет форму, в которой вводятся данные в поле (средство автоматизации ввода данных).
• Подпись - определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется имя поля).
• Значение по умолчанию - то значение, которое вводится в ячейки поля автоматически (средство автоматизации ввода данных).
• Условие на значение - ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как правило, для данных, имеющих числовой тип, денежный тип или тип даты);
• Сообщение об ошибке - текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных (проверка ошибочности выполняется автоматически, если задано свойство Условие на значение).
• Обязательное поле - свойство, определяющее обязательность заполнения данного поля при наполнении базы.
• Пустые строки - свойство, разрешающее ввод пустых строковых данных (от свойства Обязательное поле отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например, к текстовым).
• Индексированное поле - если поле обладает этим свойством, все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значения в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных.
Примечание. В зависимости от типа данных поля свойства у его полей могут различаться.
При создании таблицы целесообразно (хотя и не обязательно) задать ключевое поле (3, рис. 4.10). Это поможет впоследствии, при организации связей между таблицами (рис. 4.11). Для задания ключевого поля достаточно щелкнуть на его имени правой кнопкой мыши и в открывшемся контекстом меню выбрать пункт Ключевое поле. Здесь Код сотрудника появляется в обеих таблицах - в виде первичного ключа (1, рис. 4.11) и в виде внешнего ключа (2, рис. 4.11).
Первичный ключ - это идентификатор (например, шифр компонента, код товара или сотрудника), который является уникальным для каждой записи.
Первичный ключ должен содержать сведения, в которые изменения будут вноситься редко. Первичный ключ служит для различения похожих сведений и делает каждую запись уникальной. Он также служит для объединения сведений. С помощью первичного ключа можно связать одну таблицу с другой. Таким образом, обеспечивается совместное использование данных, что помогает избежать повторения сведений в одной из таблиц.
Первичные ключи помогают пользоваться всей мощью реляционной базы данных вместо того, чтобы работать с кипой повторяющихся, не взаимодействующих друг с другом списков, с которыми тяжело управляться. В связанных таблицах первичный ключ одной из них становится внешним ключом в другой.
Рис. 4.11. Связь между таблицами по ключевым полям
Создание связей между таблицами.
Для того, чтобы рассмотреть создание связей между таблицами построим в базе данных «РТФ_1_курс» три таблицы (рис. 4.12, 4.13 и 4.14).
Рис. 4.12. Таблица «Студенты»
Код студента является ключевым полем в таблице «Студенты», код куратора - в таблице «Кураторы», код куратора и учебная группа – в таблице «Подшефные». Причем Код куратора и учебная группа являются чужими ключами для таблицы «Подшефные».
Рис. 4.13. Таблица «Кураторы»
Рис. 4.14. Таблица «Подшефные»
Чтобы определить связи, необходимо использовать команду Сервис - Схема данных (кнопка ). Если связь определяется впервые в базе данных, то Access откроет пустое окно Схема данных, а затем выведет на экран окно диалога Добавление таблицы (рис. 4.15). В этом окне необходимо выделить нужные таблицы и нажать кнопку Добавить. В нашем случае в окно схемы данных надо добавить все три таблицы. Кнопка Закрыть закрывает окно диалога Добавление таблицы (данное окно можно вызвать по нажатию кнопки ). После этого окно Схемы данных должно выглядеть примерно так, как показано на рис. 4.16. (кроме линий соединения). Чтобы установить связь между таблицами Кураторы и Подшефные, надо выделить поле Код куратора в таблице Кураторы (щелкнуть левой кнопкой «мыши»), перетащить и опустить его на поле Код куратора в таблице Подшефные. Аналогично устанавливается связь между двумя другими таблицами.
Рис. 4.15. Окно «Добавление таблицы»
Рис. 4.16. Схема данных
Когда вы отпустите кнопку мыши, Microsoft Access откроет окно диалога Связи, представленное на рис. 4.17:
Рис. 4.17. Настройка связей между полями таблиц
Если установлен только флажок Обеспечение целостности данных, то нельзя будет удалять данные из ключевого поля главной таблицы. После установки флажка Обеспечение целостности данных, Access делает доступными еще два флажка: Каскадное обновление связанных полей и Каскадное удаление связанных записей.
При установленном флажке Каскадное обновление связанных полей Microsoft Access обновляет все значения чужих ключей в дочерних таблицах (то есть в таблицах на стороне отношения «многие» при связи «один ко многим») при изменении значения первичного ключа в родительской таблице, которая находится на стороне отношения «один» при связи «один ко многим». Если же вы установите флажок Каскадное удаление связанных записей, Microsoft Access удалит дочерние строки (связанные строки в дочерних таблицах) при удалении родительской строки (связанная строка в родительской таблице). Установите флажок Каскадное обновление связанных полей, чтобы при изменении кода куратора Access автоматически обновлял записи в таблице Подшефные.
После нажатия кнопки Создать Access создаст связь и нарисует линию между двумя таблицами, указывающую на наличие связи между ними. Заметьте: когда вы просите обеспечить целостность данных, Access изображает на конце линии у таблицы, находящейся на стороне отношения «один», цифру 1, а на другом конце у таблицы со стороны отношения «многие» - символ бесконечности. Чтобы удалить связь, щелкните по ее линии и нажмите клавишу Del. Если вы хотите отредактировать или изменять существующую связь, дважды щелкните по соответствующей линии, чтобы снова открыть окно диалога Связи.
Связь между таблицами позволяет:
• либо исключить возможность удаления или изменения данных в ключевом поле главной таблицы, если с этим полем связаны какие-либо поля других таблиц;
• либо сделать так, что при удалении (или изменении) данных в ключевом поле главной таблицы автоматически (и абсолютно корректно) произойдет удаление или изменение соответствующих данных в полях связанных таблиц.
Для настройки свойств связи надо в окне Схема данных выделить линию, соединяющую поля двух таблиц, щелкнуть на ней правой кнопкой мыши и открыть контекстное меню Связи, после чего выбрать в нем пункт Изменить связь - откроется диалоговое окно Изменение связей (рис. 4.17). В нем показаны названия связанных таблиц и имена полей, участвующих в связи (здесь же их можно изменить), а также приведены элементы управления для обеспечения условий целостности данных.
Таким образом, смысл создания реляционных связей между таблицами состоит, с одной стороны, в защите данных, а с другой стороны - в автоматизации внесения изменений сразу в несколько таблиц при изменениях в одной таблице
Создание форм.
Формы служат для удобства ввода или просмотра данных в базе данных. По мере ввода данных в форму они сохраняются в основной таблице. Формы представляют собой окна, с помощью которых осуществляется работа с данными (рис. 4.18). Графические элементы, такие, как линии и прямоугольники (1, рис. 4.18), хранятся в структуре формы. Данные (2, рис. 4.18) берутся из полей основной таблицы или запроса. Вычисление (3, рис. 4.18) производится по выражению, заданному в структуре формы. Описательный текст (4, рис. 4.18) сохраняется в структуре формы.
Рис. 4.18. Структура формы
В формах содержатся раскрывающиеся списки, инструкции, элементы управления переходами и рисунки - средства, упрощающие работу с данными. Тем или иным способом формы помогают представить данные в более понятном виде.
Автоформы. В отличие от таблиц, которые мы формировали вручную, формы удобнее готовить с помощью средств автоматизации. Полностью автоматическими являются средства, называемые автоформами. Существует три вида автоформ: «в столбец», ленточные и табличные (рис. 4.19).
а) автоформа
«В столбец»
б) автоформа «Ленточная»
в) автоформа «Табличная»
Рис. 4.19. Три вида автоформ
Как видно из рисунков, автоформа «в столбец» отображает все поля одной записи - она удобна для ввода и редактирования данных. «Ленточная» автоформа отображает одновременно группу записей - ее удобно использовать для оформления вывода данных. Табличная автоформа по внешнему виду ничем не отличается от таблицы, на которой она основана.
Для создания автоформы следует открыть панель Формы в окне База данных и воспользоваться командной кнопкой Создать. В открывшемся диалоговом окне Новая форма выбирают тип автоформы и таблицу (или запрос), на которой она основывается. После щелчка на кнопке ОК автоформа формируется автоматически и немедленно готова к работе, то есть к вводу или отображению данных (рис. 4.20).
Примечание. Обратите внимание на то, что автоформа основывается только на одном объекте.
Рис. 4.20. Создание автоформы
Иные средства создания форм позволяют закладывать в основу структуры формы поля нескольких таблиц или запросов. Если форма основывается только на одном объекте, она называется простой формой. Если форма основывается на полях из нескольких связанных таблиц, то она называется сложной и представляет собой композицию из нескольких форм.
Создание форм с помощью мастера. Автоматизированные средства предоставляет Мастер форм - специальное программное средство, создающее структуру формы в режиме диалога с разработчиком. Мастер форм можно запустить из окна данных щелчком на значке Создание формы с помощью мастера на панели Формы.
1. На первом этапе работы Мастера форм выбирают таблицы и поля, которые войдут в будущую форму.
2. На втором этапе выбирается внешний вид формы.
3. На третьем этапе выбирается стиль оформления формы.
4. На последнем этапе выполняется сохранение формы с заданным именем. Здесь же можно установить переключатель Изменить макет формы, который открывает только что созданную форму в режиме Конструктора. Этим удобно воспользоваться в учебных целях, чтобы рассмотреть структуру формы на готовом примере.
Структура формы. Как видно из рис. 4.21, форма имеет три основных раздела: область заголовка, область данных и область примечания. Линии, разделяющие разделы, перетаскиваются по вертикали с помощью мыши - это позволяет изменять размеры разделов так, как требуется.
Рис. 4.21. Структура формы в режиме Конструктора
Разделы заголовка и примечания имеют чисто оформительское назначение - их содержимое напрямую не связано с таблицей или запросом, на котором основана форма. Раздел данных имеет содержательное значение - в нем представлены элементы управления, с помощью которых выполняется отображение данных или их ввод. Разработчик формы может разместить здесь дополнительные элементы управления для автоматизации ввода данных (переключатели, флажки, списки и другие, типичные для приложений Windows).