Редактирование данных в запросе

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

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

В этой статье:

Общие сведения

При изменении данных в запросе

Если не изменять данные в запросе?

Как изменить запрос, чтобы можно было отредактировать ее данные?

Введение

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

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

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

Дополнительные сведения о запросах на обновление читайте в статье Создание запроса на обновление.

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

Дополнительные сведения о запросах на создание таблицы читайте в статье Создание запроса на создание таблицы.

К началу страницы

Когда можно изменять данные в запросе?

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

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

К началу страницы

Когда нельзя изменять данные в запросе?

Невозможно изменить данные в запросе, если:

  • Запрос является перекрестный запрос.

  • Запрос является SQL-запрос.

  • Поле, которое пытается редактировать пользователь, является вычисляемое поле. В этом случае другие поля запроса могут быть доступны для редактирования.

  • Запрос основан на трех и более таблицах с отношением «многие-к-одному-ко-многим».

    Примечание : Несмотря на то, что в этом случае не удается изменить запрос в режиме таблицы, можно изменить данные в форме, если свойство Тип набора записей(RecordsetType) формы присвоено динамического (Несогласованной обновлений).

  • Запрос содержит инструкцию GROUP BY.

К началу страницы

Как изменить запрос, чтобы получить возможность изменять входящие в него данные?

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

Условия, при которых невозможно редактирование значения в запросе в режиме таблицы

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

Свойство запроса Уникальные значения имеет значение Да.

Для свойства запроса Уникальные значения установите значение Нет.

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

Запрос включает связанную таблицу база данных ODBC без однозначный индекс или таблицу Paradox без первичный ключ.

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

У пользователя отсутствует разрешение «Обновление данных» для базовой таблицы.

Выдайте пользователю разрешение «Обновление данных».

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

Создайте необходимые объединения.

В разделе, Создание соединения, вы узнаете, как создать соединения.

База данных открыта только для чтения или расположена на устройстве, предназначенном только для чтения.

Закройте базу данных и повторно откройте ее, сняв флажок Открыть для чтения. Если база данных расположена на устройстве, предназначенном только для чтения, снимите с устройства атрибут «Только для чтения» или переместите базу на устройство, позволяющее осуществлять как чтение, так и запись.

Поле в записи, которое нужно обновить, удалено или заблокировано другим пользователем.

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

Запрос основан на таблицах, связанных отношение "один-ко-многим", и поле объединения на стороне «многие» не является извлекаемым полем. В этом случае данные в поле объединения со стороны «один» редактировать невозможно.

Добавьте поле объединения со стороны «многие» к извлекаемым полям запроса.

В разделе, добавить объединенные поля на стороне «многие» для вывода полей запроса, чтобы научиться добавьте объединенные поля.

Поле объединения со стороны «многие» (после изменения данных) совпадает с полем со стороны «один».

Нажмите клавиши SHIFT+F9, чтобы сохранить изменения и обновить запрос.

Поле объединения в таблице со стороны «один» отношения «один-ко-многим» оставлено пустым, и объединение является правым внешним объединением.

Убедитесь, что в поле со стороны «один» имеется значение. Редактировать поле объединения со стороны «многие» можно, только если со стороны «один» в нем имеется значение.

Используется связанная таблица базы данных ODBC, но в выводе результатов запроса используются не все поля уникального индекса связанной таблицы.

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

В разделе, Добавить уникальный индекс поля из связанной таблицы ODBC, чтобы узнать, как добавить поля.


К началу страницы

Установка значения «Нет» для свойства «Уникальные значения» (Unique Values)

  1. Откройте запрос в режиме конструктора.

  2. Если окно свойств не открыто, откройте его, нажав клавишу F4. Щелкните бланк запроса, чтобы гарантировать, что в окне свойств отображаются свойства запроса, а не свойства поля.

  3. В окне свойств найдите ячейку свойства Уникальные значения (Unique Values). Щелкните поле рядом с ней, щелкните стрелку в этом поле и выберите значение Нет.

Создание объединений

  1. Откройте запрос в режиме конструктора.

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

Дополнительные сведения о создании соединений читайте в статье, объединение таблиц и запросов.

Добавление поля объединения со стороны «многие» к извлекаемым полям запроса

  1. Откройте запрос в режиме конструктора.

  2. В конструкторе запросов найдите объединение, которое соответствует нужному отношению «один-ко-многим».

  3. Дважды щелкните мышью поле объединения на стороне «многие» отношения «один-ко-многим». Поле объединения появится в бланке запроса в качестве извлекаемого поля запроса.

Добавление полей уникального индекса из связанной таблицы ODBC

  1. Откройте запрос в режиме конструктора.

  2. В конструкторе запросов найдите связанную таблицу ODBC.

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

К началу страницы

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

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

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×