我有一个简单的平面数据库,其中大约有 40 个字段。每条记录都有一个唯一的 ID。
有几对记录之间存在着微弱的联系,我想在每条记录上放置一个链接/书签,以便我可以直接跳转到相连的记录。
这是记录到记录在简单的平面数据库结构内可以进行链接吗?
答案1
这涉及几个方面,也有许多可能的解决方案。
您的主要问题/目标似乎是:
- 为了允许同一张表中的两个记录之间建立链接,模式(表)应该是什么样的?
- 如何从表单(单视图)上的一条记录跳转到相关记录?
有几种方法可以将记录链接在一起。最简单的方法可能是表上的一个字段,其中包含同一个表的 ID。缺点是数据可能不一致:如果记录 1 链接到记录 2,记录 2 是否也必须链接到记录 1?也许。也许这对你来说并不重要。
注意:如果您需要链接的不仅仅是记录对(即两个以上的组),那么简单的自引用字段将不起作用(除非您将它们链接起来,但是 - 真讨厌)。在这种情况下,您必须有另一个表,其中包含每个组中每个元素的记录。我会忽略这一点,因为您明确提到了记录对。
因此,在表中添加一个名为的字段,例如RelatedItemID
。它应该是与表的 ID 相同数据类型的数字。
接下来您需要一种创建链接的方法。我建议在表单上添加一个组合框,列出此表中的所有记录,并设置ControlSource
字段RelatedItemID
。
最后,跳转到相关记录只需使用按钮后面的 VBA 代码即可。
Private Sub JumpToRelated_Click()
Me.RecordsetClone.FindFirst "ID = " & RelatedItemID
If Not Me.RecordsetClone.NoMatch Then
Me.Bookmark = Me.RecordsetClone.Bookmark
End If
End Sub
这会将表单导航至相关记录。
为了确保一致性(即强制双向关系),您可能需要在组合框的 AfterUpdate 事件中设置一些代码,将“其他”记录的链接设置为当前记录,并清除旧链接(如果有)。这不是强制性的,只是意味着用户必须手动维护双向关系。