【问题标题】:ms access form listbox changing whole fieldms访问表单列表框更改整个字段
【发布时间】:2018-11-16 12:27:51
【问题描述】:

我创建了一个表单来更新查询,该查询又基于包含许多文件信息的主表。然后,这个主表与其他几个表相关,例如名为group_table 的表,定义文件所属的组,其中包含ID 字段和group_name。然后,这与基于group.ID 的主表和主表中的一个字段master_table.group 建立一对多关系,并加入到表单所基于的查询中。

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

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

【问题讨论】:

    标签: forms ms-access ms-access-2010


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 1970-01-01
      • 2013-03-04
      相关资源
      最近更新 更多