iMasters Fóruns: Preciso de Ajuda pra Gravar soma no Banco de Dados - iMasters Fóruns

Ir para

Página 1 de 1
  • Novo tópico
  • Responder

Preciso de Ajuda pra Gravar soma no Banco de Dados Soma todos os produtos da venda, e gravar no campo valor da venda!

#1 Membro offline   Emelicio Puel Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 1
  • Cadastrado: 18-julho 06

Postou 18 julho 2006 - 10:55

Bom Dia Galera..... estou precisando de uma ajudinha!!!!!

Eu desenvolvi um sistema onde possui cadastro de Clientes, Cadastro de
Produtos, e um Balcão de Vendas...

A Tabela "Cliente" Tem:
*CodCli
*Nome
*CPF
*Endereço
*Telefone

A Tabela "Produtos" Tem:
*REF (Chave Primária)
*Descrição
*ValorUnitário

Criei uma Tabela "Vendas" onde tem os seguntes campos:
*CodVenda
*CodCliVenda
*DataVenda
*DataVenc
*Valor

Criei uma Tabela de "ProdutosVenda" com os seguintes campos:
*CodProVenda
*CodVenda
*REF
*QUANT
*ValorUnitário

No formulário Balcão de Vendas é Assim:

Tenho o formulário principal, com os dados do cliente, que já abre num
cliente especifico através de uma busca....
Tenho o SubFormulário "Vendas", com data da venda, data de vencimento,
e Valor...
E Dentro do SubFormulário "Vendas" tenho o SubFormulário
"ProdutosVenda"...

Quando efetuo a vendas, eu escolho no SubFormulário "ProdutosVenda" a
REF do Produto, e automáticamente trás o ValorUnitário,
DescriçãoDoProduto, e ai multiplica a Quantidade pelo ValorUnitário, e Resulta num
campo Virtual Total, e no Rodapé tem a Um Campo Virtual que soma o total,
de cada Registro, Até ai esta beleza.... Mais eu gostaria que esse valor
que é a soma de tudo, ficasse armazenado no campo "Valor", da Tabela de
"Vendas", para que eu possa mais tarde fazer cunsulta de valores
vencidos ente Outras consultas!!!!!!!!!!

Meu E-Mail é emeliciopuel@yahoo.com.br

Agradeço sua Atenção!!!!!!!!!!

Atenciosamente

Emelicio Puel!!!!!!!!!

#2 Membro offline   a£e× Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 22
  • Cadastrado: 23-dezembro 04

Ícone  Postou 20 julho 2006 - 10:40

Bom.. é o seguinte..

Você pode futuramente realizar consultas que somam valores, aí não seria necessário gravar o valor total na tabela vendas, mas se o caso é gravar este valor, faça o seguinte:

Bom, pelo que eu entendi, você tem um Form, que dentro tem um SubForm, que dentro tem outro SubForm.

Dados do Cliente --> Vendas --> ProdutosVendas

No form produtos venda, deve haver um botão como: "Confirma", "Conclui", ou algo do tipo. E vamos supor que o campo não acoplado que faz a soma de tudo chama-se "TotalVenda".

Aí.. você cria uma consulta atualização, que irá alterar o campo "Valor" da tabela vendas, mas isso de acordo com o CodVenda que está sendo exibido no formulário, para alterar o campo cujo registro seja o mesmo exibido no formulário.

A consulta deve alterar o campo "Valor" da tabela "Vendas" para o valor do campo "TotalVenda" do SubForm Vendas.

Deve ser inserido um procedimento de evento - ao clicar no botão confirma do SubForm "Vendas"- que execute tal consulta.

Pronto.. tá gravando o Valor Total.

#3 Membro offline   chico_ua Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 6
  • Cadastrado: 03-agosto 07

Postou 06 setembro 2007 - 14:44

Olá,
eu tenh 1 problema parecido mas n consigo resolver da pa dar uma ajuda?

É em td identico, pretendo apartir de um formulario guardar um valor numa tabela, valor exe que vem de outro formulario atrás..


Até ter o valor numa variavel td bem mas depois para gravar eu n uso botão mas sim os controlos do access...

neste caso como faço?

Tou mesmo enrascado...


Obrigado...

#4 Membro offline   Db+ Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 2
  • Cadastrado: 07-setembro 07

Postou 07 setembro 2007 - 22:40

Emelicio Puel,

Fiquei curioso em saber como você. conseguiu colocar um subformulario dentro de outro subformulário.

Respondendo sua pergunta:
Em um banco de dados bem elaborado, não se armazena valores calculados.

O seu banco deve ter o seguinte DFD:

tblCliente 1---<>---N tblVenda 1---<>---N tblVendaItem N---<>---1 tblProduto

Relacionamentos:
CliId ------CliId-------CliId-------CliId
................VenId-----VenId------VenId
.................................................VenItemId
tblCliente
#CliId
CliNome
...

tblVenda
#CliId
#VenId
Data
...

tblVendaItem
#CliId
#VenId
#VenItemId
ProId
VenQde
VenValUnit
...

tblProduto
#ProId
ProDescricao
ProValUnit
...

Querys:
Vendas por Produtos X Produtos:
SELECT tblCliente.CliNome, tblVenda.VenId, tblVenda.VenData, tblVendaItem.ProId, tblProduto.ProDescricao, tblVendaItem.VenQde, tblVendaItem.VenValUnid, [VenValUnid]*[VenQde] AS Total
FROM (tblCliente INNER JOIN tblVenda ON tblCliente.CliId = tblVenda.CliId) INNER JOIN (tblProduto INNER JOIN tblVendaItem ON tblProduto.ProId = tblVendaItem.ProId) ON (tblVenda.VenId = tblVendaItem.VenId) AND (tblVenda.CliId = tblVendaItem.CliId);

Vendas por Clientes:
SELECT tblCliente.CliNome, tblVenda.VenId, tblVenda.VenData, Sum([VenValUnid]*[VenQde]) AS Total
FROM (tblCliente INNER JOIN tblVenda ON tblCliente.CliId = tblVenda.CliId) INNER JOIN tblVendaItem ON (tblVenda.VenId = tblVendaItem.VenId) AND (tblVenda.CliId = tblVendaItem.CliId)
GROUP BY tblCliente.CliNome, tblVenda.VenId, tblVenda.VenData;

Caso realmente queira armazenar o valor total de vendas na tabela tblVendas:
Crie uma query com o nome qryAtualizarTotal
UPDATE tblVenda SET tblVenda.VenTotal = DSum("[VenQde]*[VenValUnid]","[tblVendaItem]")
WHERE (((tblVenda.CliId)=[Forms]![frmVendas]![txtCliId]) AND ((tblVenda.VenId)=[Forms]![frmVendas]![txtVenId]));

Crie um botão no formulário para armazenar o valor total na tblVenda:
docmd.OpenQuery "qryAtualizarTotal"

Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)