0

对于那些有 Access 经验的人来说,我怀疑这可能很简单,这让我感到非常困惑。我是 Access (2010) 的新手并且学习了很多,但不幸的是仍然对许多基本概念感到困惑。我很尴尬地承认我花了大约 40 个小时尝试(未成功)解决下面的具体问题。如果我在这里没有提供足够的细节,请原谅我 - 我不确定有人需要知道多少才能解决这个问题。我很乐意编辑和/或提供更多信息。

我的问题:

如何创建用于在 Table1 中创建新记录/编辑现有记录的表单,其中 Table1 中的两个字段与 Table2 中的单个字段具有不同的值?(我在下面有更好的细节)

我希望表单包含 Table1 中的所有记录。我用查询、子表单等尝试了许多不同的方法,但无法完成。我相当确定这个问题与我如何处理 Table2 有关。理想情况下,用户将能够从表单的下拉列表中选择要在 Table1 中更新的两个字段。

我包括我的预期表单概念模型的屏幕截图、我目前拥有的对象关系、Table1 的设计和数据表视图以及 Table2 的设计和数据表视图。

上面的“Table1”是图像中的“t_PEOPLE”,而“Table2”是“t_COLORS”。</p>

对象关系类型目前是一对多的,具有强制引用完整性(级联更新相关字段),连接属性是“包括来自 't_PEOPLE' 的所有记录,并且仅包括来自 't_COLORS' 的那些记录,其中连接字段相等。”

如果有帮助,我很乐意发送实际的数据库文件。

我将非常感谢任何指导 - 谢谢!

样机表单概念的屏幕截图 对象关系的屏幕截图 t_PEOPLE 数据表视图的屏幕截图 t_PEOPLE 设计视图截图 t_COLORS 数据表视图的屏幕截图 t_COLORS 设计视图的屏幕截图

4

1 回答 1

1

对此的一般方法如下:

A)如果我了解您在这里尝试做什么,您的 t_colors 表通常称为参考表或查找表。您需要制作一个表单来添加、编辑和删除此 t_colors 表中的记录。用户访问该表单的方式各不相同。我会在一分钟内解决这个问题。

B) 您的 People 表的表单需要有用于两种颜色选择的下拉菜单。在下拉菜单的 RowSource 中,您将使用在 t_colors 表中查找值的查询。

C) 根据您在 t_people 中使用颜色的目的,您应该考虑制作第三张表,其中包含 PeopleID 和 ColorID。然后它将链接到 t_people 和 t_colors。这将允许您为一个人指定多种颜色,并且您不会被限制为两种。在您的人员表单中,您将使用这些颜色的子表单。子表单可能需要是数据表表单或连续表单。如果您为人员表单使用数据表表单,那么您需要为颜色子表单使用数据表表单。

如果用户想要使用您的 t_colors 表中尚不存在的颜色,您需要为他们提供一种插入该颜色的方法。对此有多种方法。您可以在显示“”选项的下拉列表 RowSource 中使用联合查询。如果选中,您将打开您的颜色表单,当他们关闭颜色表单时,您必须重新查询您的下拉菜单。或者,当他们输入“不在列表中”的值(组合框具有的事件)时,您可以使用 VBA 为他们插入颜色。

请注意,您定义的关系在这种情况下并不过分有用或重要。是的,在使用更新级联或删除级联功能时,它们会很有帮助。但说实话,关系基本上是为程序员准备的,以确保在违反引用完整性时以及何时出现错误。用户应该永远不会看到这些错误,正确设计的表单将防止它们发生。使用它们的主要原因是它会迫使你正确地设计你的表单,当出现问题时给你一个错误,希望在你自己的项目测试阶段。

于 2013-10-12T20:51:38.710 回答