Дополнительные сведения о правилах целостности данных

В ходе работы следует помнить, что хотя в большинстве случаев в программе Access применяется правило целостности данных, база данных должна соответствовать следующим условиям:

· При добавлении связи между двумя таблицами, уже содержащими данные, существующие данные должны удовлетворять правилам отношения. Пример:

· Связанное поле главной таблицы должно быть первичным ключом или иметь уникальный индекс.

· Связанные поля из главной и связанной таблицы должны иметь одинаковый тип данных.

ПРИМЕЧАНИЕ. Существует два исключения из этого правила. Поле счетчика можно связать с полем с типом «Числовой», если для этого поля свойство Размер поля (FieldSize) имеет значение Длинное целое. Кроме того, поле счетчика, для которого свойство Размер поля (FieldSize) имеет значение Код репликации, можно связать с полем с типом «Числовой», для которого свойство Размер поля (FieldSize) имеет значение Код репликации.

· Обе таблицы принадлежат одной базе данных Access.

ПРИМЕЧАНИЕ. Если таблицы связаны, они должны быть в формате Access. Кроме того, необходимо открыть базу данных, в которой содержатся связанные таблицы, и включить правило целостности данных. Невозможно включить целостность данных для связанных таблиц в базах данных других форматов, таких как книги Microsoft Office Excel 2007. Сведения о включении целостности данных см. в следующем разделе.

2. Запишите имена полей в таблице для каждой стороны отношения.

3. Откройте каждую таблицу и просмотрите данные в каждом поле; проверьте, что нужные поля действительно содержат данные, которые требуется удалить.

4. Оставьте окно «Отношения» открытым и выполните шаги, описанные в следующем разделе.

Изменение связи

1. Откройте окно «Отношения», если оно закрыто.

На вкладке Средства базы данных в группе Скрыть/Отобразить выберите команду Отношения.

2. Щелкните правой кнопкой мыши связь (линию) между таблицами, включенными в операцию удаления, а затем выберите команду Изменить связь... в контекстном меню.

-или-

На вкладке Конструктор в группе Сервис щелкните Изменение связей.

Появится диалоговое окно Изменение связей.

3. Убедитесь, что установлен флажок Обеспечение целостности данных.

4. Установите флажок Каскадное удаление связанных записей.

ПРИМЕЧАНИЕ. До отключения этого свойства при удалении записей, расположенных на стороне «один», будут удаляться также все связанные записи на стороне «многие».

5. Нажмите кнопку ОК, закройте окно «Отношения» и перейдите к следующей процедуре.

Создание запроса на выборку

1. На вкладке Создание в группе Другие щелкните Конструктор запросов.

В конструкторе запросов будет открыта вкладка Конструктор, а затем будет открыто диалоговое окно Добавление таблицы.

2. Выберите таблицу на стороне «один» отношения, нажмите кнопку Добавить, а затем — кнопку Закрыть.

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

3. Чтобы добавить в бланк запроса все поля таблицы, дважды щелкните звездочку (*).

При добавлении всех полей запрос на удаление позволяет удалить из таблицы записи (строки) целиком.

4. При необходимости добавьте поле таблицы для ввода условий.

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

5. После этого введите условия в строку Условия бланка заказа.

Условия служат для получения только тех записей, которые требуется удалить. В противном случае при использовании запроса на удаление из таблицы будут удалены все записи. Для приведенного на предыдущем шаге примера необходимо ввести код клиента, отношения с которым прекращаются, а также срок действия для заказов клиента.

6. После этого снимите флажок Показать для всех полей условий.

7. На вкладке Конструктор в группе Результаты выберите команду Запуск.

Убедитесь, что запрос возвращает записи, которые требуется удалить.

8. Оставьте запрос открытым и перейдите к следующим пунктам.

Преобразование запроса на выборку в запрос на удаление и удаление данных

1. Нажмите кнопку Конструктор, чтобы перейти из режима таблицы в режим конструктора запросов.

2. На вкладке Конструктор в группе Тип запроса выберите команду Удаление.

Запрос на выборку будет заменен запросом на удаление. Строка Вывод на экран в нижней части бланка запроса будет скрыта, а вместо нее появится строка Удаление.

