Когда Access блокирует ваше обновление

Рассмотрим рабочий аспект стратегии программы Access: что происходит, когда вы на­жимаете мышью кнопку Выполнить(как описано в пункте 9 предыдущего алгоритма), и пет никакой реакции? Не появляются ни предупреждение, ни окно сообщения или ошибки, объясняющие причину сбоя. Лишь в строке состояния, в нижней части окна Access выводится таинственное сообщение, которое любезно информирует о том, что "действие или событие заблокировано режимом отключения" ("The action or event has been blocked by Disabled Mode"). Что все это значит?

Access — по-настоящему параноидальная программа. Она не разрешает вам выполнять некоторые действия до тех пор, пока вы явно не подтвердите, что все в порядке.

Как вы узнали из разд. "Открытие БД" главы 1, каждый раз, когда вы открываете вашу БД, Access отображает панель сообщений с сообщением системы безопасности. Вам ре­шать, что делать с этим сообщением. Можно щелкнуть мышью кнопку ? в правом верх­нем углу, чтобы полностью скрыть эту панель. В этом случае ваша БД остается в отчасти заблокированном состоянии. Вы можете создавать, изменять и удалять объекты БД, принадлежащие вам, но не можете запускать никакой код или запросы на изменение. (Для повторного вывода на экран панели сообщений и просмотра сообщения системы безопасности выберите на ленте Работа с таблицами → Показать или скрыть → Панель сообщений(Database Tools →Show/Hide → Message Bar).)

Другой способ — щелкнуть мышью кнопку Параметры(Options) на панели сообщений для отображения диалогового окна Параметры безопасности Microsoft Office

(Microsoft Office Security Options). Дальше следует выбрать переключатель Включить это содержимое(Enable this content) и щелкнуть мышью кнопку ОК. Этот шаг предос­тавляет программе Access непоколебимую гарантию безопасности вашей БД — другими словами, БД разработана не жующим чипсы хакером в подвале родительского дома. По­сле того как вы предприняли этот шаг, Access разрешает выполнять запросы на измене­ние (по крайней мере, до тех пор, пока вы не закрыли БД, не открыли ее снова и не уви­дели на экране повторно отображенное сообщение центра безопасности).

Если вы устали от многоразового включения БД при каждом ее использовании, есть другое решение. Можно заставить программу Access доверять всем БД в конкретной папке на вашем жестком диске. Этот метод описан в разд. "Задание надежного располо­жения " главы 15.

Запросы на добавление

Запрос на добавление выбирает записи из таблицы и вставляет их в другую таблицу. (С тех­нической точки зрения, добавление — это процесс вставки записей в конец таблицы.)

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

Примечание

После завершения копирования записей в новую таблицу можно продолжить работу с по­мощью запроса на удаление (см. разд. "Запросы на удаление" далее в этой главе) и удалить старые версии.

Запросы на добавление также имеют смысл, если вы работаете со сверхчувствительной базой. В этом случае вы можете вводить данные во временную таблицу для того, чтобы кто-то просмотрел их позже. Когда проверка закончена, можно применить запрос на добавление для переноса записей в реальную таблицу.

Запросы на добавление жестче других типов запросов на изменение. При переносе запи­сей нужно быть уверенным в полной согласованности таблиц.

■ Типы данных должны быть совместимы. У выбранных вами полей (в исходной таблице) и заменяемых полей (в конечной таблице) должны быть совместимые типы данных. Но имена полей могут не совпадать. Вы можете сформировать ваш запрос так, что данные из

поля FirstNameпомещаются в поле F_Nameпри условии, что у обоих полей текстовый тип данных.

■ Некоторые поля можно пропускать. Если в исходной таблице есть поля, которых нет в конечной таблице, не включайте их в свой запрос. Если в конечной таблице есть поля, которых нет в исходной таблице, программа Access оставит их незаполненными или использует значения по умолчанию (см. разд. "Задание значений по умолчанию" главы 4). Но если вы пропустите обязательное поле (поле, у которого свойство Обязательное поле(Required) имеет значение Да, как объясняется в разд. "Пропущенные значения и пустые строки "главы 4), вы получите сообщение об ошибке.

■ Программа Access применяет все обычные правила при добавлении записи. Вы не можете вставить данные, нарушающие условие на значение (см. разд. "Целостность на уровне ссылок" главы 5) и добавить дублирующиеся значения в поле с первичным ключом или уникальным индексом (см. разд. "Предотвращение дублирования значений с помощью индексов " главы 4 ).

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

Примечание

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

Программа Access предоставляет и другую возможность, аналогичную запросу на добав­ление; запрос па создание таблицы, который ничем не отличается от запроса на добавление за исключением одного: запрос на создание таблицы создает конечную таблицу и затем ко­пирует в нее записи.

Наши рекомендации