Acesso: Como combinar / relacionar registros uns aos outros dentro do mesmo campo?

1

No meu banco de dados do Access é uma tabela com informações do projeto, o ID é 'projectnumber'. Eu quero ser capaz de combinar / link / relacionar projectnumbers diferentes (todos declarados no mesmo campo) entre si.

Então, quando eu abro o projeto 1 em um formulário, quero ver os projetos dos projetos relacionados ao projeto 1, por exemplo, os números 2, 5 e 6. E quando eu abrir o projeto 2, eu gostaria de ver projectnumbers 1, 5 e 6. No formulário, gostaria de adicionar novos 'relacionamentos'.

Infelizmente, não sei como fazer isso acontecer. Preciso criar uma nova tabela (ou apenas um campo) que forneça aos projetos relacionados entre si um "ID de relacionamento"? Ou isso pode ser resolvido por um selfjoin?

    
por Monika 03.07.2013 / 15:05

1 resposta

0

Pouco atrasado, mas sim uma auto-adesão .

  • Adicione um novo campo à tabela, como MainProject . Certifique-se de que tenha o mesmo tipo de dados que o campo ProjectNumber ;
  • Entre na janela de relacionamentos e adicione a tabela uma segunda vez. Arraste e solte de MainProject da primeira cópia para ProjectNumber da segunda cópia;
  • Clique duas vezes na linha de junção e escolha Enforce Integrity Referential . Isso garantirá que você não pode atribuir o MainProject um ID que ainda não é um ProjectNumber existente.

Quando você cria um formulário que é usado para criar novos registros para essa tabela, adicione um ComboBox e defina seu RowSource para uma instrução sql que lista os ProjectNumbers (e talvez outros campos) da tabela. Defina seu ControlSource para MainProject .

Note, no entanto, que se você está criando um novo projeto e o id deste projeto também será usado como o ID do projeto principal, então ele requer um pouco mais de esforço. Você precisaria salvar o registro atual e ReQuery da caixa de combinação antes que esse novo ID seja exibido em sua lista. Você pode querer usar um botão para conseguir isso com o código. Manualmente, você pode pressionar Shift-Enter para salvar o registro atual, depois clicar na caixa de combinação e pressionar F9 para repetir a consulta.

No entanto, se houver outros detalhes relevantes para este projeto principal que ainda não estejam na tabela, sim, você deve criar uma nova tabela para manter esses detalhes - especificamente, ou seja, informações que são APENAS relevante para os principais projetos.

Se você precisar apenas do ProjectNumber (do projeto principal), a auto-associação, conforme descrito acima, será suficiente.

    
por 25.07.2013 / 00:09