Читайте также:
|
|
· Выберите параметр В другой базе данных.
· В поле Имя файла введите расположение и имя файла другой базы данных, или нажмите кнопку Обзор и в новом диалоговом окне Создание таблицы укажите расположение другой базы данных и нажмите кнопку ОК.
· Нажмите кнопку ОК, чтобы закрыть первое диалоговое окно Создание таблицы.
· Нажмите кнопку Выполнить, а затем нажмите кнопку Да для подтверждения операции.
При замене существующей таблицы эта таблица сначала удаляется и перед этим запрашивается подтверждение на удаление. Нажмите кнопку Да, а затем нажмите кнопку Да еще раз для создания новой таблицы.
4. ЗАПРОСЫ НА ИЗМЕНЕНИЕ И УДАЛЕНИЕ ДАННЫХ
4.1 Запрос на изменение данных
С помощью запроса на обновление можно добавлять, изменять или удалять данные в одной или нескольких записях. Запросы на обновление можно рассматривать как разновидность диалогового окна Поиск и замена с более широкими возможностями. Следует ввести условие отбора (приблизительный аналог образца поиска) и условие обновления (приблизительный аналог образца замены). В отличие от диалогового окна Поиск и замена запрос на обновление может принимать несколько условий и позволяет обновить большое число записей за один раз, а также изменить записи сразу в нескольких таблицах.
Необходимо помнить приведенные ниже правила.
· Запрос на обновление нельзя использовать для добавления новых записей в таблицу, но можно менять имеющиеся пустые значения на определенные значения. Для добавления новых записей в одну или несколько таблиц используйте запрос на добавление.
· Запрос на обновление нельзя использовать для удаления записей целиком (строк) из таблицы, но можно менять имеющиеся непустые значения на пустые. Для удаления записей целиком (процесс, удаляющий также значение первичного ключа) следует использовать запрос на удаление.
· С помощью запросов на обновление можно изменять все данные в наборе записей. Кроме того, нельзя выполнить запрос на обновление для следующих типов полей в таблице:
· Поля, содержащие результаты вычислений. Значения вычисляемых полей не хранятся в таблице постоянно. Они существуют только во временной памяти компьютера, после того как будут вычислены. Поскольку для вычисляемых полей не предусмотрено место постоянного хранения данных, их невозможно обновить.
· Поля, источником записей для которых служат итоговые запросы или перекрестные запросы.
· Поля с типом данных «Счетчик». Значения в полях с типом данных «Счетчик» изменяются только при добавлении записи в таблицу.
· Поля в запросах на объединение.
· Поля в запросах на уникальные значения и запросах на уникальные записи — запросах, возвращающих неповторяющиеся значения или записи. Это правило применимо при использовании запроса на обновление, а также при обновлении данных вручную путем ввода значений в форму или таблицу.
· Первичные ключи, участвующие в отношениях между таблицами, кроме тех случаев, когда эти отношения были настроены на автоматическое выполнение каскадного обновления через поля ключа и любые связанные поля. При каскадном обновлении автоматически обновляются любые значения внешнего ключа в дочерней таблице (таблица на стороне «многие» отношения «один-ко-многим») при изменении значения первичного ключа в родительской таблице (таблица на стороне «один» отношения «один-ко-многим»). Невозможно выполнять каскадное обновления для записей, использующих поле счетчика для создания значений первичного ключа.
Перед выполнением запроса на обновление следует создать резервную копию базы данных. Результаты запроса на обновление невозможно отменить, однако создание резервной копии позволяет отменить все изменения.
1. Нажмите кнопку Microsoft Office, наведите указатель на пункт Управление, а затем в группе Управление базой данных выберите команду Резервная копия базы данных.
2. В диалоговом окне Сохранение резервной копии укажите имя и расположение для резервной копии и нажмите кнопку Сохранить.
Исходный файл будет закрыт, после чего будет создана резервная копия и повторно открыт исходный файл.
Чтобы вернуться к резервной копии, закройте и переименуйте исходный файл, чтобы получить возможность использовать имя исходной версии. Назначьте имя исходной версии резервной копии.
Самый надежный способ применения запроса на обновление состоит в том, чтобы сначала создать запрос на выборку для проверки условий отбора. Предположим, что требуется изменить для ряда полей с типом данных «Логический» значение «Нет» на значение «Да» для определенного заказчика. Для этого следует добавить условия к запросу на выборку так, чтобы данный запрос возвращал все записи со значением «Нет» для этого заказчика. Убедившись, что запрос возвращает верные записи, можно преобразовать запрос на выборку в запрос на обновление, ввести условия обновления и выполнить запрос, чтобы обновить выбранные значения.
Создание запроса на обновление. Способ 1.
1. На вкладке Конструктор в группе Результаты выберите команду Запуск. Убедитесь, что запрос возвращает те записи, которые следует обновить. Если требуется, выделите ненужные поля, включенные в бланк запроса, и нажмите клавишу DELETE, чтобы удалить их. Кроме того, можно перетащить на бланк запроса дополнительные поля.
2. На вкладке Конструктор в группе Тип запроса выберите команду Обновление.
В описанной здесь процедуре показано, как преобразовать запрос на выборку в запрос на обновление. При такой операции Access добавляет строку Обновление в бланк запроса. Выберите поле с данными, которые следует обновить, и введите выражение (условие изменения) в строке Обновление для этого поля. В строке Обновление можно использовать любое допустимое выражение. На вкладке Конструктор в группе Результаты выберите команду Запуск.
Появится предупреждающее сообщение.
1. Нажмите кнопку Да, чтобы выполнить запрос и обновить данные.
2. После выполнения запроса можно заметить, что в его результатах отсутствуют некоторые поля. Если запрос содержит поля, которые не обновлялись, по умолчанию эти поля не отображаются в результатах. Предположим, что были включены поля «Код» из двух таблиц, чтобы убедиться, что запрос возвращает и обрабатывает нужные записи. Если эти поля «Код» не обновлялись, то в приложении Access они не отображаются в результатах.
Обновление данных в одной таблице данными из другой таблицы
Множество пользователей баз данных сталкиваются с необходимостью обновить данные в одной таблице данными из другой, и многие из них считают эту задачу трудновыполнимой. При необходимости обновить данные в одной таблице данными из другой помните следующее правило: типы данных исходного и результирующего поля должны либо совпадать, либо быть совместимыми.
Кроме того, при обновлении данных в одной таблице данными из другой и использовании совместимых типов данных вместо совпадающих типов данных приложение Access выполняет преобразование типов данных этих полей в конечной таблице. В результате некоторые данные в конечных полях могут быть обрезаны (удаленыПроцесс обновления данных в одной таблице данными из другой состоит из следующих основных этапов.
· Создайте запрос на обновление и добавьте исходную и конечную таблицы в запрос.
· Объедините эти таблицы по полям, содержащим связанные сведения.
· Добавьте имена конечных полей в строку Поле бланка запроса.
· Добавьте имена исходных полей в строку Обновление бланка запроса с использованием следующего синтаксиса: [ исходная_таблица].[исходное_поле ].
Способ 2.
1. На вкладке Создание в группе Другие щелкните Конструктор запросов.
2. В диалоговом окне Добавление таблицы дважды щелкните исходную и конечную таблицы для добавления их в запрос. Каждая таблица отображается в окне конструктора запросов. Закончив добавление таблиц, нажмите кнопку Закрыть чтобы закрыть диалоговое окно Добавление таблицы.
3. Объедините эти таблицы по полям, содержащим связанные сведения. Для этого выберите поле в одной таблице и перетащите его на соответствующее поле во второй таблице.
4. На вкладке Конструктор в группе Тип запроса выберите команду Обновление.
5. В конечной таблице дважды щелкните поля, которые нужно обновить. Каждое поле будет появляться в строке Поле бланка запроса.
6. В строке Обновление запроса в каждый столбец, содержащий конечное поле, добавьте имя исходной таблицы и поля исходной таблицы, соответствующее полю в конечной таблице, используя следующий синтаксис: [ Таблица ].[ Поле ], где имена таблицы и поля заключаются в квадратные скобки и разделяются точкой. Имена таблиц и полей в строке Обновление должны быть написаны правильно и должна быть соблюдена любая пунктуация в именах исходных таблиц и полей. Однако при этом не обязательно соблюдать регистр букв.
7. На вкладке Конструктор в группе Результаты выберите команду Запуск.
8. Нажмите кнопку Да для подтверждения обновления.
Данная таблица содержит список типов данных, доступных в приложении Access, описания всех ограничений по преобразованию типов данных и краткие описания возможных потерь данных при преобразовании.
Конечный тип данных | Преобразуемый тип данных | Изменения или ограничения |
Текстовый | Поле МЕМО | Первые 255 знаков остаются, остальные удаляются. |
Числовой | Без ограничений. | |
Дата/время | Без ограничений. | |
Денежный | Без ограничений. | |
Счетчик | Без ограничений. | |
Логический | Значение -1 («Да» в логическом поле) преобразуется в «Да». Значение 0 («Нет» в логическом поле) преобразуется в «Нет». | |
Гиперссылка | Access обрезает ссылки длиннее 255 знаков. | |
Поле МЕМО | Текстовый | Без ограничений. |
Числовой | Без ограничений. | |
Дата/время | Без ограничений. | |
Денежный | Без ограничений. | |
Счетчик | Без ограничений. | |
Логический | Значение -1 («Да» в логическом поле) преобразуется в «Да». Значение 0 («Нет» в логическом поле) преобразуется в «Нет». | |
Гиперссылка | Без ограничений. | |
Числовой | Текстовый | Текст может включать только числа и допустимые разделители целой и дробной части для числовых значений и денежных единиц. Число знаков в поле с типом данных «Текстовый» не должно превышать соответствующий размер поля, заданный для типа данных «Числовой». |
Поле МЕМО | Поле с типом данных «Поле МЕМО» должно содержать только числа и допустимые разделители целой и дробной части для числовых значений и денежных единиц. Число знаков в поле «Поле МЕМО» не должно превышать соответствующий размер поля, заданный для типа данных «Числовой». | |
«Числовой» (с другим размером поля или другой точностью) | Значения не должны быть больше или меньше, чем может хранить размер нового поля. Из-за изменения точности в приложении Access могут округлиться некоторые значения. | |
Дата/время | Возможность преобразования даты и времени зависит от размера числового поля. Следует помнить, что в приложении Access хранятся все даты как порядковые номера, а значения даты и времени — как целые числа двойной точности с плавающей запятой. Дата 30 декабря 1899 года имеет порядковый номер 0. Даты, не входящие в интервал от 18 апреля 1899 года до 11 сентября 1900 года, превышают размер поля «Байт». Даты, не входящие в интервал от 13 апреля 1810 года до 16 сентября 1989 года, превышают размер поля «Целое». Чтобы вместить все возможные даты, установите параметр Размер поля (Field Size) числового поля равным Длинное целое или больше. | |
Денежный | Значения не должны выходить за верхний и нижний пределы размера, заданного для поля. Например, поле с типом данных «Денежный» можно преобразовать в поле размера «Целое» только в том случае, если его значение больше 255, но не превышает 32767. | |
Счетчик | Значения не должны выходить за пределы размера, заданного для поля. | |
Логический | Значения «Да» преобразуются в -1. Значения «Нет» преобразуются в 0. | |
Гиперссылка | Не определен | |
Денежный | Текстовый | Текст должен состоять из чисел и допустимых разделителей. |
Поле МЕМО | Текст должен состоять из чисел и допустимых разделителей. | |
Числовой | Без ограничений. | |
Дата/время | Без ограничений, но в приложении Access значение может округлиться. | |
Счетчик | Без ограничений. | |
Логический | Значение («Да») преобразуется в 1р. Значение («Нет») преобразуется в 0р. | |
Гиперссылка | Не определен |
4.2 Запрос на удаление данных
Для удаления данных из базы данных Access можно использовать запросы двух типов. Тип используемого запроса зависит от того, что именно требуется удалить.
· Если нужно удалить отдельные поля в записях одной или нескольких таблиц, следует использовать запрос на обновление, который заменяет существующие значения либо на пустое значение (то есть на отсутствие данных), либо на пустую строку (пару двойных кавычек без пробела между ними).
Запрос на обновление используется для удаления отдельных полей потому, что запрос на удаление по умолчанию удаляет только строки целиком. Процесс использования запроса на обновление для удаления данных состоит из следующих основных этапов: создание запроса на выборку и проверка, что он возвращает только те данные, которые нужно удалить; преобразование этого запроса в запрос на обновление с использованием значения NULL или пустых строк в качестве нового значения; выполнение этого запроса для обновления существующих данных.
· Если требуется удалить записи (строки) целиком, следует использовать запрос на удаление.
По умолчанию запрос на удаление удаляет все данные каждого поля записи вместе со значением ключа, который делает эту запись уникальной. При выполнении такого запроса всегда удаляется строка таблицы целиком. Процесс состоит из следующих основных этапов: создание запроса на выборку и проверка, что он возвращает только те данные, которые нужно удалить; преобразование этого запроса в запрос на удаление и выполнение его для удаления данных.
Следует помнить: если запись, которую нужно удалить, является стороной «один» отношения «один-ко-многим», необходимо перед выполнением запроса изменить свойство этого отношения Дополнительные изменения необходимо внести потому, что по умолчанию Access запрещает удаление данных на стороне «один» в отношении «один-ко-многим».
Кроме того, помните, что после удаления или обновления записи или ее части невозможно отменить эти изменения, поэтому следует всегда делать резервную копию данных перед выполнением запроса на удаление. Процедуры, описанные в следующих разделах, объясняют, как создать запрос на обновление, который удаляет данные из отдельных полей, и запрос на удаление, который удаляет записи целиком. Обычно запросы на обновление или удаление используются только когда необходимо быстро обновить или удалить большое количество данных. Если нужно удалить несколько записей, и это проще сделать вручную, можно открыть таблицу в режиме таблицы, выбрать поля или строки, которые требуется удалить, и нажать клавишу DELETE.
Процесс использования запроса для удаления записей включает следующие основные этапы.
· Спланируйте удаление. Следует убедиться в наличии необходимых разрешений на удаление данных и в том, что другие пользователи закрыли объекты, использующие соответствующие таблицы, а затем создать резервную копию базы данных.
· Убедитесь, что база данных находится в надежном расположении или подписана цифровой подписью. Если ни одно из этих условий не выполняется, можно предоставить базе данных состояние доверенной на время сеанса работы с ней. Помните, что по умолчанию приложение Access блокирует все запросы на изменение (на удаление, обновление и создание таблицы), если базе данных не предоставлено состояние доверенной.
· Если требуется удалить данные из нескольких таблиц, и эти таблицы связаны, включите параметры Целостность данных и Каскадное удаление связанных записей для каждой из связей. Это позволит запросу удалять данные из таблиц со стороны отношения «один» и «многие».
· Создайте запрос на выборку и добавьте условия для получения нужного набора записей.
· Если нужно удалить отдельные поля из таблицы, преобразуйте запрос на выборку в запрос на обновление, введите значение NULL или пустую строку ("") в качестве условия обновления и выполните запрос.
· Если нужно удалить записи целиком, преобразуйте запрос на выборку в запрос на удаление и выполните его.
Прежде чем полностью или частично удалять записи из базы данных, выполните следующие действия.
· Убедитесь, что база данных доступна не только для чтения. Для этого в проводнике Windows щелкните правой кнопкой мыши файл базы данных (с расширением accdb или mdb) и выберите в контекстном меню команду Свойства. В диалоговом окне Свойства должен быть снят флажок Только чтение.
· Проверьте наличие необходимых разрешений на удаление записей из базы данных. При необходимости обратитесь к системному администратору или разработчику базы данных.
· Убедитесь, что удаление записей не повлияет на работу других пользователей.
· Попросите всех пользователей базы данных закрыть все таблицы, формы, запросы и отчеты, в которых используются удаляемые данные. Это позволит избежать конфликтов блокировки.
Если базу данных использует большое количество пользователей, может потребоваться завершить ее работу и открыть повторно в режиме монопольного доступа.
a. Нажмите кнопку Office и затем выберите команду Открыть.
b. Найдите и выделите базу данных, нажмите стрелку рядом с кнопкой Открыть и затем выберите команду Монопольно.
· Создайте резервную копию базы данных, прежде чем изменять или удалять записи. Некоторые операции удаления можно отменить, однако создание резервной копии позволяет отменить все изменения.
При необходимости удалить данные из связанных таблиц следует помнить следующее правило. Если данные находятся на стороне «многие» отношения «один-ко-многим», можно удалять их без внесения изменений в отношение. Однако, если данные находятся на стороне «один» отношения «один-ко-многим», необходимо сначала изменить отношение, иначе приложение Access заблокирует удаление.
Процесс удаления связанных данных состоит из следующих основных этапов.
· Определите, какие из записей находятся на стороне «один» отношения, а какие — на стороне «многие».
· Если нужно удалить записи со стороны «один» отношения и связанные записи со стороны «многие», включите набор правил «Целостность данных» и разрешите операцию каскадного удаления. Далее описано понятие целостности данных и указано, как выполнить оба действия.
· Если нужно удалить данные только на стороне «один» отношения, сначала удалите отношение, а затем удаляйте данные.
В ходе работы следует помнить, что хотя в большинстве случаев по умолчанию применяется правило целостности данных, база данных должна в первую очередь соответствовать следующим условиям.
o Связанное поле главной таблицы должно быть первичным ключом или иметь уникальный индекс.
o Связанные поля в главной и связанной таблицах должны иметь одинаковый тип данных. Существует два исключения из этого правила. Поле «Счетчик» можно связать с полем типа «Числовой», если для этого поля свойство Размер поля (FieldSize) имеет значение Длинное целое. Кроме того, поле «Счетчик», для которого свойство Размер поля (FieldSize) имеет значение Код репликации можно связать с полем типа «Числовой», для которого свойство Размер поля (FieldSize) имеет значение Код репликации.
o Обе таблицы должны принадлежать одной базе данных Access. Если таблицы связаны, они должны быть в формате Access. Кроме того, необходимо открыть базу данных, в которой содержатся связанные таблицы, и включить правило целостности данных. Невозможно соблюдение правил целостности данных для связанных таблиц в базах данных других форматов, таких как книги Microsoft Office Excel 2007. Сведения о включении целостности данных см. в следующем разделе.
2. Запишите имена полей таблиц для каждой стороны отношения.
3. Откройте каждую таблицу и просмотрите данные в каждом поле; проверьте, действительно ли нужные поля содержат данные, которые требуется удалить.
4. Оставьте область Зависимости объектов открытой и выполните шаги, описанные в следующем разделе.
Если открывается база данных, которой не предоставлено состояние доверенной и которая находится не в надежном расположении, приложение Access по умолчанию блокирует выполнение всех запросов на изменение.
Преобразование запроса на выборку в запрос на удаление и удаление данных
1. Нажмите кнопку Конструктор, чтобы переключиться из режима таблицы в режим конструктора запросов.
2. На вкладке Конструктор в группе Тип запроса выберите команду Удаление.
При этом в Access запрос на выборку заменяется запросом на удаление, строка Вывод на экран в нижней части бланка запроса становится скрытой, а также добавляется строка Удаление.
Убедитесь, что в строке Удаление в столбце * (все поля) отображается Из. Слово Условие должно появиться в столбцах всех условий.
3. Убедитесь, что необходимо удалить эти данные, и нажмите кнопку Выполнить.
Будет открыто диалоговое окно для подтверждения удаления. Нажмите кнопку Да, чтобы удалить данные.
Если при попытке выполнения запроса ничего не происходит, проверьте, не появляется ли в строке состояния Access следующее сообщение:
Дата добавления: 2015-10-21; просмотров: 82 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Методы создания перекрестного запроса | | | Комплексное продвижение сайтов |