Убедитесь, что в строке Удалить в столбце всех полей (*) отображается Из. Слово Куда должно отображаться в столбцах всех условий.

3. Проверьте данные для удаления и нажмите кнопку Выполнить .

Будет открыто окно для подтверждения удаления.

Нажмите кнопку Да, чтобы удалить данные.

Удаление таблиц из базы данных

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

1. В области переходов щелкните таблицу правой кнопкой мыши и в контекстном меню выберите команду Удалить.

В Access будет открыто диалоговое окно для подтверждения удаления.

Нажмите кнопку Да.

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

3. Нажмите кнопку Да.

Связи и таблица будут удалены.

Примеры условий для запросов на выборку

В приведенной ниже таблице приводятся примеры типов условий, которые можно использовать в запросах на выборку для сокращения объема возвращаемых данных.

УСЛОВИЕ РЕЗУЛЬТАТ
> 234 Возвращает все числа больше 234. Чтобы найти числа меньше 234, используйте условие «< 234».
>= "Новосибирск" Возвращает все записи от «Новосибирск» до конца алфавита
Between #2.2.2006# And #1.12.2006# Возвращает даты в период между 2 февраля 2006 и 1 декабря 2006 (ANSI-89). Если в базе данных используются подстановочные знаки ANSI-92, вместо знака # следует использовать одинарные кавычки ('). Пример: Between '02.02.2006' And '01.12.2006'
Not "Германия" Выполняется поиск всех записей, кроме тех, в которых содержимое поля является точным соответствием значению «Германия». По этому условию будут возвращены записи, содержащие дополнительные символы, кроме входящих в слово «Германия». Например, «Германия (евро)» или «Европа (Германия)».
Not "Т*" Выполняется поиск всех записей, кроме тех, которые начинаются с буквы «Т». Если в базе данных применяются подстановочные знаки ANSI-92, используйте вместо звездочки (*) знак процента (%).
Not "*т" Выполняется поиск всех записей, кроме тех, которые оканчиваются на «т». Если в базе данных применяются подстановочные знаки ANSI-92, используйте вместо звездочки (*) знак процента (%).
In(Канада,Великобритания) Выполняется поиск всех записей списка, содержащих слова «Канада» или «Великобритания».
Like "[А-Г]*" Находит в поле с типом данных «Текстовый» все записи, начинающиеся с букв «А-Г». Если в базе данных используются подстановочные знаки ANSI-92, используйте знак процента (%) вместо знака звездочки (*).
Like "*ар*" Выполняется поиск всех записей, которые содержат последовательность букв «ар». Если в базе данных применяются подстановочные знаки ANSI-92, используйте вместо звездочки (*) знак процента (%).
Like "Мария Сергиенк?" Будут найдены все записи, начинающиеся с имени «Мария» и содержащие вторую строку из 9 букв, из которых 8 букв составляют начало фамилии «Сергиенк», а последняя буква неизвестна. Если в базе данных применяются подстановочные знаки ANSI-92, используйте вместо знака вопроса знак подчеркивания (_).
#02.02.2006# Выполняется поиск записей от 2 февраля 2006. Если в базе данных используются подстановочные знаки ANSI-92, вместо знака # следует использовать одинарные кавычки (') ('2.2.2006')
< Date() - 30 Возвращает все даты, которые более, чем на 30 дней раньше текущей даты
Date() Возвращает все записи, содержащие текущую дату
Between Date() And DateAdd("M", 3, Date()) Возвращает все записи для временного интервала между текущей датой и датой, отстоящей от нее на три месяца.
Is Null Возвращает все записи, содержащие пустое (незаполненное или неопределенное) значение.
Is Not Null Возвращает все записи с любым (не пустым) значением.
"" Возвращает все записи с пустой строкой. Пустые строки используются, когда требуется добавить значение в обязательное поле, но фактическое значение еще неизвестно. Например, требуется ввести в поле номер факса, но у некоторых клиентов нет факсимильного аппарата. В этом случае вместо того, чтобы вводить число, следует ввести прямые кавычки без пробела ("").

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: