Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Flávio Fortes

Relacionamento entre tabelas

Recommended Posts

Galera, bom dia!

 

Possuo as seguintes tabelas:

TB_FORNECEDORES
(pk) codigo
     nome
(fk) codAtendente

TB_CLIENTE
(pk) codigo
     nome
(fk) codAtendente

TB_ATENDENTES
(pk) codigo
     nome

 

Quando cadastro um cliente ou um fornecedor, apresenta a seguinte mensagem de erro no BD:

"Não é possível adicionar ou alterar registros, pois é necessários que eles tenham um registro relacionado na tabela 'TB_ATENDENTES'."

 

  • O relacionamento está: TB_ATENDENTES (1 ---- N) TB_FORNECEDORES.
  • Igualmente para a TB_CLIENTE
  • Estou usando Access

 

O que está errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para adicionar um fornecedor ou um cliente você precisa preencher o campo codAtendente, caso contrário ele não vai funcionar. E precisa ser um valor válido, ou seja, ele precisa estar na tabela de atendentes também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe um módulo no sistema só para cadastro de atendente.

Nos cadastros do cliente e fornecedor existe uma combobox onde seleciono o atendente. cadastrando assim somente o código do atendente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim Flávio, mas para você cadastrar qualquer cliente você precisa inserir o código do atendente relacionado com este cliente, do contrário o banco de dados não vai permitir a inserção do registro. Poste sua query aqui por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre o atendente consegui resolver.

Agora o que tá pegando é isso:

OleDbCommand cadastrarCodigoClienteEmail = new OleDbCommand("INSERT INTO tb_emails (codCliente) SELECT tb_clientes.codigo FROM tb_clientes WHERE tb_clientes.nome = '" + nome + "' ", objConexao);

OleDbCommand cadastrarEmail = new OleDbCommand("UPDATE tb_emails SET tb_emails.email = '" + email + "' WHERE tb_emails.codCliente IN (SELECT tb_clientes.codigo FROM tb_clientes INNER JOIN tb_emails ON tb_clientes.codigo = tb_emails.codCliente WHERE tb_emails.codCliente = tb_clientes.codigo AND tb_cliente.nome = '" + nome +"')", objConexao);
            

 

Ao cadastrar email... fala que nenhum parametro foi fornecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

KhaosDoctor, meu amigo!

 

O erro era o nome da tabela, que estava no singular (tb_cliente), que na verdade é tb_clientes.

 

Putz!

Pensamos em um problema cabuloso, quando a solucão é somente uma leitura mais detalhada.

Muito obrigado mais uma vez pela ajuda e precisando estou aqui.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.