連結到 FLAT Access 資料庫中的另一筆記錄

連結到 FLAT Access 資料庫中的另一筆記錄

我有一個簡單的平面資料庫,包含大約​​ 40 個欄位。每筆記錄都有一個唯一的 ID。

有幾對記錄的連接很脆弱,我會在每個記錄上放置一個連結/書籤,以便我可以直接跳到連接的記錄。

這是記錄到記錄在簡單的平面資料庫結構中可以連結嗎?

答案1

這有幾個方面以及許多可能的解決方案。

您的主要問題/目標似乎是:

  1. 架構(表)應該是什麼樣子才能允許同一表中的兩筆記錄之間的連結?
  2. 如何從表單(單一檢視)上的一筆記錄跳到相關記錄?

有多種方法可以將記錄連結在一起。最簡單的可能是表格中包含同一個表格的 ID 的欄位。缺點是資料可能不一致:如果記錄 1 連結到記錄 2,則記錄 2 必須連結到記錄 1 作為回報嗎?或許。也許這對你來說並不重要。

注意:如果您需要連結的不僅僅是成對的記錄(即兩個以上的群組),那麼簡單的自引用欄位將不起作用(除非您連結它們,但是 - 噁心)。在這種情況下,您必須有另一個表,其中包含每個組中每個元素的記錄。我會忽略這一點,因為你特別提到了成對的記錄。

因此,向表中新增一個名為 之類的欄位RelatedItemID。它應該是與表的ID相同資料類型的數字。

接下來您需要一種建立連結的方法。我建議在表單上使用一個組合框,其中列出了該表中的所有記錄,並設定了ControlSourceRelatedItemID欄位。

最後,要跳到相關記錄,只需在按鈕後面使用 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 事件中使用一些程式碼來將「其他」記錄的連結設為目前記錄,並清除舊連結(如果有)。這不是強制性的 - 它只是意味著用戶必須手動維護雙向關係。

相關內容