мс доступ к списку формы изменения всего поля - PullRequest
0 голосов
/ 06 июня 2018

Я создал форму для обновления запроса, который, в свою очередь, основан на главной таблице, содержащей информацию о количестве файлов.Эта основная таблица затем связана с несколькими другими таблицами, например, с таблицей с именем group_table, определяющей, к какой группе будет принадлежать файл, которая содержит поле ID и group_name.Затем это связывается в связи «один ко многим» с основной таблицей на основе group.ID и полем в основной таблице master_table.group и включается в запрос, на котором основана форма.

В форме я назначил элемент управления списком для обновления поля group таблицы запроса / мастера.Содержимое, доступное для выбора в списке, было задано на основе поля group_name из таблицы group_table, которое определено в разделе RowSouce таблицы свойств формы.

Итак, моя проблема в том, что когда я пытаюсь обновить любые записи в запросе, используя список в форме, все одинаковые записи также будут изменены.Например, изменение записи в одной строке с «Группа A» на «Группа B» изменит все записи, содержащие «Группу A», на «Группу B» в поле group.Поэтому мне было интересно, могу ли я что-то сделать, чтобы установить его, чтобы изменилась только конкретная запись, которую я хочу изменить.

1 Ответ

0 голосов
/ 06 июня 2018

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

CurrentDb.Execute "UPDATE [group_table] AS G INNER JOIN [master_table] AS M 
ON G.[ID] = M.[groupID] 
SET G.[group] = '"& Group A & "' 
WHERE M.[groupID] = '" & groupIDFromForm & "';"

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

...