Estou ficando frustrado ao entender como configurar um relacionamento um para um no Microsoft Access 2019. Eu tenho um tblAccounts
subtipo de tblVendors
e tblClients
.
Agora, posso não ter um entendimento completo de como isso deve funcionar, mas minha "Bíblia do Access 2019" mal toca nesse assunto e não consigo encontrar nenhum exemplo online disso.
Minha configuração é, para simplificar:
tblAccounts
-----------
AccountID [AutoNumber, PK]
AccountName [ShortText]
AccountData...
e
tblClients
---------
AccountID [Number, PK-FK]
ClientData...
tblVendors
---------
AccountID [Number, PK-FK]
VendorData...
Eu tenho os relacionamentos configurados corretamente, acredito... A partir de agora, posso criar um registro de conta e, em seguida, criar separadamente um registro de cliente/fornecedor. É um-para-um com Integridade Referencial, portanto, permitirá apenas AccountIDs existentes e os permitirá apenas uma vez. MAS eu tenho que digitar manualmente os IDs da conta.
O que estou procurando, quando crio uma consulta SELECT entre tblAccount
e os subtipos, é como fazer com que os registros compartilhem o mesmo de forma AccountID
automática e mágica. Ou devo usar uma macro que adiciona os registros secundários nas tabelas Cliente/Fornecedor? Ou estou fazendo isso completamente errado/minhas tabelas precisam ser reconfiguradas.
Estou apenas no nível de design de tabela e consulta do meu projeto neste momento. Então, se perguntando se isso não é possível neste nível?
Obrigado a todos!
Editar:
Esclarecimento,
Estou procurando fortalecer o relacionamento entre tblAccounts
e seus subtipos. Portanto, sempre que, a qualquer momento, um registro é criado tblClient
ou tblVendro
um registro de jantar é criado em tblAccount
relação a esse cliente ou fornecedor por meio do AccountID.
Ao contrário de agora, onde primeiro tenho que criar um registro tblAccounts
e, em seguida, criar um registro tblClient/Vendor
e digitar manualmente o AccountID de tblAccounta
.
Neste ponto do meu design, não estou tentando extrair, juntar ou extrapolar nenhum dado extra, só quero entender como o One-To-One realmente funciona no acesso e se eu realmente deveria usá-lo. As tabelas do cliente e do fornecedor devem ser independentes uma da outra, embora sejam semelhantes na maioria dos dados de configuração? Minha "Bíblia do Microsoft Access 2019, de Michael Alexander e Dick Kulsleika" usa esta conta -> relação cliente/fornecedor para descrever um para um, mas não oferece exemplos de configuração. Eu apenas pensei que o relacionamento deveria existir como tal, se eles se dessem ao trabalho de mencioná-lo em um livro divulgado de verdade.
Você gostaria de poder armazenar uma linha em uma tabela dependente em uma restrição de integridade de chave estrangeira e isso criará automaticamente a linha pai. Isso não pode funcionar porque:
Você deve olhar para outros mecanismos que melhor se adaptam às suas necessidades:
Macro de dados
Com isso você pode criar uma macro que será acionada pelo insert na tabela dependente.
Procedimento SQL
Com isso, você pode criar um procedimento que fará o trabalho repetido de inserir uma linha na tabela dependente após verificar se existe uma linha pai, criando-a com valores padrão se não existir. Você também pode criar procedimentos para atualização ou exclusão da tabela pai.
Usar um dos itens acima pode tornar supérflua a restrição de integridade de chave estrangeira. Sem ele, algumas operações do banco de dados podem se tornar mais rápidas.