Access предоставляет широкие возможности пользователям по переносу уже существующих баз данных в среду MS Access. К примеру, если вы вели обработку информации в MS Excel, эксплуатировали базы в средах dBase, Paradox или FoxPro, или же просто хранили свои данные в текстовых файлах, и решили воспользоваться возможностями MS Access, - вам не составит труда перенести свои данные в эту среду.
С таким же успехом вы можете экспортировать свои данные из таблиц Access в большинство существующих сред обработки данных. Более того, в Access заложен аппарат поддержки миграции данных в еще не существующие среды, используя механизм ODBC. Т.е. с появлением новой, с более широким спектром возможностей СУБД, вы не будете привязаны к Access необходимостью заново вводить данные под новый формат базы.
Если эта база будет содержать драйвер ODBC, вы просто экспортируете свои данные в другую среду. Сейчас многие производители ПО для хранения и обработки данных внедряют в свои приложения поддержку ODBC, и ваше Access - приложение уже сейчас может обмениваться информацией как с такими СУБД как Oracle, SQL-Base, Sybase, Paradox, FoxPro, Btrieve, DB2 и т.д., так и с будущими.
Пример решения
1. Импорт данных
Access поддерживает две возможности использования данных других баз - импорт и присоединение.
Импорт подразумевает полную конвертацию существующей таблицы из другой среды в формат MS Access. Все модификации импортированной таблицы автоматически не переносятся в импортированную вами таблицу. Т.е. импортировать данные имеет смысл в тех случаях, если вы :
- полностью переходите на работу с Access и переносите все свои данные в эту среду, не обращаясь к старому приложению;
- используете информацию, редко модифицируемую пользователем: словари, справочники и т.д.;
- добиваетесь максимальной производительности по обработке данных в смешанных средах (совместного использования данных одновременно несколькими средами БД), т.к. Access быстрее работает со своими форматами в своей среде.
В предыдущих лабораторных работах мы уже создали проект базы данных STUD, поэтому нам остается только заполнить созданные таблицы данными.
1.1. Импорт таблиц баз данных
Импортируем данные таблицы Access "Преподаватели" из базы STUD_1.mdb, содержащую информацию о преподавателях, в одноименную таблицу Access.
Откроем базу данных STUD и активизируем окно базы данных. Для активизации окна импорта в меню “Файл” выбирем “Внешние данные ” > “Импорт” или щелкнем по кнопке “импорт ” на панели инструментов.
ACCESS выведет диалоговое окно “Импорт”. Найдем файл STUD_1.mdb базы и щеленем по кнопке “Импорт”.
В следующем окне “Импорт объектов ” выбирем для импорта объкт и щелкнуть по кнопке “OK”
Примечание: (для версии ACCESS 2.0)
Откроем базу данных STUD и активизируем окно базы данных. Для активизации окна импорта в меню "File" выполним команду "Import" или щелкнем по кнопке "Import" на панели инструментов.
В появившемся диалоговом окне в списке форматов выберем "Microsoft Access" и щелкнем по кнопке "Ок".
Access выведет диалоговое окно выбора файла. Найдем файл "STUD_1.mdb" базы и щелкнем по кнопке "Ок". Если искомый файл находится на сетевом сервере, то его путь указывается через кнопку "Network..", где нужно указать сетевое устройство и путь к базе.
В следующем окне определения объекта для импорта выберем в списке "Object Type" пункт "Tables" и в списке выбора "Objecs in STUD_1.MDB" щелкнем на таблице "Преподаватели", справа выберем переключатель "Structure and Data", после чего нажмем кнопку "Import".Появится окно с информацией о завершении импорта. После нажатия "Ок" мы вернемся в окно "Import objects", где нажмем кнопку "Close".
Если импорт выполнен успешно, то вернувшись в окно базы данных мы увидим описание новой таблицы "Преподаватели1".
Для переноса данных в существующую таблицу "Преподаватели" активизируем щелчком мыши таблицу "Преподаватели1" (описание таблицы выведется на синем фоне), выполним команду “Копировать”("Copy") меню “Правка” ("Edit") для переноса содержимого таблицы в буфер, а затем команду “Вставить” ("Paste") в том-же меню.
Появится окно “Вставка таблицы” ("Paste Table As"), где в поле “Имя таблицы” ("Table Name") введем имя "Преподаватели", и в поле выбора “Параметры вставки” ("Paste Options") выберем “Добавление данных в таблицу” ("Append Data to Existing Table"), добавляющий данные в существующую таблицу. Предыдущие пункты позволяют копировать только структуру таблицы, или структуру с данными.
Теперь таблица "Преподаватели" содержит данные, импортированные из другой базы Access. Удалим таблицу "Преподаватели1" любым из рассмотренных ранее способов.
Подобным образом производится импорт данных из баз данных FoxPro, dBase, Paradox и Btrieve. ".
1.2. Импорт данных из электронной таблицы Excel
MS Access поддерживает импорт/экспорт данных с электронными таблицами Lotus 1-2-3 и MS Access. Можно импортировать как таблицы целиком, так и их отдельные фрагменты.
При импорте электронных таблиц можно либо дописать данные в уже существующую таблицу, либо сформировать новую. В первом случае необходимо либо сформировать имена столбцов эл. таблицы, идентичные именам полей таблицы Access, или расположить столбцы эл. таблицы в той же последовательности, что и поля таблицы БД, в которую импортируются данные.
Если мы будем создавать на импортируемых данных новую таблицу, то желательно ввести имена столбцов в первую строку импортируемой электронной таблицы, в противном случае Access назначит в качестве полей последовательные числа, начиная с 1 (их потом можно будет изменить, открыв таблицу в режиме конструктора).
Тип данных для полей новой таблицы Access определяет на основе значений первой импортируемой строки данных. Так,
- символьные данные переносятся в текстовые поля длинной 255 символов;
- числовые – в “Числовой”(” Numeric”)с размером 8 байт и "с плавающей точкой";
- числовые данные в денежном формате - в тип “Денежный”("Currency");
- значения даты и времени - в тип “Дата/Время”("Date/Time").
Некоторые типы могут быть неправильно интерпретированы Access, поэтому имеет смысл, вставить в начало электронной таблицы "фиктивную" строку, однозначно идентифицирующую тип данных, который необходимо установить для поля таблицы БД. После окончания импорта эту строку, как и строку с названиями полей, можно будет удалить.
Выполним импорт данных в таблицу БД "Студенты" из электронной таблицы Excel "Student".
Находясь в окне базы данных STUD, выполним команду "Внешние данные" >”Импорт” в меню "Файл".
Открывшееся окно "Импорт" содержит список приложений, поддерживаемых Access для импорта. Выберем строку "Excel" и щелкнем по кнопке "Ок".
Access откроет диалоговое окно "Выбор файла". Выберем файл "Student.xls" и нажмем кнопку "Импорт".
В открывшемся окне "Параметры импорта" сбросим флажок "Firs row contains field names", позволяющий использовать первую строку эл.таблиц как имена полей таблицы БД (т.к. таблица "Студенты" уже содержит описания полей).
Выберем переключатель "Append to existing table", для добавления данных в уже существующую таблицу, и выберем в списке справа от переключателя имя таблицы - "Студенты".
Если необходимо импортировать не всю эл. таблицу, а только ее часть, то в этом же окне можно установить диапазон импортируемых ячеек: в поле "Range" вводится диапазон (например "A1:D15" или "A1..D15").
Для запуска процедуры импорта нажмем кнопку "Ок".
После окончания импорта в появившемся окне с информацией о замеченных ошибках (или их отсутствием) нажмем кнопку "Ок". Access вернет нас в окно "Выбор файла" для выбора следующей эл. таблицы для импорта. Выберем кнопку "Закрыть".
В окне "Ошибки импорта" можно просмотреть все поля, которые Access не смог корректно преобразовать. После анализа ошибок их можно исправить, либо вручную перебив пропущенные значения, либо изменив описания полей в режиме конструктора таблиц, После исправления ошибок (если такие Access обнаружит), откроем таблицу "Студенты" и проверим правильность переноса данных.
Подобным образом производится и импорт данных из электронной таблицы Lotus 1-2-3.
1.3. Импорт текстовых файлов
В таблицы Access можно переносить данные и из текстовых файлов. Поля в таких файлах могут быть разделены несколькими способами, но большинство из них можно преобразовать в формат таблиц Access не внося изменений в сам текстовый файл.
При использовании же описания спецификации файлов (спроса хранения в них полей) позволяет Access корректно интерпретировать почти любые типы представления данных в текстовом формате.
Access может импортировать текстовые файлы, в которых поля располагаются в фиксированных позициях внутри каждой записи файла (т.н. форматированный текст). Необходимо лишь указать положение каждого поля внутри строки, и его длину.
Импортируем данные о результатах из текстового файла с полями фиксированной ширины в таблицу "Результаты".
Находясь в окне базы данных STUD выполняем команду "Внешние данные" .> “Импорт” в меню "Файл" и в диалоговом окне списка форматов выберем “Текст Фиксированная длинна". Щелкнем по кнопке "Ок".
Выберем текстовый файл в появившемся появившемся окне выбора файлов и щелкнем по кнопке "Импорт". Access выведет диалоговое окно "Импорт текста". В пункте (Выберете формат, описывающий поля наилучшим образом) выбрать один из пунктов, который вам подходит:
- с разделителями- поля разделяются запятыми или табуляцией;
- фиксированная ширина полей- интервалы заполнены пробелами;)
Нажмем “Далее”. После проделанных шагов “Данные необходимо сохранить” :
- в существующую таблицу;
- новую таблицу;
Если мы импортируем данные в новую таблицу, выберем ‘”Дополнительно” и определим:
имени поля - (Field Name);
типе данных - (Datatype).
Нажмем “Готово”. В пункте “Импортировать в таблицу” указать имя таблицы.
После этого Access откроет диалоговое окно с сообщением о результатах выполнения импорта. При возникновении ошибки проверим установленные значения в настройках, а если импорт прошел успешно - выберем "Ок" .
Также Access позволяет импортировать текстовые файлы с разделителями, в которых поля отделяются друг от друга символами запятой, табуляции или пробела.
Для импорта или экспорта необходимо лишь указать Access, какой из данных символов разделяет поля данных, и какой символ является ограничителем текста (если данный текст содержит символы запятой или пробела). Ограничителями текста обычно являются кавычки или апостроф, причем можно использовать для любого файла только один тип ограничителей.
Импортируем из текстового файла stud.txt данные для таблицы "Студенты".
Выйдя в окно БД и щелкнув по корешку "Таблицы", мы можем увидеть созданную таблицу "Студенты", содержащую информацию о студентах 1 курса.
После выполнения импорта из любых форматов может потребоваться некоторая модификация описания таблиц БД. Так, под текстовые поля Access выделяет поля максимально поддерживаемой длинны 255 байт, что не всегда является необходимым. В конструкторе таблиц эту длину можно уменьшить до требуемой. То же самое относится и к полям типа "Числовой" - не всегда есть необходимость в выделяемых 8 разрядах.
Возможно, придется произвести преобразования некоторых типов данных. Но нужно всегда учитывать ограничения, накладываемые на эти преобразования.
2. Экспорт данных
Действия по экспорту объектов баз данных Access очень похож на действия по импорту. Рассмотрим общий алгоритм при выполнении процедуры экспорта:
1. Открывается требуемая база и вызывается окно базы данных.
2. Выполняется команда "Экспорт" меню "Файл".
3. В списке форматов выбирается , требуемый и нажимается "Ок".
4. В открывшемся диалоговом окне "Выбор объекта MS Access" выбираем тип объекта, а затем и сам объект для экспорта. Для таблиц можно экспортировать только структуру (определение таблиц) или структуру и данные. Объектами экспорта также могут являться запросы к БД. После выбора объекта нажимаем кнопку "Ок".
5. В открывшемся окне выбираем путь файла, в который будем экспортировать объект (при экспорте в другую базу MS Access после этого появится окно для ввода имени объекта в базе данных - получателе);
После нажатия кнопки "Ок" начнется процедура экспорта, результат которой можно проверить после ее завершения.
Некоторые приложения, в которые возможен экспорт данных MS Access, не поддерживают 64-разрядные имена полей. При переносе эти имена будут усекаться, что может привести к их дублированию. Рекомендуется или в конструкторе таблиц убедиться, что имена полей после урезания не будут повторяться; или же копировать таблицу, переименовать поля в копии, и экспортировать эту копию в другое приложение.
Самостоятельно экспортируйте таблицу "Студенты" в формат Excel, а "Преподаватели" в формат Paradox.
Экспорт в текстовый файл полностью аналогичен импорту: производится настройка спецификации экспорта (либо с разделителями, либо с фиксированной длинной поля), затем запускается процедура экспорта.
Выполните экспорт таблицы "Результаты”. Затем откройте в редакторе "Write" (в Windows в группе "Аксессуары") полученный файл и выведите его на принтер в качестве отчета по лабораторной работе.
Access также содержит Мастер по слиянию с MS Word. Он позволяет внедрить данные из базы Access в документы, созданные в редакторе Word.
Открывается требуемая база, выбираем таблицу или запрос для слияния и щелкаем по кнопке "Слияние с MS Word" панели инструментов. В диалоговом окне выбирается работа с существующим или создаваемым документом. Выбираем требуемый вариант, и нажимаем кнопку "Ок". Мастер запускает Word и устанавливает связь между документами. Далее внедренные объекты можно обрабатывать средствами текстового редактора.
3. Присоединение внешних данных
Присоединение обозначает обработку средой Access данных других приложений в их формате. Данные при этом могут находиться как на вашем компьютере, так и в сети. При каждом обращении к таким данным Access переводит их в свой формат, обрабатывает, и результаты обработки снова конвертирует в чужой формат, и записывает на место.
При этом эффективность обработки данных резко падает, особенно если эти данные находятся в сети и используются несколькими пользователями. Но, с другой стороны, у присоединения тоже есть свои достоинства:
- можно поддерживать массивы данных размерами больше макси-
мально допустимого Access предела в 1Гб;
- если данные этого файла часто изменяются пользователем;
Пpи пеpеносе данных из другой среды, MS Access копирует только данные таблиц, не включая информацию об индексах, ключах и связях между таблицами, поэтому после переноса данных приходится еще до описывать проект.
Присоединение данных из других баз также является простой процедурой: кнопкой "Связь" на панели инструментов или при помощи команды "Внешние данные" >> “Связь” меню "Файл" вызовем окно присоединения, в котором выбираем тип источника данных. Источниками для присоединения могут являться файлы FoxPro, Paradox, dBase, или таблицы из другой базы Access.
После выбора источника и нажатия кнопки "Ок" появиться окно выбора файла, в котором после выбора требуемого нажимаем кнопку "Связь". После этого для таблиц Paradox появится сообщение о результатах присоединения, а для таблиц FoxPro и dBase Access потребует ввести имена индексных файлов, после чего выдает то же информационное окно.
3.1. Присоединение таблицы Результаты из БД филиала
База "Fil_1.MDB" содержит данные о результатах, прошедших семестров. Для присоединения этих данных для обработки в меню "Файл" выполним команду "Внешние данные" >> “Связь” (или щелкнув по одноименной кнопке на панели инструментов).
Появится окно для ввода типа источника данных, в котором выберем "Microsoft Access" и нажмем кнопку "Ok". В открывшемся окне выбора файла найдем базу "Fil_1.MDB" и вызовем ее описание, нажав кнопку "Ok". Следующее окно выводит описания всех таблиц базы филиала. Выберем таблицу "Результаты" и нажмем кнопку "Связь".
После возвращения в окно базы данных мы увидим новую строку с описанием присоединенной таблицы "Результаты1" (поскольку таблица "Результаты" в проекте уже присутствует). Слева от названия таблицы стоит знак "=>", указывающий на то, что данная таблица была присоединена.