Jump to content

Relacionamento de tabelas com conflito, depois de importar um referencial.


amilq
 Share

Go to solution Solved by Luis_vxd,

Recommended Posts

Olá amigos;

Antes de mais dou os parabéns aos criadores deste fórum e a todos os colaboradores. Eu fui comercial do software PHC e SAGE que é vendido em Portugal. Como não sei programar, estou tentando criar sistemas em Access.

Eu criei um sistema de vendas e errei ao relacionar a tabela de vendas com a “tabela” de “vendas detalhe”.

Ao impor integridade referencial, eu marquei:

Propagação dos registos eliminados. Aqui está correto.

Mas também marquei propagar a atualização dos campos selecionados. Aqui errado.

O que acontece?

Depois de fazer várias vendas de teste, atualizei o preço de alguns produtos. Depois, foram vendidos quando foram vendidos os produtos na consulta que tinha, os preços dos produtos vendidos foram atualizados. Dessa forma, sempre que atualizo o preço de um produto, como várias consultas feitas, o que não pode acontecer.

Tentei resolver:

Elimine todas as relações e chorei de novo.

Resultado: Continua o erro.

Crie novos campos de chave primária (ID), em todas as tabelas e elimine todos os registros.

Executei uma ferramenta de reparo de uma base de dados.

Crie novos formulários.

Eliminei todas as consultas.

Resultado: Continua a dar o mesmo erro.

O que posso fazer, agora que os relacionamentos são corretos? Será que posso executar alguma rotina?

Adicione a sua ajuda pois não sei o que fazer mais.

Atenciosamente

Joaquim Lima

 

Edited by amilq
Texto com erros.
Link to comment
Share on other sites

Boa tarde

Parece-me que o problema está no modo como as tabelas estão construídas e no modo como a query é feita.

Genéricamente, a tabela do produto não tem o campo Preço, que faz parte de uma outra tabela (Preços) e que é ligada ao Produto. Se estou a entender bem o seu problema, parece que a tabela das consultas não retém o preço do produto na altura que a consulta é feita. Isto faz com que a venda baseada numa consulta tenha sempre o preço actual e não o que foi dado na consulta.

Será isto?

Cumprimentos

Luis

Link to comment
Share on other sites

Posted (edited)

Boa tarde amigo;

Antes de mais, editei o texto da mensagem anterior, porque estava cheio de erros. Copiei para o Word e não tinha erros. Voltei a inserir . Não sei porque isto acontece.

Eu envio um link com imagens da base de dados. Não consegui inserir as imagens na mensagem. Abre-se uma pasta no OneDrive.

Link para visualização das imagens da base de dados:    Imagens da base de dados.

Eu crio a tabela de produtos onde insiro o preço de compra e venda.

Na tabela de vendadetalhes, Pelo assistente de pesquisa relaciono o ID da tabela do produto ao campo referencia.

As imagens que partilho, ilucidam bem como fiz.

Tudo estava a funcionar bem exceto os preços que depois de atualizados, atualizam todas as consultas.

Terei como diz, de criar a tabela preços?

Como construo essa tabela e a relaciono com a de produtos?

Obrigado

Joaquim

 

Edited by amilq
Link to comment
Share on other sites

  • Solution

Boa noite Joaquim

A tbl_VendasDet deve ter um campo para o preço do produto. Este campo é preenchido quando se fecha (salva) a venda para que não seja atualizado. De outro modo o preço da venda é perdido e cada vez que se consulta a venda o preço que mostra é sempre o preço actual e não o da venda.

Isto normalmente é feito ou com uma consulta que atualiza a venda ou uma rotina em VBA.

Cumprimentos

Luis

Cumprimentos

Luis

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.