Forms ms access表单列表框更改整个字段

Forms ms access表单列表框更改整个字段,forms,ms-access,ms-access-2010,Forms,Ms Access,Ms Access 2010,我创建了一个表单来更新一个查询,该查询又基于一个主表,该主表包含许多文件的信息。然后,此主表与其他几个表相关,例如,一个名为组\u表的表,定义文件将属于哪个组,其中包含ID字段和组\u名称。然后,基于group.ID和主表master\u table.group中的一个字段,它与主表以一对多的关系进行关联,并加入表单所基于的查询中 在表单中,我指定了一个listbox控件来更新query/master表的group字段。列表框中可供选择的内容是根据表单属性页的RowSouce部分中定义的grou

我创建了一个表单来更新一个查询,该查询又基于一个主表,该主表包含许多文件的信息。然后,此主表与其他几个表相关,例如,一个名为
组\u表
的表,定义文件将属于哪个组,其中包含
ID
字段和
组\u名称
。然后,基于
group.ID
和主表
master\u table.group
中的一个字段,它与主表以一对多的关系进行关联,并加入表单所基于的查询中

在表单中,我指定了一个listbox控件来更新query/master表的
group
字段。列表框中可供选择的内容是根据表单属性页的RowSouce部分中定义的
group_table
表中的
group_name
字段设置的


因此,我的问题是,当我尝试使用表单中的列表框更新查询中的任何记录时,所有相同的记录也将被更改。例如,将一行中的记录从“a组”更改为“B组”,将在
Group
字段中将包含“a组”的所有记录更改为“B组”。因此,我想知道我是否可以做些什么来设置它,以便只更改我要更改的特定记录。

当您调用更新表时,您应该确保使用
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 & "';"
从联接中应用上的
,使外键和主键共享相同的值,然后使用表单创建一个变量,您可以使用该变量来标识确切的行。从那里,程序应该正确执行查询