2 participantes
[Resolvido]como enviar valor campo calculado para tabela
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
- Mensagem nº1
como enviar valor campo calculado para tabela
Bom dia! tenho um campo calculado no subform =[quant]*[valorunit] como que enviar o resultado para tabela?
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
Não envie. Não se grava campo calculado na tabela. Você já tem a quantidade e o valor unitário gravados na tabela. Então para que comer espaços na tabela se você pode usar esses valores para fazer os cálculos a qualquer momento que precisar, tanto em formulários quanto em consultas e relatórios?
No entanto, todavia e de qualquer forma, caso queria realmente gravá-los e não se importe em perder preciosos megabytes com o passar do tempo, vincule o campo à tabela e calcule-o por vba:
Me.NomeDoCampo = nz(Me.CampoQtd, 0) * nz(Me.CampoValorUnit, 0)
Pode colocar no evento "Após atualizar" dos dois campos a serem calculados ou outro evento que melhor convier.
No entanto, todavia e de qualquer forma, caso queria realmente gravá-los e não se importe em perder preciosos megabytes com o passar do tempo, vincule o campo à tabela e calcule-o por vba:
Me.NomeDoCampo = nz(Me.CampoQtd, 0) * nz(Me.CampoValorUnit, 0)
Pode colocar no evento "Após atualizar" dos dois campos a serem calculados ou outro evento que melhor convier.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Criquio até estou tentando fazer via vba
mas não retorna o valor , o valor do campo subtotal1 no subformulário detalhevenda é necessário para uma consulta posterior
por favor de uma olhada no exemplo
http://speedy.sh/MTBhK/Banco-de-Dados2003.mdb
mas não retorna o valor , o valor do campo subtotal1 no subformulário detalhevenda é necessário para uma consulta posterior
por favor de uma olhada no exemplo
http://speedy.sh/MTBhK/Banco-de-Dados2003.mdb
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
Como eu disse, não precisa guardar esse subtotal na tabela, basta utilizar a quantidade e valor unitário nessa consulta que for fazer. Para o seu caso, eu deixaria como estava, com o subtotal na origem do campo e sem gravá-lo na tabela.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Criquio o que acontece e que a quantidade utiliza quebrados exemplo
0,500 x 4,99 que é o preço do kg = 0,500x4,99 = subtotal 2,50
terei enviar o 2,50 se não ele envia 4,99
0,500 x 4,99 que é o preço do kg = 0,500x4,99 = subtotal 2,50
terei enviar o 2,50 se não ele envia 4,99
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
Explica melhor sua necessidade. O que quer dizer com "... senão ele envia 4,99"? Porque não precisa enviar nem 2,50 e nem 4,99. Você só vai precisar calcular o subtotal na consulta ou aonde precisar exibi-lo, igual é calculado no campo do subformulário.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Bom eu preciso saber quando foi vendido no dia , e não for enviado o subtotal1
fica gravado apenas o valounit ai que não da certo para produtos pesados
peso 0,500 x valorunit 4,99 = 2,50 foi vendido apenas 2,50 na tabela fica gravado o valorunit 4,99 ai da diferença
fica gravado apenas o valounit ai que não da certo para produtos pesados
peso 0,500 x valorunit 4,99 = 2,50 foi vendido apenas 2,50 na tabela fica gravado o valorunit 4,99 ai da diferença
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
Olha só, analisando a estrutura do seu banco agora, vejo que você repete alguns campos em todas elas. Eu mudaria essa estrutura. A tabela de produtos deve armazenar o código, a descrição e o valor unitário. A tabela de vendas deve armazenar os dados da venda, como o código do cliente, a data da venda, hora da venda. Na tabela detalhes da venda é que você colocar o código do produto e a quantidade vendida, alem do preço que pode vir automaticamente da tabela de produtos. Nessa tabela de detalhes da venda deve constar a quantidade e o preço unitário. É com base nesses detalhes que você faz os cálculos aonde precisar.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Tá complicado isso, tem como que me enviar um exemplo?
faça o seguinte teste por favor no exemplo que enviei
F9 entre com quantidade 0,500 entrar digite código 6
veja no subform faz o calculo mas na tabela detalhe é enviado valorunit 4,99
faça o seguinte teste por favor no exemplo que enviei
F9 entre com quantidade 0,500 entrar digite código 6
veja no subform faz o calculo mas na tabela detalhe é enviado valorunit 4,99
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
talves via consulta sql?
mas como fazer?
mas como fazer?
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
Amigão, como eu disse anteriormente, é mais uma questão de estrutura das tabelas e dos relacionamentos. Dê uma pesquisada por relacionamentos aqui no fórum e veja se ajuda a clarear as ideias.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Refiz tudo continua com o mesmo problema!
Convidado- Convidado
Manda o baita ai Alexandre.. e descreva o que pretende..
Mas adiantando.. O Mestre dos Magos tem razão no que falou.
Cumprimentos.
Mas adiantando.. O Mestre dos Magos tem razão no que falou.
Cumprimentos.
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
o BD mensagem 3
Eu preciso é saber quanto foi vendido dia certo
o problema e quando faço um venda por peso exemplo quantpeso 0,500x valorkg 4,99 = 2,50 certo
mas para tabela vai o valorkg deveria ir o subtotal 2,50
no formvendad
F9 quant 0,500 enter código 6
Eu preciso é saber quanto foi vendido dia certo
o problema e quando faço um venda por peso exemplo quantpeso 0,500x valorkg 4,99 = 2,50 certo
mas para tabela vai o valorkg deveria ir o subtotal 2,50
no formvendad
F9 quant 0,500 enter código 6
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Estou tentando usar um recoset, até acrecenta na tabela mas como um novo registro
Como resolver este embrolio?
Dim db1 As Database, db2 As Database, rs1 As DAO.Recordset, rs2 As DAO.Recordset, rs3 As DAO.Recordset
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("vendadetalhe", dbOpenTable)
With rs1
.AddNew
![subtotal] = Me.texto56
.Update
DoCmd.Close
End With
rs1.Close
Set rs1 = Nothing
db1.Close
Set db1 = Nothing
Como resolver este embrolio?
Dim db1 As Database, db2 As Database, rs1 As DAO.Recordset, rs2 As DAO.Recordset, rs3 As DAO.Recordset
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("vendadetalhe", dbOpenTable)
With rs1
.AddNew
![subtotal] = Me.texto56
.Update
DoCmd.Close
End With
rs1.Close
Set rs1 = Nothing
db1.Close
Set db1 = Nothing
Convidado- Convidado
Cade o BD Alexandre??
Convidado- Convidado
Alexandre...
Revi suas tabelas.. e o que o Criquio falou está coberto de razão.
Na tblVenda não precisa de cod de produto e tal.. Veja as modificações que fiz
Na tblDetalhe não precisa da Descricao do produto. e sim apenas o cod relacionado com a tbl Produto.
O campo subtotal é um campo não acoplado na cosulta, veja a consulta que criei. o subForm detalhes está baseado agora nestea consulta.
A caixa texto onde se digita o Código nao é acoplada a campo na tabela venda. Corrigi.
https://dl.dropbox.com/u/26441349/Agravina.rar
Cumprimentos.
Revi suas tabelas.. e o que o Criquio falou está coberto de razão.
Na tblVenda não precisa de cod de produto e tal.. Veja as modificações que fiz
Na tblDetalhe não precisa da Descricao do produto. e sim apenas o cod relacionado com a tbl Produto.
O campo subtotal é um campo não acoplado na cosulta, veja a consulta que criei. o subForm detalhes está baseado agora nestea consulta.
A caixa texto onde se digita o Código nao é acoplada a campo na tabela venda. Corrigi.
https://dl.dropbox.com/u/26441349/Agravina.rar
Cumprimentos.
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Ola Harysonh finalmente uma luz ,duas perguntas sobre o exemplo
1° Este campo na consulta que acrescentou é desacoplado,tem como formatar para estilo moeda
2º A Lista agora toda vez que se acrescenta um item, ele troca o nome de todos os item para o ultimo adcionado. como corrigo isso ?
1° Este campo na consulta que acrescentou é desacoplado,tem como formatar para estilo moeda
2º A Lista agora toda vez que se acrescenta um item, ele troca o nome de todos os item para o ultimo adcionado. como corrigo isso ?
Convidado- Convidado
No campo não acoplado:
SubTotal: Format([Quant]*[tbl_Vendadetalhe].[ValorUnit];"Unidade monetária")
SubTotal: Format([Quant]*[tbl_Vendadetalhe].[ValorUnit];"Unidade monetária")
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
A Lista agora toda vez que se acrescenta um item, ele troca o nome de todos os item para o ultimo adcionado. como corrigo isso ?
Convidado- Convidado
eu relacionei errado a tbl Produto com detalhes..
tem que relacionar com o cod
Manda o BD ai Alexandre... amanha vejo isso..
O problema é que desde o começo ja estava errado o relacionamento...e tal..
Agora com ele corrigido, vai dar problema em varios codigos que foram feito para um relacionamento errado.
Abraços.
tem que relacionar com o cod
Manda o BD ai Alexandre... amanha vejo isso..
O problema é que desde o começo ja estava errado o relacionamento...e tal..
Agora com ele corrigido, vai dar problema em varios codigos que foram feito para um relacionamento errado.
Abraços.
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
segue BD
https://dl.dropbox.com/u/26441349/Agravina.rar
https://dl.dropbox.com/u/26441349/Agravina.rar
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Quais relacionamentos devo corrigir?
Convidado- Convidado
Amigão... substitui todo o código apos atualiza da caixa texto onde se digita o codigo no frm vendas por este:
Private Sub CodBarras_AfterUpdate()
Dim seq As String, k
seq = "[valorunit] & '|' & [Cod_Prod]"
seq = DLookup(seq, "tbl_Produtos", "Cod='" & Me.CodBarras & "'")
k = Split(seq, "|")
Me.Texto52.Visible = True
If IsNull(DLookup("Cod", "tbl_produtos", "Cod='" & Forms!frmvendas!CodBarras & "'")) Then
MsgBox "Produto Não Cadastro", vbInformation, "ATENÇÃO"
Exit Sub
End If
'Executa consulta inclusão, lançando os dados na tabela vendaDetalhe
CurrentDb.Execute "INSERT INTO tbl_vendaDetalhe(DetalheCódigoVenda, Codproduto, Quant, ValorUnit)" _
& " Values(""" & Me.Códigovenda & """,""" & k(1) & """,""" & Me.txtQtd & """,""" & k(0) & """);"
'Atualiza o subform
Me.detalhevenda.Requery
Me.txtQtd = 1
End Sub
Muito mais efeiciente e enxuto. Neste ja envio a venda diretamente para a tabela, e não como antes enviando para caixas texto no sub form, depois faço um requery no sub form
Relacionamentos corrigido. Estude.
https://dl.dropbox.com/u/26441349/Agravina_1.rar
Cumprimentos.
Private Sub CodBarras_AfterUpdate()
Dim seq As String, k
seq = "[valorunit] & '|' & [Cod_Prod]"
seq = DLookup(seq, "tbl_Produtos", "Cod='" & Me.CodBarras & "'")
k = Split(seq, "|")
Me.Texto52.Visible = True
If IsNull(DLookup("Cod", "tbl_produtos", "Cod='" & Forms!frmvendas!CodBarras & "'")) Then
MsgBox "Produto Não Cadastro", vbInformation, "ATENÇÃO"
Exit Sub
End If
'Executa consulta inclusão, lançando os dados na tabela vendaDetalhe
CurrentDb.Execute "INSERT INTO tbl_vendaDetalhe(DetalheCódigoVenda, Codproduto, Quant, ValorUnit)" _
& " Values(""" & Me.Códigovenda & """,""" & k(1) & """,""" & Me.txtQtd & """,""" & k(0) & """);"
'Atualiza o subform
Me.detalhevenda.Requery
Me.txtQtd = 1
End Sub
Muito mais efeiciente e enxuto. Neste ja envio a venda diretamente para a tabela, e não como antes enviando para caixas texto no sub form, depois faço um requery no sub form
Relacionamentos corrigido. Estude.
https://dl.dropbox.com/u/26441349/Agravina_1.rar
Cumprimentos.
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Quando insiro um código não cadastrado depura ,uso de null invalido
Private Sub CodBarras_AfterUpdate()
Dim seq As String, k
seq = "[valorunit] & '|' & [Cod_Prod]"
seq = DLookup(seq, "tbl_Produtos", "Cod='" & Me.CodBarras & "'") este linha depura
k = Split(seq, "|")
Me.Texto52.Visible = True
If IsNull(DLookup("Cod", "tbl_produtos", "Cod='" & Forms!frmvendas!CodBarras & "'")) Then
MsgBox "Produto Não Cadastro", vbInformation, "ATENÇÃO"
Exit Sub
End If
'Executa consulta inclusão, lançando os dados na tabela vendaDetalhe
CurrentDb.Execute "INSERT INTO tbl_vendaDetalhe(DetalheCódigoVenda, Codproduto, Quant, ValorUnit)" _
& " Values(""" & Me.Códigovenda & """,""" & k(1) & """,""" & Me.txtQtd & """,""" & k(0) & """);"
'Atualiza o subform
Me.detalhevenda.Requery
Me.txtQtd = 1
End Sub
Private Sub CodBarras_AfterUpdate()
Dim seq As String, k
seq = "[valorunit] & '|' & [Cod_Prod]"
seq = DLookup(seq, "tbl_Produtos", "Cod='" & Me.CodBarras & "'") este linha depura
k = Split(seq, "|")
Me.Texto52.Visible = True
If IsNull(DLookup("Cod", "tbl_produtos", "Cod='" & Forms!frmvendas!CodBarras & "'")) Then
MsgBox "Produto Não Cadastro", vbInformation, "ATENÇÃO"
Exit Sub
End If
'Executa consulta inclusão, lançando os dados na tabela vendaDetalhe
CurrentDb.Execute "INSERT INTO tbl_vendaDetalhe(DetalheCódigoVenda, Codproduto, Quant, ValorUnit)" _
& " Values(""" & Me.Códigovenda & """,""" & k(1) & """,""" & Me.txtQtd & """,""" & k(0) & """);"
'Atualiza o subform
Me.detalhevenda.Requery
Me.txtQtd = 1
End Sub
Convidado- Convidado
é so fazer a checagem antes dessa linha amigão.
Private Sub CodBarras_AfterUpdate()
Dim seq As String, k
If IsNull(DLookup("Cod", "tbl_produtos", "Cod='" & Forms!frmvendas!CodBarras & "'")) Then
MsgBox "Produto Não Cadastro", vbInformation, "ATENÇÃO"
Exit Sub
End If
seq = "[valorunit] & '|' & [Cod_Prod]"
seq = DLookup(seq, "tbl_Produtos", "Cod='" & Me.CodBarras & "'")
k = Split(seq, "|")
Me.Texto52.Visible = True
'Executa consulta inclusão, lançando os dados na tabela vendaDetalhe
CurrentDb.Execute "INSERT INTO tbl_vendaDetalhe(DetalheCódigoVenda, Codproduto, Quant, ValorUnit)" _
& " Values(""" & Me.Códigovenda & """,""" & k(1) & """,""" & Me.txtQtd & """,""" & k(0) & """);"
'Atualiza o subform
Me.detalhevenda.Requery
Me.txtQtd = 1
End Sub
Private Sub CodBarras_AfterUpdate()
Dim seq As String, k
If IsNull(DLookup("Cod", "tbl_produtos", "Cod='" & Forms!frmvendas!CodBarras & "'")) Then
MsgBox "Produto Não Cadastro", vbInformation, "ATENÇÃO"
Exit Sub
End If
seq = "[valorunit] & '|' & [Cod_Prod]"
seq = DLookup(seq, "tbl_Produtos", "Cod='" & Me.CodBarras & "'")
k = Split(seq, "|")
Me.Texto52.Visible = True
'Executa consulta inclusão, lançando os dados na tabela vendaDetalhe
CurrentDb.Execute "INSERT INTO tbl_vendaDetalhe(DetalheCódigoVenda, Codproduto, Quant, ValorUnit)" _
& " Values(""" & Me.Códigovenda & """,""" & k(1) & """,""" & Me.txtQtd & """,""" & k(0) & """);"
'Atualiza o subform
Me.detalhevenda.Requery
Me.txtQtd = 1
End Sub
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Amigo Harysonh, o frmpesquisa que deveria inserir um item na lista ,mas abre uma janela ,pedindo para inserir valor na tbl_produtos.cod, onde está o erro.
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
to quase explodindo não consigo corrigir o erro citado na mensagem anterior
Convidado- Convidado
E claro amigão... Voce tem que fazer com o frm pesquisa como eu fiz com o codigo acima...
Não te falei que modifiquei tudo?
Não te falei que modifiquei tudo?
Convidado- Convidado
Eis ai.
Na tabela produtos converti o Cod para Numero, por isso sumiu alguns codigos...Redigite-os
Na lista do frmPesquisa adicionei uma coluna que é a Cod.
https://dl.dropbox.com/u/26441349/Agravina_2.rar
Cumprimentos.
Na tabela produtos converti o Cod para Numero, por isso sumiu alguns codigos...Redigite-os
Na lista do frmPesquisa adicionei uma coluna que é a Cod.
https://dl.dropbox.com/u/26441349/Agravina_2.rar
Cumprimentos.
Agravina- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1623
Registrado : 18/07/2010
Viva Piloto ,vou dar seguinte ao projeto
Valeu meu amigo um grande abraço.
Valeu meu amigo um grande abraço.
Convidado- Convidado
O Fórum agradece o retorno.
» [Resolvidos]Campo Calculado num Formulário-Como adicionar valor calculado à Tabela correspondente?
» Valor do campo calculado na tabela
» [Resolvido]Como enviar dados de uma tabela para outra
» [Resolvido]Enviar dados de um campo no forma para tabela
» [Resolvido]Como usar dados de um campo calculado em um campo de tabela num subformulario ou formulario?
» Valor do campo calculado na tabela
» [Resolvido]Como enviar dados de uma tabela para outra
» [Resolvido]Enviar dados de um campo no forma para tabela
» [Resolvido]Como usar dados de um campo calculado em um campo de tabela num subformulario ou formulario?