Sql MS Access表单中的查询列表框:选择仅在与查询匹配时可见

Sql MS Access表单中的查询列表框:选择仅在与查询匹配时可见,sql,ms-access,listbox,Sql,Ms Access,Listbox,我有一个1:1的关系,让我们简单地称它们为对象和人。每个对象可以有零个或一个人。该对象有一个由对象组id和对象id组成的复合主键。 现在,我的用户需要一种方便的方式来填充丢失的数据,所以我创建了一个表单,显示所有没有指定人员的对象。表单是一个数据表,有三列:组id、对象id和person键,打开表单时,所有行的person键都为空 由于某些对象很可能与来自同一组的其他对象具有相同的人员,因此我创建了人员id字段作为列表框,通过查询返回当前选定组的所有人员,因此用户可以通过下拉菜单简单地添加他们。

我有一个1:1的关系,让我们简单地称它们为对象和人。每个对象可以有零个或一个人。该对象有一个由对象组id和对象id组成的复合主键。 现在,我的用户需要一种方便的方式来填充丢失的数据,所以我创建了一个表单,显示所有没有指定人员的对象。表单是一个数据表,有三列:组id、对象id和person键,打开表单时,所有行的person键都为空

由于某些对象很可能与来自同一组的其他对象具有相同的人员,因此我创建了人员id字段作为列表框,通过查询返回当前选定组的所有人员,因此用户可以通过下拉菜单简单地添加他们。包含组id的表单控件在查询中被引用,当选择更改时,列表框将被重新查询

到目前为止,它是有效的。我现在的问题是,当我在指定了一个人之后选择另一个组的任何对象时,指定了这个人的单元格内容将消失。我将人员分配到多个对象进行测试,并注意到“人员”列仅显示当前选定对象组的指定人员。如果我从另一个组中选择一个对象,它们将消失,而另一个对象的人物将出现。如果我再次从同一组中选择一个对象,则指定的人员将再次出现。 因此,只有当相应行的查询结果包含指定的人员时,这些人员才可见


不过数据还是保存了下来。分配的人员将立即保存到对象表。

谢谢。我添加了另一列,仅用于显示指定的人员。上一个字段现在仅用于选择一个。现在的问题是,新列显示人员id,但它应该显示人员名称,但当然要将id存储在表中。实现这一点的正确方法是什么?如何解决这个问题在很大程度上取决于数据的工作方式。新列可以基于将主表与名称表连接在一起的查询,以便它显示名称,也可以是名称表的dlookup。