Присоединение и импорт таблиц dBASE и Paradox

Теперь можно перейти непосредственно к описанию процесса присоединения и импортирования внешних таблиц.

Совет

Будьте осторожны при присоединении файла таблицы и не работайте непосредственно с оригиналом файла до тех пор, пока не убедитесь в том, что все изменения таблицы, производимые из Access, не вызывают ошибок в исходном приложении, работающем с этой таблицей. Используйте для опытов резервную копию файла таблицы.

Чтобы присоединить или импортировать таблицу dBASE или Paradox в открытую базу данных Access 2002:

  1. Откройте любую базу данных, например демонстрационную базу данных "Борей" (Northwind). Access 2000 не требует, чтобы окна объектов базы данных (форм, запросов или отчетов) были закрыты в процессе импорта или присоединения таблиц.
  2. Чтобы присоединить внешнюю таблицу к базе данных, выберите команду Файл, Внешние данные, Связь с таблицами (File, Get External Data, Link Tables). Появится диалоговое окно Связь (Link), изображенное на рис. 3.1. Чтобы импортировать внешнюю таблицу в базу данных, выберите команду Файл, Внешние данные, Импорт (File, Get External Data, Import). Появится диалоговое окно Импорт (Import) (рис. 3.2). Эти диалоговые окна являются модифицированными стандартными окнами открытия документа Microsoft Office.

    Замечание

    Можно начать процесс присоединения или импорта, щелкнув правой кнопкой мыши на свободном поле окна базы данных и выбрав из контекстного меню команду Связь с таблицами (Link Tables) или Импорт (Import).

  3. Раскройте папку, в которой находится файл нужной таблицы. В раскрывающемся списке Тип файла (Files of type) выберите тип файла, который вы хотите импортировать или присоединить к базе данных.

    Замечание

    Если присоединяемая таблица находится на другом компьютере локальной сети, рекомендуется в поле Имя файла (File name) вводить полный путь к файлу сети, например \\Tyger\Dbase\Tables\Clients.dbf. Использование вместо этого имени логического диска чревато тем, что переназначение логического диска может нарушить связь с таблицей.

    Диалоговое окно Связь
    Рис. 3.1. Диалоговое окно Связь
  4. Дважды щелкните левой кнопкой мыши по имени файла, который необходимо импортировать или присоединить к базе данных. Можно также выделить имя файла и нажать кнопку Связь (Link) или Импорт (Import). При этом предполагается, что файлы таблиц имеют стандартные расширения.
  5. Если выбранная таблица зашифрована (закодирована), появится диалоговое окно, запрашивающее пароль. Введите пароль и нажмите клавишу <Enter>.
    Диалоговое окно Импорт
    Рис. 3.2. Диалоговое окно Импорт

    Если присоединяется файл dBASE, после этого появляется диалоговое окно Выбор индексного файла (Select Index Files) (рис. 3.3). Это вызвано тем, что индексные файлы dBASE (в отличие от Paradox) не присоединяются автоматически, т. к. в заголовке файла dBASE не содержится информации об используемых индексах. Заметьте, что это диалоговое окно не появляется при импорте таблицы dBASE.

    Замечание

    Если присоединяется таблица dBASE III, то по умолчанию Access 2002 использует для индексного файла расширение ndx. Таблица dBASE III может иметь как один, так и несколько индексов. Поскольку каждый индекс хранится в отдельном файле, может потребоваться присоединить несколько индексных файлов.

    Системы управления базами данных dBASE IV и dBASE 5 позволяют хранить несколько индексов в одном файле (МDХ). Имя индексного файла обычно совпадает с именем таблицы. При присоединении таблиц dBASE IV или dBASE 5 приложение Access 2002 ищет в папке, в которой находится присоединяемая таблица, оба типа индексных файлов (и NDX, и МDХ).

  6. В списке файлов диалогового окна Выбор индексного файла выделите нужный файл. Нажмите кнопку Выбрать (Select). Access 2002 присоединит индексный файл, после чего появится окно сообщения, подтверждающее успешное добавление индексного файла. Нажмите кнопку ОК.
  7. Если присоединяемая таблица dBASE использует несколько индексов, необходимо повторить шаг 6 для каждого индекса. После того как все индексы добавлены, нажмите кнопку Закрыть (Close). Появится диалоговое окно Выбор уникального индекса (Select Unique Record Identifier).
    Диалоговое окно Выбор индексного файла
    Рис. 3.3. Диалоговое окно Выбор индексного файла

    Замечание

    Access 2002 не проверяет индексный файл на соответствие структуре присоединяемой таблицы dBASE. Если индексный файл не соответствует таблице, его обновление производиться не будет. К сожалению, Access 2002 не выводит предупреждения об использовании индексного файла, не соответствующего таблице. Использование таблицы, для которой был неверно указан индексный файл, может вызвать ошибки в приложении dBASE. Чтобы устранить такую ошибку (если она возникнет), необходимо переиндексировать таблицу в приложении, создавшем ее. Если присоединяемая таблица использует несколько индексов, необходимо добавить все индексы, если предполагается изменять содержимое таблицы средствами Access. В противном случае при изменении значения поля, по которому проин-дексирована таблица, соответствующий индексный файл не будет обновлен, а это может вызвать ошибки при использовании таблицы в исходном приложении.

  8. В диалоговом окне Выбор уникального индекса (Select Unique Record Identifier) определите индекс, который однозначно идентифицирует записи в таблице. Это необходимо для того, чтобы данные в таблице можно было изменять из Access. Нажмите кнопку ОК.

