Кулвир Сингх Бхогал (Kulvir Singh Bhogal), программное обеспечение для WebSphere, Fort Worth, TX, IBM
Многие думают, что Microsoft Access и серверы баз данных IBM DB2 являются конкурентами, поскольку оба продукта представляют собой приложения для работы с базами данных. Безусловно, DB2 больше подходит для корпоративных, ответственных приложений благодаря проверенным на практике достижениям в отношении масштабируемости и производительности. Но вот о том, что Microsoft Access может работать в полной гармонии с DB2, знают очень немногие. Microsoft Access можно использовать как простой в управлении клиент для доступа и работы с данными DB2. В этой статье показано, как это делается. В статье демонстрируется, как создавать формы и генерировать отчеты при помощи Microsoft Access, которая взаимодействует с хранилищем данных DB2.
В рамках этой лекции, посвященной изучению совместного использования Microsoft Access/ DB2 Universal Database, предполагается, что у вас установлена Microsoft Access. Предполагается также, что у вас установлена DB2 для Linux, UNIX и Windows. Мы займемся созданием простой базы данных DB2, с которой и будет взаимодействовать Microsoft Access. Для упрощения задачи предполагается, что DB2 и Microsoft Access сосуществуют на одном физическом компьютере. Если ваш экземпляр DB2 размещен на другой машине, не беспокойтесь: в статье описано, как осуществлять коммуникации с экземпляром DB2 по сети.
Для создания учебной базы данных выполните следующие шаги:
- В данном примере начните с запуска обработчика командной строки DB2 и создания базы данных, с которой мы будем экспериментировать:
db2 => create database accdb2
|
и установите соединение с ней (предполагается, что у вас есть имя пользователя и пароль db2admin):
db2 => connect to accdb2 user db2admin using db2admin
|
- Создайте таблицу с именем accounts. Эта фиктивная таблица имитирует таблицу для хранения номеров учетных записей:
db2 => create table accounts(accountnum varchar(64) not null primary key,
firstname varchar(30) not null, lastname varchar(30) not null)
|
В целях облегчения восприятия данная таблица является упрощенной.
- Добавьте в базу данных несколько значений:
db2=> insert into accounts values (‘0001','George','Washington')
db2=> insert into accounts values (‘0002','John','Adams')
db2=> insert into accounts values (‘0003','Thomas','Jefferson')
|
Теперь нужно подготовить Microsoft Access к взаимодействию с вашей базой данных DB2. Это достигается путем установления соединения через открытый интерфейс взаимодействия с базами данных (ODBC). Выполните следующие шаги:
- Из Control Panel (Панель управления) Microsoft Windows, перейдите к значку Administrative Tools (Администрирование), а затем к значку Data Sources (ODBC) (Источники данных (ODBC), как показано на рисунке 1.
Рисунок 1. Значок Data Sources (ODBC) (Источники данных (ODBC).
- Нажмите кнопку Add… на вкладке"User DSN" (Пользовательский DSN), показанной на На рисунке 2.
Рисунок 2. Добавление источника данных
- В открывшемся окне "Create New Data Source" (Создание нового источника данных) выберите IBM DB2 ODBC DRIVER, и нажмите кнопку Finish. Обратите внимание на то, что эта опция доступна только в том случае, если вы установили компонент DB2 ODBC Driver при установке DB2 на том же компьютере, где установлена программа Microsoft Access.
Рисунок 3. Значок Data Sources (ODBC) (Источники данных (ODBC)
- Выберите из раскрывающегося меню Database alias пункт ACCDB2 , а в поле Database alias введите имя вашего источника данных. Я обычно добавляю к имени базы данных "DS". Для продолжения работы нажмите кнопку OK.
Рисунок 4. Значок Data Sources (ODBC) (Источники данных (ODBC)
- Предполагается, что база данных установлена на том же компьютере, что и Microsoft Access. Если это не так, то вам следовало бы в первую очередь каталогизировать удаленную базу данных при помощи команды catalog в обработчике командной строки или интерфейса DB2 Configuration Assistant. После этого ваша удаленная база данных должна появиться в раскрывающемся списке Database alias (в виде имени в каталоге), как показано на рисунке 4.
Чтобы установить связь Microsoft Access с таблицами DB2, выполните следующие шаги:
- В Microsoft Access выберите из меню File > New, а в открывшемся диалоговом окне выберите Blank database. Не волнуйтесь, вам не придется хранить данные в Microsoft Access, в данном случае база данных Microsoft Access нужна просто как логический контейнер для форм и отчетов, которые нам предстоит создать. Определите место для хранения созданной базы данных на жестком диске. В рамках этой статьи она называется accessdb.mdb, как показано на рисунке 5. Задав имя, нажмите кнопку Creatе (Создать).
Рисунок 5. Создание новой базы данных в Access
- В открывшемся диалоговом окне нажмите правой кнопкой мыши Tables (Таблицы) в секции Objects (Объекты) и выберите из контекстного меню пункт Link Tables (Связь с таблицами)…
Рисунок 6. Установление связи с таблицами
- В следующем окне Link (Связь) выберите из раскрывающегося списка Files of Type (Типы файлов) пункт ODBC Databases().
Рисунок 7. Диалоговое окно Link (Связь)
- В диалоговом окне Select Data Source (Выбор источника данных) перейдите на вкладку Machine Data Source (Источник данных компьютера). На этой вкладке вы увидите ранее установленный источник данных ACCDB2DS. Выделите его и нажмите кнопку OK.
Рисунок 8. Выбор источника данных
- Для подключения к базе данных DB2 введите ваши учетные данные. Введите идентификатор пользователя и пароль для DB2 и нажмите кнопку OK.
Рисунок 9. Ввод учетных данных
- Если ваши учетные данные будут приняты, появится окно Link Tables (Связанные таблицы). В окне Tables (Таблицы) вы увидите таблицу DB2ADMIN.ACCOUNTS. Выделите ее и нажмите кнопку OK. Обратите внимание на то, что Microsoft Access показывает все таблицы базы данных, включая и таблицы в схеме SYSCAT. Кроме того, заметьте, что в этом окне вы можете задать несколько таблиц, но, чтобы не усложнять задачу, выберите одну таблицу.
Рисунок 10. Установление связи с таблицами
- Выполните двойной щелчок на новом значке DB2ADMIN_ACCOUNTS. Это приведет к отображению данных, которые хранятся в таблице DB2ADMIN.ACCOUNTS, как показано на рисунке 11.
Рисунок 11. Данные в выбранной таблице
Обратите внимание на то, что если вы внесете изменения в данные в окне Table (Таблица) и закроете это окно, то ваши изменения сохранятся в базе данных при условии, что ваши привилегии доступа для базы данных DB2 позволяют изменять данные в базе данных.
В реальной практике бизнес-аналитики редко используют пользовательский интерфейс, который мы только что рассмотрели. Чаще они предпочитают использовать для работы с данными базы формы.
Поскольку эта статья не является учебником по Microsoft Access, мы не будем углубляться в процесс создания форм в этой СУБД, а сконцентрируемся на установлении связей между Microsoft Access и таблицами DB2. Тем не менее, здесь приводится пример, показывающий, как быстро создать в Microsoft Access форму, позволяющую добавлять, удалять и изменять записи в таблице DB2.
- В панели Object (Объекты), выберите Forms > Create form by using wizard (Формы > Создание формы с помощью мастера) :
Рисунок 12. Создание формы с помощью мастера
- В первом окне мастера создания форм вы можете задать поля формы. Если вы импортировали из базы данных более одной таблицы, то можете в этом окне выбрать поля из нескольких таблиц. Нажмите кнопку >>, чтобы перенести все поля таблицы ACCOUNTS в панель Selected Fields (Выбранные поля). Таким образом вы включите в форму все поля. Нажмите Next (Далее).
Рисунок 13. Первое окно мастера создания форм
- Microsoft Access позволяет выбрать макет формы из нескольких шаблонов, в которых по-разному расположены поля формы. В нашем случае выберите формат Columnar (В одни столбец) и нажмите кнопку Next (Далее).
Рисунок 14. Выбор макета формы
- Выберите стиль формы, выделив один из предложенных фоновых рисунков. Затем нажмите кнопку Next (Далее).
Рисунок 15. Стиль формы
- В последнем окне мастера создания форм вы можете ввести имя для новой формы. По умолчанию форме присваивается имя <SCHEMANAME_TABLENAME>. Нажмите кнопку Finish (Готово).
Рисунок 16. Значок Data Sources (ODBC) (Источники данных (ODBC)
- После этого вы увидите новую форму.
Рисунок 17. Форма Access
Обратите внимание на то, что при изменении и добавлении записей при помощи Microsoft Access применяются ограничения таблицы базы данных DB2. Вы можете убедиться в этом, если попробуете создать две учетные записи с одинаковыми значениями ACCOUNTNUM. При вызове таблица DB2 table создала определенный первичный ключ для столбца ACCOUNT_NUM.
Находясь в форме MIcrosoft Access, можно изменять существующие записи таблицы DB2, просто изменяя значения в форме. Можно также создавать и удалять записи в таблице DB2. Для добавления записи в базу данных нажмите кнопку > и перейдите к последней записи (которая должна быть пустой). Добавьте значение, как показано ниже:
Рисунок 18. Добавление записи
- После добавления записи в форму Microsoft Access и нажатия кнопки Enter в последнем поле, вы сразу же видите запись, добавленную в таблицу DB2. В этом можно убедиться, создав простой запрос к таблице ACCOUNTS:
Рисунок 19. Проверка добавления записи
Отчеты Microsoft Access предлагают быстрый способ организации и представления данных, который охотно используют многие бизнес-аналитики. Отчеты позволяют представить серверные данные в привлекательном, информативном виде, который облегчает и ускоряет обработку данных.
Поскольку вы уже установили связь с таблицами DB2, вы можете воспользоваться отчетами Microsoft Access для отображения данных, размещенных в DB2.
Чтобы создать пример отчета по данным DB2, выполните следующие шаги:
- В панели Object (Объекты), выберите Forms > Create form by using wizard (Формы > Создание формы с помощью мастера):
Рисунок 20. Создание отчетов с помощью мастера
- Как и в рассмотренном ранее первом окне мастера создания форм, первое окно мастера создания отчетов позволяет выбрать поля, которые будут использоваться для отчета. Если вы импортировали из базы данных более одной таблицы, то можете в этом окне выбрать поля из нескольких таблиц. Нажмите кнопку >>, чтобы перенести все поля таблицы ACCOUNTS в панель Selected Fields (Выбранные поля). Таким образом, вы перенесете в форму все поля. Нажмите Next (Далее).
Рисунок 21. Мастер создания отчетов
- При помощи этого мастера можно определить уровни группировки для управления порядком представления данных. Этим можно воспользоваться, например, если вы хотите разбить список телефонов сотрудников по отделам, чтобы сотрудники каждого отдела были в одной группе. В нашем случае пропустите это окно. Нажмите Next (Далее).
Рисунок 22. Задание уровней группировки
- Вы можете задать порядок сортировки ваших записей. Например, можно расположить записи в отчете в алфавитном порядке. В нашем случае пропустите это окно. Нажмите Next (Далее).
Рисунок 23. Сортировка записей
- Определение макета представления отчета. Можно выбрать ориентацию страницы для отчета (варианты: книжная или альбомная). Для нашего примера выберите макет Tabular (Табличный) и ориентацию Portrait (Книжная).
Рисунок 24. Создание макета отчета
- После выбора макета отчета можно выбрать стиль отображения. Выберите стиль и нажмите кнопку Next (Далее).
Рисунок 25. Стиль отчета
- Введите название отчета. По умолчанию отчету присваивается имя <SCHEMANAME>_<TABLENAME>. Введите имя на ваш выбор и нажмите кнопку Finish (Готово).
Рисунок 26. Определение названия отчета
- После этого вы увидите окно предварительного просмотра с вашим отчетом. Этот отчет можно сохранить или распечатать. Обратите внимание, что при внесении изменений в таблицу базы данных DB2 (через интерфейс Microsoft Access, обработчик командной строки DB2 или любым приложением, обратившимся к таблице DB2) ваш отчет Microsoft Access динамически изменяется.
Рисунок 27. Готовый отчет
При создании этой статьи автор исходил из факта, что у многих пользователей программа Microsoft Access уже установлена на настольном компьютере в составе пакета Microsoft Office. При этом учитывалось также, что многие бизнес-аналитики прекрасно знают Microsoft Access, но побаиваются сложности обработчика командной строки DB2. Вместо того, чтобы знакомить бизнес-аналитиков с перипетиями SQL, эта статья на простом примере показывает, как использовать Microsoft Access в качестве клиентского приложения для работы с данными DB2.
Ссылки по теме