Existem alguns aspectos para isso e muitas soluções possíveis.
Parece que as principais questões / objetivos que você tem são:
- Como deve ser o esquema (tabelas) para permitir uma vinculação entre dois registros na mesma tabela?
- Como pular de um registro em um formulário (visão única) para o registro relacionado?
Existem várias maneiras de vincular os registros. O mais simples é provavelmente um campo na tabela que contém o ID da mesma tabela. A desvantagem é que é possível que os dados sejam inconsistentes: se os links do registro 1 para o registro 2 devem registrar o link 2 para o registro 1 em retorno? Talvez. Talvez isso não seja importante para você.
Nota: Se você precisar vincular mais do que apenas pares de registros (ou seja, grupos com mais de dois), o campo de auto-referência simples não funcionará (a menos que você os encadeie, mas - yuck). Neste caso você tem que ter outra tabela que tenha registros para cada elemento em cada grupo. Eu vou ignorar isso, já que você disse especificamente pares de registros.
Portanto, adicione um campo à tabela chamado algo como RelatedItemID
. Deve ser um número do mesmo tipo de dados que o ID da tabela.
Em seguida, você quer uma maneira de criar os links. Sugiro uma caixa de combinação no formulário que lista todos os registros dessa tabela e tem um ControlSource
definido para o campo RelatedItemID
.
Finalmente, para ir para o registro relacionado é uma simples questão de usar o código VBA por trás de um botão.
Private Sub JumpToRelated_Click()
Me.RecordsetClone.FindFirst "ID = " & RelatedItemID
If Not Me.RecordsetClone.NoMatch Then
Me.Bookmark = Me.RecordsetClone.Bookmark
End If
End Sub
Isso navegará no formulário para o registro relacionado.
Para garantir a consistência - ou seja, aplicar o relacionamento bidirecional - você pode querer algum código no evento AfterUpdate da caixa de combinação para definir o link do 'outro' registro para o registro atual e limpar o link antigo (se houver) . Isso não é obrigatório - significa apenas que o usuário teria que manter manualmente o relacionamento de duas vias.