Ссылка на другую запись в базе данных FLAT Access

Ссылка на другую запись в базе данных FLAT Access

У меня есть простая плоская база данных с примерно 40 полями. Каждая запись имеет уникальный идентификатор.

Есть несколько пар записей, которые имеют слабую связь, и я бы хотел разместить ссылку/закладку на каждой записи, чтобы можно было напрямую перейти к связанной записи.

Этозапись к записивозможно ли связывание в рамках простой плоской структуры базы данных?

решение1

Здесь есть несколько аспектов и много возможных решений.

Похоже, что ваши основные вопросы/цели таковы:

  1. Как должна выглядеть схема (таблицы), чтобы обеспечить связь между двумя записями в одной таблице?
  2. Как перейти от одной записи в форме (единое представление) к связанной записи?

Есть несколько способов связать записи вместе. Самый простой, вероятно, это поле в таблице, которое содержит идентификатор той же таблицы. Недостаток в том, что данные могут быть несогласованными: если запись 1 ссылается на запись 2, запись 2 должна ссылаться на запись 1 в ответ? Возможно. Возможно, это не имеет для вас значения.

Примечание: Если вам нужно связать больше, чем просто пары записей (т. е. группы из более чем двух), то простое поле самоссылки не будет работать (если вы не свяжете их, но - фу). В этом случае вам понадобится еще одна таблица с записями для каждого элемента в каждой группе. Я проигнорирую это, поскольку вы конкретно сказали пары записей.

Поэтому добавьте поле в таблицу с названием вроде RelatedItemID. Это должно быть число того же типа данных, что и идентификатор таблицы.

Далее вам нужен способ создания ссылок. Я предлагаю выпадающий список на форме, который перечисляет все записи из этой таблицы и имеет набор 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 выпадающего списка, чтобы установить ссылку записи «другой» на текущую запись и очистить старую ссылку (если таковая имеется). Это не обязательно — это просто означает, что пользователю придется вручную поддерживать двустороннюю связь в противном случае.

Связанный контент