Замечание

Если присоединяется файл Paradox, в котором определен первичный ключ, то Access автоматически ищет и присоединяет индексный файл (файл с расширением рх), из которого и определяет первичный ключ. Поэтому окна Выбор индексного файла и Выбор уникального индекса не открываются. Если файл Paradox не имеет первичного ключа, то вы не сможете изменять данные в этой таблице из Access. Если присоединяемая таблица Paradox имеет поля типа MEMO, Access будет искать соответствующий файл с расширением md (в той же папке, что и присоединяемая таблица). Если файлов с расширением рх и md не окажется в нужной папке, открыть присоединенную таблицу из Access не удастся. После того как операция присоединения (или импорта) будет завершена, появится окно с сообщением об успешном окончании операции.

Диалоговое окно Связь (или Импорт) остается открытым после завершения операции, позволяя, если это необходимо, присоединить или импортировать еще какие-либо внешние таблицы. Повторите процедуру с шага 3 по шаг 8 для остальных таблиц базы данных.

Чтобы закрыть диалоговое окно Связь (или Импорт), нажмите кнопку Закрыть (Close). Присоединенные и импортированные таблицы появятся в окне базы данных. Слева от значка присоединенной таблицы выводится стрелка, указывающая на то, что таблица хранится во внешнем файле (рис. 3.4), а сам значок определяет тип (формат) присоединенного файла.

Дважды щелкните левой кнопкой мыши по присоединенной таблице в окне базы данных. Внешняя таблица будет открыта в режиме Таблицы (рис 3.5).

Замечание

Access 2002 не позволяет открывать и обновлять индексные файлы таблиц Xbase, хранящиеся в формате, отличном от формата dBASE. Например, Access 2002 не может работать с индексными файлами приложений, разработанных при помощи компилятора CA-Clipper (формат NTX). Тем не менее CA-Clipper (5+) дает возможность создавать и использовать индексные файлы в стандартном формате dBASE (NDX). Access 2002 не может применять и дополнительные индексные файлы Paradox. Поэтому при создании приложений, данные из которых предполагается использовать в Access, необходимо работать только со стандартными форматами индексных файлов. Модификация существующего приложения с целью использования стандартных индексных файлов не должна вызвать затруднений, но производительность может существенно понизиться.

Присоединенные таблицы в окне базы данных
Рис. 3.4. Присоединенные таблицы в окне базы данных

В процессе присоединения индексных файлов dBASE Access создает специальный файл, который содержит перечень индексных файлов. Это обычный текстовый файл, который имеет расширение inf и располагается в той же папке, что и присоединенная таблица. Данный файл нельзя никуда перемещать, т. к. если Access не находит этого файла (или не находит одного из индексных файлов, указанных в файле inf), работать с присоединенной таблицей нельзя, и придется ее заново присоединять. .

Присоединенная таблица Paradox открыта в режиме таблицы
Рис. 3.5. Присоединенная таблица Paradox открыта в режиме таблицы

При присоединении или импорте внешней таблицы Access 2002 читает заголовок файла таблицы и преобразует типы данных полей внешней таблицы в типы данных Access. Поскольку Access 2002 поддерживает больше типов данных, чем другие настольные СУБД, преобразование типов происходит правильно. В табл. 3.3 приведено соответствие между типами данных таблиц dBASE, Paradox и Access.

dBASE III/IVParadox 3.0, 4.0, 5.0Access
CharacterAlphanumericТекстовый (Text)
Numeric, FloaNumber, Money, BCDС плавающей точкой (8 байтов) (Double)
  С плавающей точкой (4 байтов) (Single)
  Байт (Byte)
 Short NumberЦелое (Integer)
 Long NumberДлинное целое (Long)
 AutolncrementСчетчик (AutoNumber)
LogicalLogicalЛогический (Yes/No)
DateDate, Time, TimestampДата/время (Data/Time)
MemoMemo, Formatted memoПоле MEMO (Memo)
 Binary, OLEПоле объекта OLE (OLE)

Таблица 3.3. Соответствие типов данных некоторых СУБД

При импорте из многопользовательской базы данных необходимо иметь монопольный доступ к импортируемому файлу таблицы. При этом другие пользователи не будут иметь доступа к файлу таблицы, пока не будет закрыто диалоговое окно Импорт (Import).

Замечание

В Access 2002 вы можете непосредственно открывать файлы других форматов из диалогового окна Открытие файла базы данных (Open). Открыв список в поле Типы файлов этого окна, вы увидите в этом списке все те форматы, которые мы только что описывали. При выборе файла одного из указанных в списке форматов Access создает новый файл базы данных (в формате Access) в той же папке, в которой находится выбранный файл, и присоединяет (импортирует) все таблицы из выбранной базы данных.

Импорт или присоединение таблиц из внешних источников данных с помощью драйверов ODBC выполняется аналогично. В списке типов файлов окна Связь (или Импорт) нужно установить значение ODBC Databases, после чего сразу появляется диалоговое окно, в котором необходимо выбрать источник данных или создать новый. После создания источника данных дальнейший процесс импорта (присоединения) выполняется так же, как и для таблиц других баз данных.

Импорт и присоединение таблиц других форматов — достаточно сложный процесс, который не всегда завершается успешно. При обнаружении проблем в процессе импорта файла Access 2002 создает таблицу Ошибки импорта (Import Errors), которая отображается в списке таблиц окна базы данных. Чтобы посмотреть обнаруженные ошибки, откройте эту таблицу.