В этой главе даны начальные сведения о системе управления базами данных (СУБД) Microsoft Access. Вы познакомитесь со следующими вопросами:
назначение Access; создание базы данных и таблицы; ввод данных в таблицу, ее редактирование и форматирование; связи между таблицами в базе данных.
Access является одной из самых популярных настольных систем управления базами данных (СУБД), которая может работать с текстовыми файлами, с электронными таблицами и базами данных наиболее популярных форматов.
База данных хранит совокупность данных и объектов, относящихся к определенной задаче. Она помогает нам упорядочить информацию по различным признакам и позволяет быстро делать выборку с произвольным сочетанием признаков. В качестве данных может использоваться любая информация, хранящаяся на диске компьютера: сочетания символов, слова, файлы, рисунки, объекты и т.д. Методы ввода и хранения данных определяют структуру базы данных.
Access может работать в качестве: автономной СУБД для настольных систем; СУБД для файлового сервера; как интерфейсный клиент для связи с серверными СУБД масштаба предприятия, например, с Microsoft SQL Server.
Access 2003 представляет собой мощную платформу для создания настольных приложений и приложений клиент/сервер уровня подразделения или целого предприятия.
Access 2003 позволяет преобразовывать базы данных Microsoft Access в формат Microsoft SQL Server, предоставляет двухстороннюю поддержку XML. Для интеграции инструментария Access с базами данных MS SQL используются быстродействующие средства доступа к базам данных на основе интерфейса OLE-DB.
Расширения файлов, используемых в Access
Access хранит все данные в одном файле, несмотря на то, что они могут быть распределены по разным таблицам. Таблицы с данными, их индексы, формы, отчеты хранятся в файлах с расширением .mdb (Microsoft Access database). Закрытый формат файлов с расширением .mde позволяет не включать исходный код VBA в распространяемые приложения Access. Файлы ,adp (Microsoft Access. project) обеспечивают подключение к интегрированным хранилищам данных SQL Server 2000 через соединение OLE DB, что позволяет создавать полноценные приложения, имеющие архитектуру клиент/сервер.
По умолчанию в Access используются файлы с расширением .mdb. Этот формат позволяет разработчикам сохранять файлы как *.mde или *.ade. При этом любой код Visual Basic компилируется, и исходный код исключается как из файла базы данных Access (.MDB), так и из файла проекта Access (.ADP), что обеспечивает более надежную защиту.
Для завершения работы с приложением выберите команду Выход (Exit) в меню
Файл (File) . Другие варианты запуска программы и завершения работы с ней рассмотрены в главе 1 в разделах «Различные способы запуска приложений Microsoft Office» и «Закрытие документа и выход из программы Microsoft Office».
База данных Microsoft Access может содержать различные объекты: таблицы, запросы, формы, отчеты, макросы, модули и ярлыки страниц доступа к данным. Данные в связанных таблицах могут содержаться в другой базе данных Access, во внешнем источнике данных, например, в базе данных dBASE или в электронной таблице Microsoft Excel, а также в источнике данных ODBC, например, Microsoft SQL Server. Программа имеет инструменты, позволяющие хранить информацию в Интернете.
После запуска Access на экране отображается стандартное окно приложения Microsoft Office 2003 (рис. 23.1), вид которого определяется установками, сделанными на вкладке Вид (рис. 26.25) диалогового окна команды
Параметры (Options) в меню Сервис (Tools) . На этой вкладке можно установить флажок область задан при запуске (Startup Task Pane), что обеспечит после запуска Access показ в правой части окна области задач Приступая к работе. Ссылки в .этой
области задач позволяют подключиться к веб-узлу Microsoft Office Online, получить последние сведения об использовании Access, открыть файлы, с которыми вы работали ранее или создать файл.
Рис. 23.1
Окно Access, отображаемое на экране после запуска программй
Для более подробного знакомства с возможностями различных объектов базы данных в Access можно воспользоваться учебной базой Борей (North-wind.mdb) и ее клиент-серверной версией БорейСЗ (NorthwindCS). Для работы с БорейСЗ следует установить на вашем компьютере SQL Server 2000 Desktop Engine или Microsoft SQL Server.
Рассмотрим подробнее учебную базу Борей (Northwind.mdb). После ее открытия на экране видна вертикально расположенная панель
Объекты (Objects) (рис. 23.2). На ней расположены значки, используемые для создания новых объектов базы данных и открытия существующих:
Таблицы (Tables), Запросы (Queries), Формы (Forms), Отчеты (Reports) и т.д. После щелчка значка какого-либо типа объекта, в правой части окна отображается список всех объектов базы данных выбранного типа. Ярлык Группы (Groups)
используется для добавления ярлыка новой группы к часто используемым объектам базы данных. Для добавления группы щелкните правой кнопкой мыши строку заголовка окна базы данных, выберите в контекстном меню команду
Новая группа (New Group) и в появившемся окне введите имя новой группы.
Выделение того или иного значка на панели Объекты меняет вид панели инструментов, перечень кнопок на ней и список имеющихся объектов.
Изменить представление объектов в окне базы данных позволяют кнопки панели инструментов:
Крупные значки (Large Icons), Мелкие значки (Small Icons), Список (List), Таблица (Details) или одноименные команды из меню
Вид (View).
Рис. 23.2
Список таблиц, поставляемых с учебной базой данных Борей
Каждая таблица в Access обычно содержит данные, относящиеся к определенной теме, например, сведения о покупателях, с которыми имеет дело торговая фирмы. Какие сведения хранятся в таблицах учебной базы данных Борей можно определить по их названиям: Доставка, Заказы, Клиенты и т.д.
Все объекты баз данных Access, кроме макросов и модулей, можно отображать в двух режимах: в режиме таблицы и режиме конструктора. Режим конструктора обеспечивает большие возможности при создании таблицы, запроса, формы или отчета. Например, в этом режиме можно задать ширину каждого поля с тем, чтобы сделать объект более компактной.
В режиме таблицы можно добавлять, редактировать, просматривать или выполнять другую работу с данными таблицы. Каждая строка таблицы представляет собой отдельную запись, каждый столбец — поле. Поле — это наименьший элемент информации, хранящийся в базе данных, который рассматривается как единое целое.
Полем также называют клетку таблицы, образуемую пересечением строки и столбца. В поле может находиться один или группа символов, текст, рисунок, звуковой файл или другая информация. Каждое поле имеет свое уникальное имя.
В таблице не могут быть поля с одинаковым именем. Все поля таблицы относятся к одному объекту.
Рассмотрим таблицу Клиенты (рис. 23.3). Поля базы данных Клиенты содержат сведения о клиенте: его должность, адрес, номер телефона и т.д.
Перемещение между записями
Для перемещения между записями можно использовать мышь, клавиатуру, вертикальную и горизонтальную полосы прокрутки, поле номера записи внизу
окна и кнопки переходов по записям (рис. 23.4). Назначение кнопок переходов по записям:
Рис. 23.3. Фрагмент базы данных :1 — выделение всех записей, 2 — выделение поля, 3 — выделение строки
Рис. 23.4
Кнопки переходов по записям
1 — Первая запись (First Record) — выполняет переход к началу таблицы;
2 — Предыдущая запись (Previous Record) — возвращает назад на одну запись;
3 — Поле номера записи или Индикатор записи (Record Indicator) — отображает номер текущей записи;
4 — Следующая запись (Next Record) — позволяет просмотреть следующую запись;
5 — Последняя запись (Last Record) — обеспечивает переход в конец таблицы;
6 — Новая запись (New Record) — создает новую пустую запись.
Кнопки переходов по записям дублируют команды меню Правка (Edit), Перейти (Go To) .
Перемещение между полями
Чтобы выбрать поле, щелкните его мышью. Для перемещения по полям используются клавиши управления курсором и приведенные ниже клавиши:
Tab — перемещение к следующему полю справа; Shift+Tab — перемещение к следующему полю слева; Ноmе — переход к первому полю; End — переход к последнему полю.
При перемещении по полям с клавиатуры Access автоматически выделяет данные, содержащиеся в поле. Нажатие любой клавиши после выделения поля
отражается на всей записи. Чтобы удалить выделение щелкните поле мышью. Выделение поля и записи подробно рассмотрено ниже в этой главе в разделе «Ввод данных в таблицу и ее редактирование». Изменение настройки клавиатуры в Access рассмотрено ниже в этой главе в разделе «Ввод данных в таблицу и ее редактирование».
Перемещение между полями в больших таблицах облегчает раскрывающийся список Перейти к полю (Select Object)
на панели инструментов Формат (Режим таблицы).
Просмотр больших таблиц
Горизонтальная полоса прокрутки позволяет просматривать таблицы с большим количеством столбцов. Однако в ряде случаев нам надо постоянно видеть определенные столбцы, например при просмотре таблицы заказов желательно закрепить столбцы Клиент и Код заказа.
Повторите эту операцию с другим столбцом, если вы хотите постоянно видеть на экране несколько столбцов. Если потребность в постоянном отображении столбца на экране, отпадет, то выберет в меню
Формат (Format) команду Освободить все столбцы (Unfreeze Columns) . Чтобы не загромождать отображение таблицы не "интересующими вас столбцами, перетащите правую границу столбца в области выделения так, чтобы она совпала с левой границей, и нажмите кнопку
Сохранить (Save) на панели инструментов. Столбец будет скрыт. Для отображения на экране скрытых столбцов выберите в меню
Формат (Format) команду Отобразить столбцы (Unhide Columns).
В Office XP был использован новый формат для баз данных, несовместимый со старыми версиями. Поэтому база данных, созданная в Office XP или Office 2003, не будет работать с базами данных, которые созданы в предыдущих версиях. Предусмотрена возможность открытия баз данных, созданных в предыдущих версиях. Если все пользователи, работающие со старой версией, перешли на новую версию, то желательно произвести преобразование форматов, чтобы обеспечить использование новых возможностей.
Рекомендуется создать резервную копию базы данных, подлежащую преобразованию, скопировав файл базы данных (файл MDB) на резервный носитель. После создания резервной копию закройте базу данных, которая будет преобразовываться. Храните копию до тех пор, пока не будет осуществлен окончательный переход к новой базе данных. Перед тем как начать преобразование в другой формат сетевой базы данных Access, расположенной на сервере или в общей папке, убедитесь, что она закрыта всеми пользователями.
В диалоговом окне База данных для преобразования (Database To Convert From) выберите базу данных и нажмите кнопку
Преобразовать (Convert). В диалоговом окне Преобразовать базу данных (Convert Database Into)
введите с клавиатуры новое имя (без расширения .mdb) файла базы данных или укажите другую папку файла базы данных. При использовании другой папки можно оставить старое имя или задать новое.
Создание копий баз ценных предыяуших форматов в новом формате
Процесс создания копий баз данных (реплик), которые могут обмениваться обновляемыми данными или реплицированными формами, отчетами или другими объектами, называется репликацией базы данных. Каждая копия базы данных называется репликой, и каждая реплика содержит общий набор таблиц, запросов, отчетов, форм, макросов и модулей. Каждая реплика может также содержать локальные объекты, которые существуют только в этой реплике. В репликах можно обеспечить синхронизацию изменений, внесенных в данные одной из реплик, что облегчает совместное использование данных и распространение обновленных версий приложений.
Для преобразования набора реплик в новый формат создайте копию текущей основной реплики и поместите копию на другой компьютер или полностью изолируйте ее от остальных элементов набора реплик. Выполните следующую последовательность действий:
откройте базу данных перед созданием реплики; в меню Сервис (Tools) выберите команду Репликация (Replication) и подкоманду Создать реплику (Create Replica); нажмите кнопку Да (Yes) в ответ на вопрос о закрытии базы данных; в окне запроса о создании резервной копии базы данных нажмите кнопку Да (Yes) . (Это диалоговое окно выводится только при преобразовании базы данных в основную реплику), резервная копия будет иметь то же имя и расширение .bak; в диалоговом окне Размещение новой реплики (Location of New Replica) выберите место для размещения новой реплики, нажмите кнопку Приоритет (Priority), введите приоритет реплики и нажмите ОК ; в диалоговом окне Размещение новой реплики (Location of New Replica ) установите флажок Запретить удаление (Prevent deletes) , чтобы пользователи не могли удалять записи из реплики.
При реплицировании базы данных все таблицы, запросы, формы, отчеты, макросы и модули по умолчанию реплицируются вместе с данными.
Синхронизация ценных в наборе реплик
Обмен обновляемыми данными реплик (копий баз данных) называют синхронизацией. Прямая синхронизация позволяет синхронизировать данные в репликах, непосредственно подключенных к локальной сети и доступных в общих сетевых папках. Отметим, что Access допускает синхронизацию без прямых подключений через сервер Интернета.
Приступая к созданию базы данных, необходимо знать ее назначение, какие сведения она должна содержать. Следует определить, из каких она будет состоять таблиц (тем), какие потребуются отчеты, уточнить формы, используемые в настоящий момент для записи данных, и т.п., как они будут взаимосвязаны, какие в таблицах будут поля. Запись таблицы должна полностью описывать объект в соответствии с поставленной задачей.
Для отображения области задач Создание файла в окне Microsoft Access в меню
Файл (File) выберите команду Создать (New) или нажмите одноименную кнопку на панели инструментов. С клавиатуры выбрать команду можно нажатием на клавиши Ctrl+т (Ctrl+N).
Если в разделе Создание (New) щелкнуть ссылку Новая база данных (Blank Database) , то на экране отобразится диалоговое окно
Файл новой базы данных (File New Database) с предложением дать имя новой базе данных dbl, расширение .mdb и сохранить ее в папке Мои документы (My Documents). «1» добавляется по умолчанию к присвоенному имени базе данных. Измените имя базы данных или оставьте как есть и нажмите кнопку Создать (Create) .
Создание базы данных с помощью шаблона
После щелчка ссылки На моем компьютере в области задач Создание файла (New File) открывается диалоговое окно
Создание (New), позволяющее выбрать шаблон создаваемой базы данных (рис. 23.5). В правой части окна вы увидите, как будет выглядеть база данных выделенного шаблона. Однако предварительный просмотр предусмотрен не для всех шаблонов.
В качестве примера, на вкладке Базы данных (Databases) выделим значок Контакты (Contact Management) и нажмем кнопку
ОК . На экране отобразится окно, предлагающее сохранить создаваемую базу данных. После выполнения этой операции появится окно
Создание базы данных (Database Wizard), с сообщением, что база данных «Контакты» будет содержать:
Сведения о контактах (Contact information); Сведения о звонках (Call information).
Рис. 23.5
Шаблоны, предлагаемые для создания базы данных
Нажмите кнопку Далее (Next) . В следующем окне необходимо определить, какие таблицы будут входить в базу данных, и задать их структуру, т.е. выбрать поля (столбцы) из которых будет состоять каждая запись. Например, в списке Таблицы базы данных (Tables in database) выберите Сведения о контактах (Contact information) и установите флажки около тех подлей таблицы, которые будут использоваться (рис. 23.6).
Рис. 23.6
Выбор таблицы базы данных и ее полей
В следующем окне из списка Выберите вид оформления экрана (What style would you like for style database) (рис. 23.7). Выбранный вид отображается в левой части окна.
В следующих окнах Выберите вид оформления отчета на печати и Задайте название базы данных (What would you like the title of the database to be)
(рис. 23.8). Это название будет приведено во всех формах и отчетах. После установки флажка
Добавить рисунок во все отчеты (Yes, I I'd like to include a picture) вы сможете выбрать растровый (bmp, dip) или векторный (wmf, emf) рисунок, который будет помещаться во все отчеты. Для отображения на экране окна Выбор рисунка (Insert Picture) нажмите кнопку Рисунок (Picture).
Рис. 23.7
Выбор вида оформления экрана
Рис. 23.8
Ввод названия базы данных
В последнем окне можно установить флажок Да, запустить базу данных (Yes, start the database)
и нажать кнопку Готово (Finish) . Будет создан новый файл базы данных, а на экране отобразится
Главная кнопочная форма (Main Switchboard) нового приложения (рис. 23.9). Внизу окна Microsoft Access отображено минимизированное окно созданной базы данных. Мастер поместил в новую базу данных различные типы объектов: таблицы, формы, отчеты и т.п. (Более подробно формы рассмотрены в главе 25.)
Назначение кнопок показанной на рисунке главной кнопочной формы:
Ввод/просмотр формы «Контакты» (Enter/View Contacts) — открывает форму Контакты; Ввод/просмотр других сведений (Enter/View Other Information) — открывает кнопочную форму для форм (Reports Switchboard), которая имеет две кнопки: одна открывает форму для добавления записей, другая — возвращает в окно главной кнопочной формы; Просмотр отчетов (Preview Reports) — открывает форму, позволяющую просмотреть и распечатать отчеты; Изменение элементов кнопочной формы (Change Switchboard Items) — позволяет добавить в форму новые страницы или кнопки и изменить их;
Рис. 23.9
Главная кнопочная форма новой базы данных
Выход (Exit this database) закрывает базу данных, с которой вы работали, оставляя на экране окно Microsoft Access.
В качестве примера на рис. 23.10 показана форма к базе данных, отображенная на экране после нажатия кнопки Ввод/просмотр формы контакты (Enter/View Contacts) . Работа с формами рассмотрена в главе 25.
Рис. 23.10
Форма для новой базы данных Контакты, созданная с помощью главной кнопочной формы
При создании таблицы следует руководствоваться следующими принципами:
таблица должна содержать все необходимые сведения; сведения в таблице или между таблицами не должны дублироваться; каждое поле в таблице содержит конкретный факт по теме таблицы; данные следует разбить на наименьшие логические единицы, например, имя, фамилия;
Таблицу можно создать несколькими способами:
1. С помощью мастера таблиц (Table Wizard) .
2. В режиме конструктора таблицы (Table Design).
3. За счет импорта данных из внешних источников.
4. За счет связи с внешней таблицей.
Мастера в Access являются удобным и эффективным средством построения базы данных, таблиц, запросов, форм и т.д. Окно мастера таблицы можно отобразить на экране несколькими способами:
1. В окне базы данных на панели Объекты (Objects) выбрать значок Таблицы (Tables) и дважды щелкнуть значок
Создание таблицы с помощью мастера (Create Table By Using Wizard) (см. рис. 23.2).
2. В окне базы данных на панели инструментов нажать кнопку Создать (New) (см. рис. 23.2) и в диалоговом окне
Новая таблица (New Table) выбрать Мастер таблиц (Table Wizard) (рис. 23.11).
Рис. 23.11
Выбор мастера таблиц в окне Новая таблица
После выбора в окне базы данных на панели Объекты (Objects) значка Таблицы (Tables) и двойного щелчка значка Создание таблицы с помощью мастера (Create Table By Using Wizard) (см. рис. 23.2), на экране отобразится окно мастера таблиц. В этом окне положением переключателя выберите область использования создаваемой таблицы Деловое применение (Business) или Личное применение (Personal) (рис. 23.12). Очевидно, что от области применения базы данных зависит структура таблицы, используемые в ней поля.
Рис. 23.12
Выбор полей создаваемой таблицы
В списке Образцы таблиц (Sample Tables) выделите, какого типа таблица будет создана, в списке
Образцы полей (Sample Fields) выберите, какие поля будет иметь таблица.
Кнопки мастера таблиц, расположенные между списками имеют следующее назначение:
< — удаление выделенного поля таблицы; << — удаление всех полей таблицы; > — ввод выделенного поля таблицы; >> — ввод всех полей таблицы.
Выбранные поля переместятся в список Поля новой таблицы (Fields in my new table). Переместить поле из одного списка другой можно не только кнопками, но и двойным щелчком мыши.
При желании вы можете нажать кнопку Переименовать поле (Rename Field) и ввести новое имя поля в появившееся на экране окно. В одну таблицу можно последовательно ввести поля, предназначенные как для делового, так и для личного применения и из разных образцов таблиц. Имена полей не должны повторяться. Если среди образцов полей нет нужного вам поля, то его можно создать.
Нажмите кнопку Далее (Next) и в следующем окне положением переключателя выберите способ определения ключа (рис. 23.13):
Microsoft Access автоматически определяет ключ (Yes set a primary key for me) — ключевое поле задается автоматически. Кроме выбранных вами полей таблица будет содержать поле Счетчик (AutoNumber). Пользователь определяет ключ самостоятельно (No, I'll set a primary key) — ключевое поле выбирается пользователем.
Рис. 23.13
Задание имени таблицы и выбор способа определения ключа
Назначение ключевого поля рассмотрено ниже.
Введите имя таблицы или согласитесь с тем именем, которое предлагается автоматически в поле
Задайте имя для новой таблицы (What Do You Want To name Your Table?) .
Хотя имена полей, элементов управления и объектов могут содержать пробелы и знаки препинания, их не рекомендуется включать в имена полей, особенно, если предполагается использовать данные совместно с другими программами. При некоторых обстоятельствах пробелы могут вызвать конфликты в программах Visual Basic. В качестве разделителей слов можно использовать прописные буквы или символ подчеркивания, например, имя поля Дата рождения можно записать как Дата рождения.
Затем мастер определяет совпадающие поля в нескольких таблицах. В последнем окне мастера создания таблицы задайте положение переключателя, чтобы определить дальнейшие действия по созданию таблицы:
Изменить структуру таблицы — предполагает внесение в таблицу новых полей. Ввести данные непосредственно в таблицу — используется, если намечен ввод данных в таблицу. Ввести данных в таблицу с помощью форм, создаваемых мастером — создает форму для ввода данных.
На любом этапе создания таблицы после нажатия кнопки Готово (Finish) откроется новая таблица.
Ключевое поле
Одно или несколько полей (столбцов), комбинация значений которых однозначно определяет каждую запись в таблице, называется первичным ключом. Ключевое поле позволяет избежать возникновения ошибок при вводе данных, так как они в этом поле не могут повторяться. В качестве ключевого поля можно использовать идентификационный номер, присваиваемый гражданам налоговой службой, серия и номер паспорта сотрудника. Ключевое поле может содержать число или последовательность символов, позволяющих идентифицировать каждую запись и избежать дублирования. Ключевое поле используется для быстрого поиска и связи данных из разных таблиц при помощи запросов, форм и отчетов.
Первичный ключ не может содержать пустых значений (Null ) и всегда должен иметь уникальный индекс. В любой таблице желательно иметь одно или несколько ключевых полей. Значение
Null означает, что в поле нет никаких данных, например, потому, что они неизвестны. Значение
Null нельзя приравнивать к строке, содержащей пробелы.
В специальном поле Счетчик (AutoNumber) каждой записи присваивается уникальный для этого поля номер, который автоматически увеличивается с каждой новой записью (см. ниже раздел «Создание или изменение ключевого поля»). Его можно использовать для нумерации записей по порядку.
Составной ключ (composite primary key) представляет собой комбинацию из нескольких полей. Он используется в тех случаях, когда невозможно гарантировать уникальность записи с помощью одного поля. Чаще всего такая ситуация возникает для таблицы, используемой для связывания двух таблиц в отношении «многие ко многим» (см. ниже раздел «Связи между таблицами в базе данных»).
Данные ключевого поля используются для индексирования таблицы, что ускоряет поиск и обработку информации. Если не задана сортировка таблицы, то записи располагаются по значению ключа. При включении новых записей или удалении старых записи таблицы не перемещаются, изменяется только местоположение каждого индекса. Первичный ключ используется для связывания одной таблицы с другой.
Если поставить переключатель в положение Пользователь определяет ключ самостоятельно (No, I'll set a primary key) (рис. 23.13), то в следующем окне в раскрывающемся списке
Выберите поле с уникальными для каждой записи данными (What field -will hold data that is unique for each record?)
укажите ключевое поле (рис. 23.14). Положение переключателя в этом окне определяет, какие данные будут использоваться в ключевом поле:
Последовательные числа, автоматически присваиваемые каждой новой записи (Consecutive number Microsoft Access assigns automatically to new record) — Access вводит возрастающие с каждой записью числа автоматически. Числа, вводимые пользователем при добавлении новых записей (Numbers I enter when I add new records) — пользователь вводит для каждой записи только числовые значения. Сочетание чисел и букв, вводимое пользователем при добавлении новых записей (Numbers and/or letters I enter when I add new records) — пользователь вводит для каждой записи как числовые, так и символьные значения.
Рис. 23.14
Выбор ключевого поля и используемых в нем данных
В окне базы данных в режиме конструктора таблиц вместо панели инструментов базы данных отображена панель инструментов конструктора таблиц.
Для перемещения между полями используйте клавиши управления курсором: стрелка-вправо, стрелка-влево и т.д. или клавиши Tab, Shift+Tab.
Свойства полей таблицы
Свойства поля определяют параметры поля: размер, тип данных и т.д. Свойства полей таблицы задаются в режиме конструктора таблиц. В верхней части окна (рис. 23.15) приводится список полей, в котором обязательно указывается
Имя поля (Field Name) и Тип данных (Data Type) . Информация, введенная в поле
Описание (Description) , будет отображаться в строке состояния таблицы при выборе поля. Описание не должно превышать 255 символов. Это свойство можно не задавать.
Рис. 23.15
Выбор типа данных для поля
Тип данных (Data Type) определяет, какую информацию можно ввести в поле. В раскрывающемся списке ячейки предусмотрены следующие типы данных:
Текстовый (Text) — используется для полей, содержащих комбинации символов и цифр (не более 255 символов). По умолчанию полям присваивается этот тип данных, так как он получил наиболее широкое распространение. , Поле Memo (Memo) — предназначено для ввода букв, цифр и знаков препинания (длинные тексты и комментарии — не более 65535 символов). Поле этого типа не может быть ключевым. Числовой (Number) — содержит только цифровую информацию (за исключением денежных величин), которую в дальнейшем можно использовать для вычислений. Денежный (Currency) — предназначен для ввода денежных величин. Стандартный шаблон для полей этого типа предусматривает использование двух десятичных знаков, т.е. учет копеек. Максимальное число отображаемых десятичных знаков не превышает четырех. Он используется для предотвращения ошибок при округлении. Дата/время (Date/Time) — содержит информацию о дате и времени. Дата и время хранятся в виде числа, целая часть которого представляет дату, дробная — время. Дата и время могут выводиться в различных форматах. Счетчик (AutoNumber) — имеет формат длинного целого (Long Integer) . При добавлении новой записи значение этому полю присваиваются автоматически. Это поле можно использовать в качестве ключевого. Логический (Yes/No) — применяется для полей содержащих значения Да (Yes) или Нет (No). Например, в таком поле можно указать имеет ли данный сотрудник детей или нет. В логические поля можно записать число О, которое интерпретируется как Ложь (False) или 1 — подразумевается Истина (True) . Логическое поле не может быть ключевым, но по нему можно индексировать таблицу. Поле объекта OLE (OLE Object) — содержит объекты из других программ (растровые и векторные рисунки, аудио и видео файлы, электронные таблицы и т.д.). Это поле не может быть ключевым или индексным. Гиперссылка (Hyperlink) — предназначено для хранения адреса веб-страницы, расположенной в Интернете, интранете, локальной сети или на автономном компьютере. После щелчка мышью на этом поле автоматически запускается обозреватель. Гипрессылки позволяют выполнять переходы между объектами Microsoft Access без помощи программирования. Для создания ссылки, открывающей объект Access, введите имя объекта в поле гиперссылки. Мастер подстановок (Lookup Wizard) — загружает мастера подстановок и выводит комбинированное окно, позволяющее выбрать из списка требуемое значение, например, можно выбрать поле из другой базы данных.
Панель свойств содержит ряд дополнительных свойств поля, Приведем некоторые из них:
Размер поля (Field Size) — для текстового поля определяет максимальное число символов, которое может быть введено в (не более 255). Для числовых полей выбирается длинное целое (Long Integer), целое (Integer ) и т.п. Чем шире поле, тем труднее пользоваться таблицей, так как она может не помещаться на экране. Однако поле, имеющее слишком маленький размер, может не вместить требуемую информацию. У некоторых типов полей: Дата/время (Date/Time) , Денежный (Currency), Мемо (MEMO), Поле объекта OLE (OLE Object) этого свойство отсутствует. Формат поля (Format) — позволяет изменить отображение данных на экране или при печати, например, длинный формат даты (Long Date) отображает: Вторник, 18 декабря 2001 г., короткий (Short Date) — 18.12.2001. Формат выбирается из раскрывающегося списка. По умолчанию он определяется региональными настройками, сделанными в окне Панель управления операционной системы. У полей типа Поле объекта OLE (OLE Object) это свойство отсутствует. Новые значения (New Value) — определяет способ вычисления нового значения для добавляемой в таблицу записи. Это свойство есть только у полей Счетчик (AutoNumber) . Из раскрывающегося списка выбирается значение или Случайные (Random). При выборе значения Последовательные (Increment) новое значение поля увеличивается на 1. Маска ввода (Input Mask) — определяет, как будут вводиться и редактироваться данные. С ее помощью можно задать, какой тип символов (буква или цифра) будет вводиться в поле. Маску ввода можно создать с помощью мастера, запускаемого нажатием кнопки с тремя точками «», которая отображается в конце строки после установки в ней указателя мыши. Мастер предлагает список масок, используемых при вводе времени, номера телефона, индексов и т.п. Число десятинных знаков (Decimal'Places) — используется для числовых полей. Можно выбрать из раскрывающегося списка значение Авто или определенное значение. Число десятичных знаков можно ввести вручную. Подпись (Caption) — позволяет в режиме таблицы выводить в качестве заголовка надпись, приведенную в данной строке. Подпись может содержать любые символы Значение по умолчанию (Default Value) — предусматривает автоматический ввод определенного значения, например, если почти все представленные в таблице компьютеры имеют процессор Pentium, то в столбце Процессор можно предусмотреть ввод по умолчанию этого названия. Условие на значение (Validation Rule) — предусматривает ввод условия, которое будет проверяться каждый раз после изменения значения поля. Сообщение об ошибке (Validation Text ) — появляется в строке состояния при вводе в таблицу значения не соответствующего условию проверки. Обязательное поле (Required) — после ввода значения Да (Yes) для этого свойства, все записи таблицы в указанном поле должны быть заполненными. Если указанное поле не будет заполнено, Access отобразит на экране соответствующее предупреждение. Пустые строки (Allow Zero Length) — поле должно содержать хотя бы один символ, если для него установлено значение Да (Yes) . Это свойство предусмотрено только для тестовых, MEMO полей и гиперссылок. Индексированное поле (Indexed) — определяет индекс, создаваемый по одному полю, что ускоряет поиск значений в этом поле. Если в этом поле часто будет выполняться поиск значений, то в раскрывающемся списке значений свойства выбирается Да (Совпадения допускаются) (Yes (Duplicates OK)). Если две записи не могут иметь одинаковое значение для данного поля, то устанавливается значение Да (Совпадения не допускаются) (Yes (No Duplicates)) . Значение Нет (No) удаляет значение индекса, кроме единственного ключевого поля. Нельзя индексировать таблицы по следующим полям: Мемо (MEMO), Поле объекта OLE (OLE Object) и Гиперссылка (Hyperlink).
На вкладке Подстановка (Lookup) свойства поля может выбираться Тип элемента управления
(Display Control) , который влияет на отображение данных при вводе. Например, если у вас тип данных:
Текстовый (Text) , то вы можете отобразить его как Поле (Text Box), Список (List Box)
или Поле со списком (Combo Box) (рис. 23.16).
Рис. 23.16
Вкладка Подстановка свойств поля
Свойства таблицы
Свойства таблицы позволяют более полно описать таблицу, но их можно не вводить. Чтобы задать свойства таблицы, отобразите ее в режиме конструктора и нажмите на панели инструментов кнопку
Свойства (Properties) или нажмите клавиши Alt+Enter.
Краткое описание свойств таблицы (рис. 23.17) дано ниже:
Описание (Description) — используется для пояснений, касающихся назначения таблицы; Условие на значение (Validation Rule) — позволяет задать условие для проверки правильности вводимых в таблицу данных. Условие относится к таблице в целом, а не к конкретному полю; Сообщение об ошибке (Validation Text) — служит для ввода сообщения, которое будет отображаться на экране при вводе данных, не соответствующих условию на значение; Фильтр (Filter) — содержит фильтры, налагаемые на таблицу после ее открытия. Фильтры могут ограничивать количество записей согласно критериям, заданным пользователем; Порядок сортировки (Order by) — задает порядок сортировки таблицы после ее открытия; Имя подтаблицы (Subdatasheets Name) — определяет, надо ли отображать в подтаблицах данные в связанных записях и как их отображать. По умолчанию установлено значение Авто (Auto), позволяющее автоматически добавлять вложенные таблицы для связанных записей. Значение Нет (None) отключает подтаблицы;
Рис. 23.17
Свойства таблицы
Подчиненные поля (Link Child Fields) — определяет имя связанного поля подчиненной таблицы, если задано свойство Имя подтаблицы. Можно не указывать 'значение этого свойства, если установлено значение Авто для свойства Имя подтаблицы; Основные поля (Master Fields) — определяет для таблицы, стоящей по иерархии выше рассматриваемой, имя связующего поля, если задано значение Имя подтаблицы; Высота подтаблицы (Subdatasheet Height) — ограничивает максимальную высоту вложенной таблицы, если задано значение для свойства Имя подтаблицы; Развернутая подтаблица (Subdatasheet Expanded) — задает начальное отображение вложенной таблицы, если задано значение для свойства Имя подтаблицы. После установки значения Да (Yes) таблица будет открываться со всеми открытыми вложенными таблицами; Ориентация (Orientation) — может быть Слева направо (Left-to-Right) или Справа налево (Right-to-left) .
Для создания в таблице ключевого поля типа Счетчик в режиме конструктора выполните следующие действия:
выберите в столбце Тип данных (Data Type) значение Счетчик (AutoNum-ber); на вкладке Общие в строке Новые значения (New Value) задайте Последовательные (Increment); выберите команду Ключевое поле (Primary Key) в контекстном меню, поcле щелчка правой кнопкой мыши поля или нажмите кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц .
Другие способы создания ключевого поля в готовой таблице в режиме конструктора:
установить в поле курсор и выбрать в меню Правка (Edit) команду Ключевое поле (Primary Key); выделить одно или несколько полей, удерживая нажатой клавишу Ctrl, и нажать кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц. Слева от каждого ключевого поля появится изображение ключа.
Если вы забудете создать ключевое поле, то Access напомнит об этом окном с соответствующим предупреждением (рис. 23.18).
Рис. 23.18
Окно,
предупреждающее, что в создаваемой таблице ключевые поля не заданы
Индексы используются для ускорения поиска и сортировки данных. При поиске записи СУБД ищет сначала нужное значение в индексе, а затем отбирает записи по ссылкам. Различают простые и составные индексы. Простой индекс создаются по одному столбцу, составные — по нескольким. Например, простой индекс можно построить по столбцу Фамилия, составной — по столбцам Фамилия, Имя, Отчество.
Недостаток использования индексов — после добавления или удаления записей следует обновить индекс. При большом количестве индексов это может привести к замедлению работы.
Индексировать можно любы? поля, кроме полей типа Мемо, Гиперссылка и Поле объекта
OLE .
Для отображения на экране таблицы в окне базы данных выделите имя таблицы в списке и выберите команду Открыть (Open) в меню
Файл (File) или нажмите кнопку Открыть (Open) на панели инструментов.
Щелкните ячейку, в которую необходимо ввести данные. Введите данные и нажмите клавиши Enter или Tab. Для перехода к пустой записи нажмите клавиши
Ctrl + (символ «плюс») или нажмите кнопку перехода по записям Новая запись (New Record)
(см. рис. 23.4)
Изменение значений полей, добавление или удаление данных и поиск данных выполняется в режиме таблицы. Ввод новых данных в выделенное поле автоматически заменяет старые. Количество вводимых символов зависит от размера поля, а не от ширины столбца. Текст не может быть разорван внутри ячейки. В одной ячейке нельзя отобразить несколько строк текста.
Чтобы ввести одни и те же данные в несколько ячеек, выделите ячейки, наберите данные, а затем нажмите Ctrl+Enter. Для удаления данных в выделенном поле нажмите клавишу
Delete .
Например, чтобы ввести шифр компонента 06-02-11 в качестве текста, а не значения времени, введите 06-02-П. Чтобы изменить формат ячеек, выберите их и на панели инструментов листа щелкните кнопку Панель свойств.
Хранящаяся в базе данных информация может быть по-разному отображена на экране. Заданный для ячейки формат чисел определяет, каким образом отображаются числа в этой ячейке. При изменении формата числа, хранимое значение для числа не изменяется. В разделе
Формат (Format) на панели свойств таблицы можно выбрать следующие форматы чисел:
Основной (General Number) — отображает число с выравниванием по правому краю без разделителя разрядов. Перед отрицательным числом ставится знак минус. Отображает до 11 символов, включая десятичные точки или символ «Е» и «+». Число, содержащее более 11 цифр перед разделителем целой и дробной части, отображается в экспоненциальном формате. Текст выравнивается по левому краю, Денежный (Currency) — используется для вывода денежных значений. Евро (Euro) — используется для вывода денежных значений, исчисляемых в евро. Фиксированный (Fixed) — Отображает число с двумя десятичными знаками. Например: 168,30. С разделителями разделов (Standard) — Отображает число с разделителем групп разрядов и двумя цифрами справа от десятичного разделителя. В качестве разделителя групп разрядов обычно используется точка или запятая в зависимости от национальных стандартов, заданных с помощью панели управления Windows в разделе «Язык и стандарты». Пример использования точки, соответствующий национальным стандартам английского языка США: 12.35. Запятая может использоваться в качестве разделителя групп разрядов: 1,800.00. Процентный (Percent) — Отображает число, умноженное на 100, с двумя десятичными знаками и знаком процента. Например, число 0,4914 отображается как 49,14%. Экспоненциальный (Scientific) — Отображает числа в экспоненциальном представлении. Этот формат целесообразно использовать для чисел, содержащих более 11 цифр. Пример числа в экспоненциальной форме: 2.35E+1Q.
Если ввести $2.45, автоматически будет применен денежный формат. Знак евро помещается перед числом или после числа в соответствии с национальными стандартами для денежных единиц, установленным на панели управления Windows. Чтобы ввести знак евро € , убедитесь, что включен режим Num Lock клавиатуры, а затем наберите Alt+0128 на цифровой клавиатуре.
Форматы даты
Полный формат даты отображает число как дату и/или время. Различают следующие форматы даты:
Полный формат даты (General Date) — в ячейке отображается дата с указанием числа, месяца, года и время, например, 20.07.2001 18:20:23. Длинный формат даты (Long Date) — отображает дату с указанием числа, месяца, года. Для года отводятся четыре цифры, например, 20 июля 2001 г. Средний формат даты (Medium Date) — отображает дату, разделяя месяц и число в соответствии с национальными стандартами, принятыми в Windows. Для года отводятся две цифры. Пример: 20-янв-01. Краткий формат даты (Short Date) — отображает дату, используя краткий формат даты, заданный в разделе «Язык и стандарты» панели управления Windows, например: 25.01. 2001.
Для вставки текущей даты в режимах таблицы и формы нажмите клавиши Ctrl+; (Ctrl+$).
Форматы времени
Различают следующие форматы времени:
Длинный формат времени (Long Time) — отображает время, используя длинный формат времени, заданный в разделе «Язык и стандарты» панели управления Windows с указанием часов, минут и секунд, например: 8:45:36.
Средний формат времени (Medium Time) — приводит время суток без указания секунд. При вводе времени в 12-часовом формате, после значения времени поставьте пробел и укажите AM или РМ; например, РМ. Пример: 8:45 РМ.
Краткий формат времени (Short Time) — отображает время суток в 24-часовом формате, без указания секунд. Пример: 20:45.
Для выполнения некоторых операций редактирования записи: копирования, перемещения, удаления, ее необходимо выделить. В режиме таблицы запись можно выделить следующими способами:
1. щелкнуть область выделения строки (см. рис.23.3);
2. переместить курсор в запись и выбрать в меню Правка (Edit) команду
Выделить запись (Select Record) ;
3. переместить курсор в запись и нажать клавиши Shift+Пробел. Если надо выделить несколько записей с клавиатуры нажмите клавиши Shift+Пробел, а затем Shift+стрелка-вверх или Shift+стрелка-вниз.
Для выделения всех записей выберите в меню Правка (Edit) команду Выделить все записи (Select All Records) или нажмите клавиши Ctrl+A. Для выделения поля поставьте в него курсор и нажмите клавишу F2. Повторное нажатие клавиши F2 отменит выделение поля.
Для выделения поля в режиме таблицы щелкните поле в области выделения поля (ем. рис. 23.3). Для выделения поля в режиме конструктора щелкните область выделения поля таблицы. Для выделения нескольких полей в режиме конструктора щелкните область выделения для каждого поля таблицы, удерживая нажатой клавишу Ctrl.
При редактировании записи в области ее выделения появляется изображение
карандаша. Для возврата в первоначальное состояние поля, в котором находится курсор, после ввода в него символов выберите в меню
Правка (Edit) команду Отменить ввод (Undo Typing) или нажмите клавишу ESC. Чтобы вернуть всю запись в первоначальное состояние, оставьте курсор в этой записи и выберите в меню
Правка (Edit) команду Восстановить текущее поле или запись (Undo Current Field/Record) или перейдите в другое поле и выберите в меню
Правка (Edit) команду Восстановить запись (Undo Saved Record).
Копирование и перемещение записи выполняется с использованием команд меню Правка (Edit) так же, как и в других программах (см. например, главу 4, раздел «Перемещение и копирование фрагментов документа»).
Удалить запись можно следующими способами:
1. выделите запись и выберите в Правка (Edit) команду Удалить (Delete).
2. выделите запись и нажмите клавишу Delete ;
3. нажмите кнопку Удалить запись (Delete Record) на панели инструментов;
4. поместите курсор в любое из полей записи и нажмите клавиши Ctr + — (минус).
Команда Строки (Rows) в меню Вставка (Insert) в режиме конструктора позволяет вставить новую строку над той строкой, где размещается курсор. Команду дублирует кнопка
Добавить строки (Insert Rows) на панели инструментов.
В ряде случаев в процессе работы с таблицей обнаруживается, что следует изменить ее структуру: нужно ввести новые поля, переименовать удалить или изменить тип существующих, изменить имя ключевого поля. Изменение структуры таблицы можно выполнять в режиме таблицы или в режиме конструктора. Рекомендуется, сделать резервную копию таблицы до изменения ее структуры с тем, чтобы избежать потери части данных.
Изменение структуры таблицы в режиме таблицы
Чтобы добавить поле, установить курсор в поле, расположенное слева от места вставки, и выберите в меню
Вставка (Insert) команду Столбец (Column) . Для удаления поля выделите ячейку в поле и выберите в меню
Правка (Edit) команду Удалить столбец (Delete Column) .
Для изменения имени поля дважды щелкните область выделения этого поля и введите новый текст или установите курсор в поле и выберите в меню
Формат (Format) команду Переименовать столбец (Rename column).
Изменение структуры таблицы в режиме конструктора
Если вы хотите изменить последовательность полей таблицы, ввести новые или отредактировать имена, то в окне базы данных на вертикально расположенной панели
Объекты (Objects) выберите значок Таблицы (Tables) , выделите имя редактируемой таблицы и перейдите в режим конструктора, выбрав в меню Вид (View)
команду Конструктор (Design View) .
Как и таблицы созданные в других программах, таблицы Microsoft Access можно форматировать: изменять ширину поле, высоту строк, применять различные шрифты. Методы форматирования те же, что и в Microsoft Word или Microsoft Excel и подробно рассмотрены в главах 7 и 15. В качестве примера укажем, что для изменения ширины столбца, поставьте курсор в этот столбец и выберите в меню
Формат (Format) команду Ширина столбца (Column Width) . На экране отобразится одноименное окно (рис. 23.19), в котором указывается ширина столбца. Стандартная ширина столбца в американской версии равна 15,6667, в русской версии — 15,4111. Кнопка
По ширине данных (Best Fit) подгонит ширину поля по самому длинному значению поля.
Рис. 23.19
Окно, используемое для форматирования столбца по ширине
Сохранение таблицы
Для сохранения созданной таблицы выберите в меню Файл (File) команду Сохранить (Save) или нажмите клавиши Ctrl+S. На экране отобразится окно
Сохранение (Save As) (рис. 23.20). В диалоговое окно Сохранение (Save As)
в поле Имя таблицы (Table Name) введите ее название. После того как вы закончите создание таблицы, закройте окно конструктора таблицы.
Рис. 23.20
Окно, позволяющее задать имя таблице
Современные базы данных обычно содержат большое количество взаимосвязанных таблиц, что позволяет избежать повторов. Например, крупные фирмы могут хранить сведения о магазинах в одной таблице, номенклатуру товаров, полученных этими магазинами в текущем месяце в другой таблице, а сведения об оптовых покупателях в третьей таблице. Access позволяет работать одновременно с несколькими таблицами, каждая из которых должна содержать записи, посвященные определенной теме. Связь между ними устанавливается по общим для нескольких таблиц полям, например, номера магазинов, через которые осуществляется реализация товара. Желательно, чтобы в одной из таблиц общее поле было ключевым. Если таблицы взаимосвязаны, то изменения, выполненные в записи одной таблицы, могут влиять на записи в другой таблице.
Для сохранения полноты и целостности данных Access накладывает определенные ограничения на ввод и редактирование данных, например, невозможно удалить запись из одной таблицы, если существуют связанные с ней записи в других таблицах.
Вилы связей между таблицами
Реляционная база данных может содержать большое количество взаимосвязанных таблиц. Связи устанавливается между двумя общими полями (столбцами) двух таблиц. Связываемые поля могут иметь разные имена, но должны иметь одинаковый тип данных за исключением случая, когда поле первичного ключа является полем типа Счетчик. Поле счетчика связывается с числовым полем, если значения свойства
Размер поля (FieldSize) обоих полей совпадают. Например, если свойство обоих полей имеет значение Длинное целое. Даже в том случае, когда связываются поля типа «Числовой», их свойства
Размер поля (FieldSize) должны иметь одинаковые значения.
Задав связи между таблицами, можно создать запросы, формы и отчеты для отображения сведений, представленных в нескольких таблицах. Между двумя таблицами могут существовать следующие связи:
один к одному — при таком типе связи одной записи в первой таблице соответствует только одна запись в другой таблице. В этом случае следует проверить возможность размещения всех записей в одной таблице. Однако в ряде случаев можно использовать несколько более простых таблиц. Соответствие записей устанавливается по полю, которое является первичным ключом в первой таблице, и полю, называемым внешним ключом другой таблицы; один ко многим — в этом случае запись одной таблицы может иметь несколько согласованных с ней записей в другой таблице. При этом каждая запись во второй таблице согласуется только с одной записью в первой таблице. Например, каждый покупатель может купить несколько товаров, но каждый проданный товар имеет только одного покупателя. Поле, содержащее первичный ключ новой таблицы, связывается с внешним ключом старой. Значения в поле с внешним ключом могут повторяться; многие к одному — любой записи таблицы, связь с которой мы рассматриваем, могут соответствовать несколько записей новой таблицы, но не наоборот. Фактически это отношение один ко многим, рассматриваемое, в обратном порядке. В этом случае ключевое поле новой таблицы является внешним ключом; многие ко многим — каждой записи из одной таблицы может соответствовать любое количество записей в другой таблице и наоборот. Например, каждый человек может звонить с нескольких телефонов. С другой стороны некоторыми телефонами могут пользоваться несколько человек. В этом случае поля, по которым устанавливается связь, являются внешними ключами. Они могут содержать повторяющиеся значения.
Математически такие связи можно записать 1:1, 1:т, т:1 и т:п. Более широкое распространение получили связи один ко многим, Например, один и тот же товар со склада может вывозиться в разные магазины, и одной записи в таблице Склад будет соответствовать несколько записей в таблице Магазины. Таблица Склад будет главной таблицей, а Магазины — связанной. В главной таблице для описания объекта используется одна запись. Избежать дублирования записей в этой таблице позволяет первичный ключ.
Две таблицы связывает общее поле, что позволяет объединить данные из двух таблиц для просмотра, редактирования или печати. Записи из таблиц, связанных с текущей таблицей, можно отображать в подтаблицах в пределах основной таблицы.
Связанная таблица — это таблица, которая сохраняется в файле, не принадлежащем открытой базе данных, однако, является доступной из Microsoft Access. Пользователь имеет возможность добавлять, удалять и изменять записи в связанной таблице, но не может изменять ее структуру. Для обеспечения целостности данных нельзя произвольно удалять или изменять связанные записи. Например, в таблицу Магазины можно включать только те записи, которые содержат сведения о товарах, поступивших со склада.
Использование ключевых полей для задания связи между таблицами
В большинстве случаев ключевое поле одной таблицы связывают с совпадающим полем (внешним ключом) другой таблицы. Внешний ключ — это одно или несколько полей (столбцов) в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице. Поле внешнего ключа определяет способ связывания таблиц — содержимое поля внешнего ключа должно совпадать с содержимым ключевого поля, хотя имена полей могут при этом не совпадать. Например, для связывания сотрудников с заказами, за которые они отвечают, следует создать между таблицами «Сотрудники» и «Заказы» связь с помощью полей «КодСотрудника». Таблица «Товары» в демонстрационной базе данных «Борей» содержит поле внешнего ключа «КодПоставщика», которое ссылается на ключевое поле «КодПоставщика» в таблице «Поставщики».
Внешний ключ может иметь значение Null; если внешний ключ состоит из нескольких полей, и хотя бы одно из них имеет значение Null, то все поля должны иметь значение Null.
Для установления отношения многие-ко-многим необходимо создать третью (связующую) таблицу и добавить в нее ключевые поля из обеих таблиц. Например, в демонстрационной базе данных Борей имеются таблицы Заказы и Товары. Заказ может включать несколько товаров, а товар входить в несколько заказов. Необходимо создать связующую таблицу (таблица Заказано, которая имеет связь с отношением «один-ко-многим» с каждой из таблиц Заказы и Товары.
Схема данных
Для управления базой данных используются связи между таблицами.
Если между таблицами базы данных связи не были заданы, откроется диалоговое окно
Добавление таблицы (Show Table). Выберите в окне требуемые таблицы и запросы и нажмите кнопку
Добавить (Add). Они отобразятся в окне Схема данных (Relationships) .
На рис. 23.21 показаны линии связи между таблицами учебной базы данных, поставляемой с Access. В каждом небольшом окне отображены списки полей одной из таблиц. Ключевые поля выделено жирным шрифтом. Таблицы, не
Рис. 23.21
Линии связи между таблицами базы данных
имеющие первичных ключей, невозможно связать и в окне Схема данных они не отображаются.
Символы на линиях связи показывают тип связи. Символ бесконечности используется для обозначения «много», и если мы видим на одной линии связи символы единицы и бесконечности, то между таблицами существует связь один ко многим. Можно связывать поля с разными именами, а также запросы с таблицами или запросами (см. главу 24).
Кнопки панели инструментов Отобразить прямые связи (Show Direct Relationships) и
Отобразить все (Show All Relationships) позволяют показать схему прямых связей только одной таблицы или схемы связей всех таблиц в базе данных.
Рис. 23.22
Диалоговое окно Добавление таблицы
Установление связи между таблицами
Если вы хотите ввести новую таблицу в окно Схема данных (Relationships) (см. рис. 23.21) и установить связь между таблицами, то выполните следующие действия:
закройте все таблицы и формы; в окне базы данных выберите команду Схема данных (Relationships) в меню Сервис (Tools) или нажмите одноименную кнопку на панели инструментов; если в окне Схема данных (Relationships) будет представлена какая-либо информация, то нажмите сначала кнопку Очистить макет (Clear Layout), а затем кнопку Да (Yes) , чтобы продолжить выполнение намеченной операции; в меню Связи (Relationships) выберите команду Добавить таблицу (Show Table) или нажмите одноименную кнопку на панели инструментов; в диалоговом окне Добавление таблицы (Show Table) на вкладке Таблицы (Tables) выделите требуемую таблицу и нажмите кнопку Добавить (Add) или дважды щелкните имя этой таблицы (рис. 23.22); в окне Схема данных (Relationships) отобразится список полей выбранной таблицы с выделенным полем ключа; в диалоговом окне Добавление таблицы (Show Table) выделите таблицу, с которой устанавливается взаимосвязь и нажмите кнопку Добавить (Add); в окне Схема данных (Relationships) перетащите ключевое поле из списка главной таблицы в список связанной таблицы.
Для задания связи можно перетащить имя поля из списка полей таблицы и поместить его в другой список. При задании связи «один ко многим» первичный ключ первой таблицы перетаскивают в такое же поле во второй таблице.
Изменение связи между таблицами
Для изменения связи между таблицами, выберите в меню Связи (Relationships) команду
Изменить связь (Edit Relationship) . В диалоговом окне Изменение связей (Edit Relationship) нажмите кнопку
Новое (Create) , чтобы создать связь (рис. 23.23).
Рис. 23.23
Изменение связей между таблицами
Чтобы изменить существующую связь, дважды щелкните ее мышью.
Чтобы связать совпадающие поля в главной и связанной таблицах, щелкните, пустую верхнюю ячейку в столбце
Таблица/Запрос (Table/Query). В этой ячейке появится кнопка со стрелкой, открывающая список. Выделите в списке совпадающее поле. Затем щелкните, пустую верхнюю ячейку в столбце
Связанной таблица/запрос (Related Table/Query) и выберите имя требуемого поля.
После того, как связь между таблицами установлена, их поля можно объединить в запросе, форме или отчете.
Целостность данных
Чтобы поддерживать связи между записями в связанных таблицах, и обеспечить защиту от случайного удаления или, изменения связанных данных используется ряд правил, который обеспечивает целостность данных. Целостность данных позволяет предотвратить появление несвязанных записей. Обе взаимосвязанные таблицы должны принадлежать одной базе данных Access.
Связанные поля должны иметь один тип данных. Два исключения сделаны для поля счетчика: оно может быть связано с числовым полем, свойство которого
Размер поля (FieldSize) имеет значение Длинное целое. Кроме того, поле счетчика, свойство
Размер поля (FieldSize) которого имеет значение Код репликации, можно связать с числовым полем, если свойство
Размер поля (FieldSize) имеет значение Код репликации.
Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.
Для поддержания целостности данных в связанных таблицах при обновлении или удалении записи в главной таблице, обеспечивается каскадное обновление или удаление всех связанных записей в подчиненной таблице или таблицах.
При внесении изменений в базу данных, ее файл становится фрагментированным, при удалении записей из таблиц размер файла не уменьшается, Поэтому после внесения значительных изменений в базу данных рекомендуется выбрать в меню
Сервис (Tools) команду Служебные программы (Database Utilities), Сжать и восстановить базу данных (Compact and Repair Database ). После сжатия база данных будет записана на диск под тем же именем.
Экспорт таблиц в другие приложения
Чтобы открыть таблицу в приложении Microsoft Excel без скрытых столбцов и сохранив элементы форматирования, выберите в окне базы данных после открытия таблицы в меню Сервис (Tools)
команды Связи с Office (Office Links) и Публикация в Microsoft Office Word (Publish it with Microsoft Office Word) . Команды
Связи с Office (Office Links) и Слияние с MS Word (Merge it with MS
Word) из этого же меню позволяет данные таблицы с документом Word и используется для печати писем и почтовых наклеек.
При пересылке таблицы по электронной почте не сохраняется форматирование таблицы, и скрытые столбцы не пересылаются. Для пересылки файла используется формат Excel BIFF.
Импорт данных в формате
Чтобы выполнить импорт таблиц из файла XML, выполните следующие действия:
Откройте базу данных, в которую будут импортироваться данные. Выберите в меню Файл (File) команды Внешние данные (Get External Data), Импорт (Import). В диалоговом окне Импорт (Import) в раскрывающемся списке Тип файлов (Files of Туре) выберите элемент XML. В поле Папка (Look in) выберите папку содержащую требуемый документ, выделите его и нажмите кнопку Импорт (Import).
Упражнение
1. Создайте таблицу с помощью мастера таблиц (Table Wizard). Выберите в окне базы данных на панели Объекты (Objects) значок
Таблицы (Tables) и дважды щелкните значок Создание таблицы с помощью мастера (Create Table By Using Wizard) (см. рис. 23.2). Следуйте указаниям мастера таблиц.
2. Создайте таблицу в режиме конструктора. В окне базы данных на панели Объекты (Objects)
выберите значок Таблицы (Tables) и дважды щелкните значок Создание таблицы в режиме конструктора (Create table in design view) ( см. рис. 23.2). Введите
имена полей (Field Name) , задайте их тип данных (Data Type). Задайте свойства полей таблицы.
3. Создайте базу данных Кадры, содержащую следующую информацию: фамилия, имя, отчество сотрудника, его табельный номер, дата рождения, адрес, семейное положение, номер отдела, должность, оклад. Разработайте структуру таблицы БД и укажите первичный ключ.
4. Проследите взаимосвязь между таблицами учебной базы данных, поставляемой с Access (см. рис. 23.21). С этой целью выберите в меню
Сервис (Tools) к оманду Схема данных (Relationships) или нажмите одноименную кнопку на панели инструментов в окне базы данных.
Выводы
1. Чтобы открыть таблицу, в окне базы данных на вертикально расположенной панели
Объекты (Objects) выберите значок Таблицы (Tables ), в списке имен таблиц базы выделите имя интересующей вас таблицы и нажмите на панели инструментов кнопку
Открыть (Open) (см. рис. 23.2).
2. Для преобразования базы данных Access в другой формат выберите в меню Сервис (Tools) команду
Служебные программы (Database Utilities), подменю Преобразовать базу данных (Convert Database) ,
и задайте формат, в который будет производиться преобразование, например, в формат Access 97 или в формат Access 2002-2003.
3. Для выполнения синхронизации баз данных в меню Сервис (Tools) выберите команды
Репликация (Replication) , Синхронизация (Synchronize Now).
4. Базу данных можно создать различными способами, используя ссылки в разделах
Создание (New) и Шаблоны в области задач Создание файла (New File) .
5. В базе данных Access могут использоваться три типа ключевых полей:
счетчик, простой ключ и составной ключ.
6. Для создания таблицы в режиме конструктора в окне базы данных на панели
Объекты (Objects) выберите значок Таблицы (Tables) и дважды щелкните значок
Создание таблицы в режиме конструктора (Create table in design view) (см. рис. 23.2).
7. Проследить взаимосвязь между таблицами позволяет команда Схема данных (Relationships)
в меню Сервис (Tools) или одноименная кнопка на панели инструментов в окне базы данных.
8. Чтобы экспортировать таблицу в другие приложения, например, Microsoft Word или Microsoft Excel, выберите команду
Экспорт (Export) в меню Файл (File) .