|
Важно Службы Access 2010 и 2013 удаляются из следующего выпуска SharePoint. Рекомендуется не создавать новые веб-приложения, а перенести существующие приложения на другую платформу, например Microsoft Power Apps. Вы можете поделиться данными Access с Dataverse, облачной базой данных, на основе которой можно создавать приложения Power Platform, автоматические рабочие процессы, виртуальные агенты и т. д. для Интернета, телефона или планшета. Дополнительные сведения см. в разделе Начало работы: перенос данных Access в Dataverse. |
Если вы используете запрос для предоставления данных для представления в веб-приложении Access, некоторые поля, которые можно изменить, доступны только для чтения. В частности, если используется несколько таблиц и имеется по крайней мере одно соединение, существуют ограничения на то, какие поля запроса можно обновить.
Примечание: Этот раздел посвящен веб-приложениям Access. Он не применяется к классическим базам данных. Если у вас возникли проблемы с запросом в классической базе данных, см. статью Общие сведения о запросах .
Требования к обновляемым полям запроса
-
Можно обновить только поля из таблицы, в которой присоединенное поле не имеет уникальных значений ( таблица "большинство-многие").
-
Выходные данные запроса должны включать поля первичного ключа для таблицы с наибольшим количеством пользователей.
-
Таблица с наибольшим количеством элементов должна находиться на внутренней стороне любых внешних соединений (т. е. левой стороны левого внешнего соединения или правой стороны от правого внешнего соединения).
В этом запросе таблица Tasks является самой многочислочной, так как она ищет данные в таблице Проекты.
Однако, поскольку первичный ключ для задач не включен в выходные данные, ни одно из его полей не будет обновляться.
Даже если ключ добавлен, ни одно из полей, поступающих из таблицы Projects, не может быть обновлено, так как это таблица не является самой многой.
Поиск и устранение проблемы с обновляемым полем
Причина, по которой поле не обновляется, определяет, как можно включить обновления. Чтобы выяснить причину, откройте запрос в конструкторе и изучите сведения о конструкторе запроса.
-
Если вы начинаете из браузера, откройте веб-приложение в Access: в правом верхнем углу приложения щелкните Параметры > Настроить в Access.
-
Если область навигации не открыта, нажмите клавишу F11, чтобы отобразить ее. Затем в области навигации щелкните запрос правой кнопкой мыши и выберите конструктор.
-
Определите, какая таблица в запросе является самой многочислочной. Хорошее правило заключается в том, что самая многочисленная таблица — это таблица, которая ищет данные в другой таблице.
-
Убедитесь, что поле, которое требуется обновить, находится в таблице с наибольшим количеством пользователей. Если это не так, вы ничего не можете сделать с запросом, чтобы обойти проблему. В качестве альтернативного способа разрешить пользователям изменять поле, рассмотрите возможность создания нового обновляемого представления только на основе таблицы, а затем простого открытия этого представления по мере необходимости. Например, можно указать кнопку с макросом, который открывает представление.
-
Убедитесь, что в выходные данные запроса включен первичный ключ для таблицы с наибольшим количеством пользователей. Если его нет, добавьте первичный ключ в выходные данные запроса.
-
Дважды щелкните каждое соединение и убедитесь, что:
-
Соединение является внутренним соединением; или
-
Если это внешнее соединение, то таблица с наибольшим количеством элементов находится на внутренней стороне соединения — слева от левого соединения или в правой части правого соединения.
-
Если соединение не соответствует хотя бы одному из двух предыдущих критериев, измените соединение, чтобы сделать запрос обновляемым.
Добавление первичного ключа с наибольшим количеством в выходные данные запроса
-
Откройте запрос в режиме конструктора.
-
Определите таблицу с наибольшим количеством пользователей.
-
Дважды щелкните каждое поле в первичном ключе. Каждое поле ключа помечается небольшим ключом.
-
В сетке конструктора запросов убедитесь, что флажок Показать установлен для только что добавленных ключевых полей:
Изменение соединения, чтобы сделать запрос обновляемым
Если какое-либо соединение не соответствует одному из указанных выше критериев, это приведет к предотвращению обновлений. Ниже приведен пример не обновляемого соединения:
Это левое внешнее соединение— оно включает в себя все элементы из левой таблицы и соответствующие записи из правой таблицы. Однако таблица с наибольшим количеством пользователей находится в правой части соединения, что предотвращает обновление.
Способы обновления внешнего соединения
Существует три основных способа настройки соединения, чтобы его запрос можно было обновлять. Дважды щелкните соединение, чтобы открыть диалоговое окно Свойства соединения , а затем выполните одно из следующих действий:
-
Изменение внешнего соединения на внутреннее соединение Выберите вариант 1 в диалоговом окне Свойства соединения .
-
Переключение позиций таблиц Переместите таблицу с наибольшим количеством элементов во внутреннюю часть соединения, а другую — во внешнюю (используйте поля со списком в диалоговом окне Свойства соединения , чтобы задать имена таблиц слева и справа).
-
Изменение направления присоединения Выберите вариант 2 или 3 в диалоговом окне Свойства соединения (измените его на любое значение).