FLAT Access 데이터베이스의 다른 레코드에 연결

FLAT Access 데이터베이스의 다른 레코드에 연결

약 40개의 필드가 있는 간단한 플랫 데이터베이스가 있습니다. 각 레코드에는 고유한 ID가 있습니다.

연결이 약한 몇 쌍의 레코드가 있으며 연결된 레코드로 직접 이동할 수 있도록 각 레코드에 링크/책갈피를 배치하고 싶습니다.

이건가?기록하다 기록하다단순한 평면 데이터베이스 구조 내에서 연결이 가능합니까?

답변1

이에 대한 몇 가지 측면과 가능한 많은 솔루션이 있습니다.

귀하의 주요 질문/목표는 다음과 같습니다.

  1. 동일한 테이블에 있는 두 레코드 간의 연결을 허용하려면 스키마(테이블)는 어떤 모습이어야 합니까?
  2. 양식(단일 보기)의 한 레코드에서 관련 레코드로 이동하는 방법은 무엇입니까?

기록을 서로 연결하는 방법에는 여러 가지가 있습니다. 가장 간단한 것은 아마도 동일한 테이블의 ID를 포함하는 테이블의 필드일 것입니다. 단점은 데이터가 일관성이 없을 수 있다는 것입니다. 레코드 1이 레코드 2에 연결되면 그 대가로 레코드 2 링크가 레코드 1에 연결되어야 합니까? 아마도. 아마도 그것은 당신에게 중요하지 않을 것입니다.

참고: 레코드 쌍 이상(예: 2개 이상의 그룹)을 연결해야 하는 경우 단순 자기 참조 필드는 작동하지 않습니다(체인으로 연결하지 않는 한, 하지만 - 윽). 이 경우 각 그룹의 각 요소에 대한 레코드가 있는 또 다른 테이블이 있어야 합니다. 레코드 쌍을 구체적으로 언급했으므로 무시하겠습니다.

따라서 테이블에 다음과 같은 필드를 추가하십시오 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 이벤트에 일부 코드가 필요할 수 있습니다. 이는 필수 사항은 아닙니다. 그렇지 않으면 사용자가 수동으로 양방향 관계를 유지해야 한다는 의미일 뿐입니다.

관련 정보