Диспетчер связанных таблиц

Закрыть ... [X]

 

Идея разделенной БД кажется достаточно понятной. Один файл (серверная БД) хранит исходные данные, в то время как другой (клиентская БД) предоставляет средства для работы с связанных ними. Но есть одна деталь, которую вы пока не учли — а именно, способ получения доступа клиентской БД к таблицам серверной БД. Секрет кроется в связывании таблиц (table linking).

Связывание позволяет одной БД видеть таблицу в другом файле БД. Связывание может использоваться в любой БД — на самом деле вы можете использовать его, даже если не собираетесь предоставлять коллективный доступ к БД. Например, можно разделить ваши таблицы на два или несколько файлов БД для преодоления ограничения, касающегося размера файла (которое равно 2 Гбайт или гигабайтам на каждый файл БД). Или можно воспользоваться связыванием для упорядочивания разросшейся БД с десятками таблиц. Наконец, вы можете решить, что оно поможет отделить общедоступную информацию от сверхсекретных подробностей. Если поместить таблицы с секретными данными в отдельную БД, вы сможете спокойно предоставить для коллективного пользования копии основной БД, не беспокоясь о том, что легко уязвимые данные попадут в плохие руки.

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

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

 

 

Примечание

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

 

 

К счастью, связи легко обновляются. Выполните следующие действия.

1. Выберите на ленте Работа с базами данных > Работа с базами данных > Диспетчер связанных таблиц (Database Tools > Database Tools > Linked Table Manager) (или щелкните правой кнопкой мыши любую связанную таблицу и затем выберите Диспетчер связанных таблиц).

 

Рис. 18.5. В этой БД восемь связанных таблиц. Все ссылки указывают на одну и ту же серверную БД, общую для всех, что не является обязательным условием

 

2.   Установите флажок рядом с каждой ссылкой, которую хотите изменить.

Если нужно обновить все ссылки, щелкните мышью кнопку Выделить все (Select All).

Чаще всего все ваши ссылки будут указывать на один и тот же файл БД. Но если нужно связать таблицы с разными файлами, установите флажок Всегда выдавать запрос нового местонахождения (Always prompt for new location).

3.   Щелкните мышью кнопку ОК.

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

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

 

 

Мистическая ошибка “Файл уже используется”

 

Теперь, когда БД с многопользовательской поддержкой создана, вы рассчитываете, что она будет поддерживать толпу пользователей, поэтому вас приводит почти в шоковое состояние таинственная ошибка "Файл уже используется" ("File already in use"). Разве не для того создаются БД с многопользовательской поддержкой, чтобы оставаться доступными, даже когда кто-нибудь их использует?

Эта ошибка возникает, поскольку кто-то уже открыл БД с монопольным доступом (Exclusive mode). Монопольный доступ (см. разд. "Открытие БД с монопольным доступом " далее в этой главе) позволяет одному пользователю связаться с БД и заблокировать попытки всех остальных. Хитрость заключается в том, что при определенных обстоятельствах программа Access может применять монопольный доступ, даже если вы ее об этом не просили.

Наиболее распространенная проблема — отсутствие у пользователя подходящих разрешений на папку с общим доступом, в которой хранится многопользовательская БД. (Разрешения (Permissions) — составляющая системы безопасности ОС Windows, определяющая способ использования файлов и папок тем или иным пользователем.) В особенности эта проблема проявляется, когда вы первым открываете БД и не имеете разрешения на создание новых файлов. В этой ситуации программа Access не может создать файл с расширением laccdb. Этот файл отслеживает блокировки (см. разд. "Применение блокировок для предотвращения наложения обновлений" далее в этой главе). Без файла с расширением laccdb Access не может координировать работу многих пользователей. Поэтому диспетчер связанных таблиц программа тихо переходит в режим монопольного доступа, который блокирует остальные обращения к БД.

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

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.


Источник: http://crypto.pp.ua/2011/04/kak-dejstvuyut-svyazannye-tablicy/


Поделись с друзьями



Рекомендуем посмотреть ещё:



Microsoft Access. Диспетчер связанных таблиц К чему сниться спицы для вязания

Диспетчер связанных таблиц Диспетчер связанных таблиц Диспетчер связанных таблиц Диспетчер связанных таблиц Диспетчер связанных таблиц Диспетчер связанных таблиц

ШОКИРУЮЩИЕ НОВОСТИ