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!!!!!!!!!
Página 1 de 1
Preciso de Ajuda pra Gravar soma no Banco de Dados Soma todos os produtos da venda, e gravar no campo valor da venda!
#2
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.
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
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...
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
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"
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


Entrar
Cadastre-se
Ajuda

Quote