Замена определенного значения на новое значение из всех таблиц через одну форму - PullRequest
0 голосов
/ 19 октября 2019

Я пытаюсь обновить значения групп со OldVal на NewVal во всех таблицах (в том числе: студенты, кандидаты, заслуги, группы) из одной формы. я пробовал этот запрос;

UPDATE (([Group] 
  INNER JOIN Candidates ON Group.Group = Candidates.Group) 
  INNER JOIN Merit ON Group.Group = Merit.Group) 
  INNER JOIN Students ON Group.Group = Students.Group 
SET 
  Candidates.[Group] = [Forms]![Update Groups]![NewVal],
  Students.[Group] = [Forms]![Update Groups]![NewVal],
  Merit.[Group] = [Forms]![Update Groups]![NewVal],
  [Group].[Group] = [Forms]![Update Groups]![NewVal]
WHERE 
  (((Candidates.Group)=[Forms]![Update Groups]![OldVal]) 
  AND ((Students.Group)=[Forms]![Update Groups]![OldVal]) 
  AND ((Merit.Group)=[Forms]![Update Groups]![OldVal]) 
  AND ((Group.Group)=[Forms]![Update Groups]![OldVal]));

Обратите внимание, что тип данных групп во всех таблицах - «Мастер поиска / текст», за исключением таблицы групп, тип данных в таблице групп - текст
. путь? такие как:

UPDATE Components
    SET Group= Datatype'NewVal'
    WHERE Group = Datatype'OldVal'

1 Ответ

0 голосов
/ 19 октября 2019

Предположим, что поле [Group] таблицы [Group] является первичным ключом: при определении Отношения между вашими таблицами и обеспечении ссылочной целостности для каждой из них с параметром Каскадное обновление связанных полей включено, задача будет такой же простой, как

UPDATE [Group]
  SET [Group] = [Forms]![Update Groups]![NewVal]
  WHERE [Group] = [Forms]![Update Groups]![OldVal];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...