Присоединение и импорт внешних таблиц
Прежде чем перейти к вопросам, связанным с импортом и присоединением таблиц, нужно понять разницу между этими возможностями Access 2002.
При импорте таблицы из другой базы данных в рассматриваемом файле MDB создается новая таблица Access, которая имеет ту же структуру (состав и типы полей), что и исходная таблица, и содержит все данные исходной таблицы. После этого вы уже работаете с новой таблицей в формате Access, которая не зависит от исходной таблицы.
Когда вы присоединяете внешнюю таблицу, вы просто получаете доступ к таблице другого приложения, можете использовать данные из этой таблицы, но при этом она остается в старом приложении, в Access хранится только информация о связи. Оба приложения (то, в котором эта таблица была создана, и приложение Access) могут работать с этой таблицей одновременно. Однако для того, чтобы данные в присоединенной таблице можно было не только просматривать, но и изменять, эта таблица обязательно должна иметь ключевое поле. Обычно ключевое поле определяется в процессе присоединения таблицы.
С присоединенной к базе данных Access 2002 внешней таблицей можно работать точно так же, как если бы она содержалась в этой базе. Единственным ограничением является то, что невозможно изменить структуру присоединенной таблицы (имена полей, типы данных и т. д.). Однако название таблицы можно изменить (при этом имя файла внешней таблицы не изменяется, изменяется только название (псевдоним) таблицы в базе данных Access), например, сделать его более понятным, т. к. ограничения на имя таблиц в Access менее жесткие, чем в других СУБД.
Кроме того, в присоединенной таблице можно в режиме Конструктора изменять ряд свойств полей (формат, надпись, маску ввода, число десятичных знаков), которые влияют только на то, как эта таблица будет отображаться в Access. При этом в "родном" приложении свойства полей не меняются.
Замечание
В первых версиях Access для операции присоединения внешней таблицы применялся термин присоединение (attachment). В последних версиях введен термин связывание (linking). Таким образом, внешние таблицы теперь становятся связанными. Мы используем в этой книге старый термин присоединение и, соответственно, присоединенные таблицы, чтобы не путать со связанными таблицами в одной базе данных, которые содержат связанные данные.
Присоединение внешних таблиц к базе данных Access 2002 бывает выгодным в следующих случаях:
- с таблицей работают совместно несколько пользователей;
- невозможен отказ от применения другой СУБД для модификации данных;
- таблица хранится на другой машине (например, на сервере локальной сети) и содержит очень большой объем информации.
Использование импорта внешних таблиц в базе данных Access 2002 оправдано в следующих случаях:
- если при разработке приложений необходимо снять ограничения на изменение свойств внешних таблиц;
- отсутствует непосредственный доступ к файлу таблицы;
- необходимо переопределить ключевые поля таблиц Paradox. Такая ситуация может возникнуть в случае, если структура одной или нескольких таблиц серьезно противоречит правилам нормализации;
- в таблицу предполагается вводить повторяющиеся данные, а первичный ключ внешней таблицы этого не допускает.
При разработке приложения, которое должно работать с присоединенными таблицами, можно временно импортировать таблицу в базу данных, а затем на заключительной стадии разработки перейти к использованию присоединенной таблицы. При этом, чтобы исключить проблемы на этапе перехода от работы с импортированной таблицей на работу с присоединенной, не изменяйте имена и типы данных полей импортированной таблицы. В противном случае может потребоваться произвести множество изменений в запросах, формах, отчетах, макросах и модулях VBA. Если разрабатываемое приложение будет использовать таблицы Paradox, то не изменяйте и поля, образующие первичный ключ. Если же предполагается использовать таблицы dBASE, необходимо убедиться в том, что применяемые индексы соответствуют индексным файлам (NDX и MDX) таблицы dBASE.