Access 2003 - выполнение запроса на обновление на основе результатов выборочного запроса
В настоящее время у меня есть подчиненная форма, которая отображает запрос выбора. Я хочу обновить все записи таблицы B, которые отображаются в подчиненной форме, с помощью информации из формы. В подчиненной форме нет необходимости. Я просто использовал его, чтобы убедиться, что мой запрос на выборку отображался правильно.
Таблица A имеет 3 столбца (OID, Project_Number, Landowner)
Таблица B имеет 4 столбца (OID, PhoneNum, Address, Year)
Эти таблицы имеют отношение один ко многим. Один OID в таблице A относится ко многим в таблице B
Table A
1 A10 Bill
2 B10 Sally
3 A10 Bill
Table B
1 555 123 blah st 2012
1 2013
2 111 456 aaa st 2012
3 2012
Форма позволяет пользователю вводить информацию, которая заполняет таблицу B. В подчиненной форме отображается список записей, где Project_Number, Landowner и Year равны записи, отображаемой в форме.
For example. If the form is showing
1 A10 Bill
the subform is showing
1 A10 Bill 2012
3 A10 Bill 2012
Когда я нажимаю кнопку команды сохранения, мне бы хотелось, чтобы она выполнила запрос на обновление, но у меня возникли проблемы с командой SQL.
Мой запрос на выборку выглядит следующим образом:
SELECT B.Project_Number, A.LANDOWNER, B.Year
FROM A INNER JOIN B ON A.OBJECTID = A.OBJECTID;
Подформа настроена
Связать дочерние поля: Project_Number; Год; землевладелец
Поля мастера ссылок: B.Project_Number; Год; A.Landowner
Мне бы хотелось:
UPDATE B.PhoneNum, B.Address, B.Year
WHERE items found in my subform
WITH information from my form
Легче ли забыть подчиненную форму и сделать все это с помощью одного запроса на обновление?
UPDATE B SET B.phonenum = [New_Info]![PhoneNumCtrl], B.Address = [New_Info]![AddressCtrl]
WHERE [A]![Landowner] = The same landowner as the OID selected, [A]![Project_Number] = The same project number as the OID selected, [New_Info]![Year] = [B]![Year]
Заранее благодарю за любую помощь!
Все работает сейчас. Я хотел добавить к ответу djphatic.
При этом обязательно добавьте [Forms]![Formname]![Controlname]
1 ответ
В зависимости от того, где находятся элементы управления в вашей форме, вам может понадобиться изменить ссылку на элемент управления.
Используйте графический интерфейс построителя запросов, чтобы создать запрос выбора, в котором есть столбцы, которые вы хотите обновить, и отфильтруйте записи, используя элементы управления в форме. Получив это, вы можете изменить запрос на запрос обновления и установить значения элементов управления в вашей форме.
UPDATE B
SET B.phonenum = [formname]![controlname], ...
FROM B JOIN A ON B.OID = A.OID
WHERE A.PROJECTID = [formname]![controlname]
AND B.YEAR = [formname]![controlname]