Представления SQL и запросы MS Access --- Обновление данных влияет на несколько базовых таблиц
Мне интересно больше узнать об использовании SQL View и локального запроса в MS Access. Мне нравится тот факт, что представление - это в основном запрос, который хранится на сервере, и локальные машины, на которых запущен Access, "видят" его в виде таблицы.
Из-за соображений производительности я иногда просматриваю запрос, так как он обычно ускоряет загрузку формы. Однако у меня возникли проблемы, когда я не могу обновить представление, если внесу изменения в два разных поля, которые находятся в разных базовых таблицах. Даже если представление построено правильно с правильными объединениями и т. Д.
Просто интересно, есть ли более эффективный и правильный способ построения запроса, который можно обновить.
1 ответ
Пользователь никогда не может обновлять более одной таблицы одновременно. Это дано. Вам необходимо создать свою форму (возможно, используя подчиненные формы) для представления данных с использованием либо отдельных табличных представлений, простых обновляемых представлений, либо таблиц.
Подформы в основном оставляются соединениями с родительской формой. лайк
SELECT *
FROM ParentForm P
LEFT JOIN SubForm S
ON P.ParentID <~~Link Master Field
= S.ParentID <~~Link Child Field
Таким образом, вы можете воссоздать свой вид, используя подчиненные формы.
Если ваше представление слишком сложное, чтобы соответствовать этому шаблону, оно, вероятно, не подлежит обновлению, и это, вероятно, означает, что данные, которые вы хотите обновить, находятся в одной таблице, но вся остальная информация в вашем представлении является вспомогательной информацией. то есть отображается для поддержки принятия решения пользователем.
В этом случае вы должны сделать Record Source
вашей формы будет таблица / представление (обновляемое), которое вы хотите обновить. Затем в выпадающих списках / списках / элементах управления, которые поддерживают данные, поступающие в вашу обновляемую таблицу / представление, вы делаете Row Source
это вашего сложного взгляда.
Независимо от того, где находится представление (в Access или на сервере), если оно построено таким образом, что невозможно определить, какая запись в какой таблице должна быть изменена, больше ничего не имеет значения. Вам нужно оформить всю форму по-другому.