Jhowcs Postado Dezembro 11, 2008 Denunciar Share Postado Dezembro 11, 2008 bom estou com problema em gravar no contas a receber, na tabela do banco de dados firebird eu vou gravar o seguinte:codigocli, nomecli, codigoven, codigovenda, datavenda, parcela, datavenct, valorparcela, valortotal.meu código é esseIf cboFormaPagto.ListIndex <> 0 Then parcela = Round(total / CInt(cboParcelas.Text), 2) diferenca = total - parcela * CInt(cboParcelas.Text) Vencto = Now() For x = 1 To CInt(cboParcelas.Text) frase = "INSERT INTO contasreceber (Codigocli, Nomecli,Codigoven,Codigovenda, Datavenda, parcela, datavenct, valorparcela, ValorTotal)" frase = frase & "VALUES(" & txtCodigo.Text & "," frase = frase & "'" & txtNome.Text & "'," frase = frase & "" & txtCodigoven.Text & "," frase = frase & "" & txtCodigoVenda.Text & "," frase = frase & "'" & mskDatavenda.Text & "'," frase = frase & "" & x & "," frase = frase & "'" & Format(Vencto, "dd/mm/yyyy") & "'," If x = 1 Then frase = frase & "" & parcela + diferenca & "," Else frase = frase & "" & parcela & "," End If frase = frase & "" & total & ")" Vencto = DateAdd("m", 1, Vencto) Next x End If Con.Execute (frase)só que o jeito que está gravando está errado e não estou conseguindo consertar... está assim exemplo:codigocli=1, nomecli=Jonathan, codigoven=1, codigovenda=1, datavenda=11/12/2008, parcela3, datavenct=11/02/2009, valorparcela=30, valortotal=90eu quero que grave assim:codigocli=1, nomecli=Jonathan, codigoven=1, codigovenda=1, datavenda=11/12/2008, parcela=1, datavenct=11/12/2008, valorparcela=30, valortotal=90codigocli=1, nomecli=Jonathan, codigoven=1, codigovenda=1, datavenda=11/12/2008, parcela=2, datavenct=11/01/2009, valorparcela=30, valortotal=90codigocli=1, nomecli=Jonathan, codigoven=1, codigovenda=1, datavenda=11/12/2008, parcela=3, datavenct=11/02/2009, valorparcela=30, valortotal=90me ajudem por favor!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 11, 2008 Denunciar Share Postado Dezembro 11, 2008 você tem q executar a cada vez. você ta montando a string, ai chega no final do for, você não faz nd, ele volta e comeca a montar a otra string. ai na ultima vez, ele sai ca string montada e depois disso sim ta o execute la. ou seja, ele so vai executar a ultima mesmo.se você quer q executa as tres, tem q executar dentro do for. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhowcs Postado Dezembro 12, 2008 Autor Denunciar Share Postado Dezembro 12, 2008 Kuroi de certo obrigado!!!!!Só que eu cai em outro problema, se por exemplo o valor de cada parcela for 19,73 dá erro por causa da vírgula.Esse erro quando eu dou debugINSERT INTO contasreceber (Codigocli, Nomecli,Codigoven,Codigovenda, Datavenda, parcela, datavenct, valorparcela, ValorTotal)VALUES(4,'ADRIANA CÁSSIA',5,8,'08/12/2008',1,'12/12/2008',19,34,58)perceba que no valor da parcela está 19,34 ou seja eu tenho quase certeza que essa vírgula tá dando erro...Obrigado você tem me ajudado muito!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 12, 2008 Denunciar Share Postado Dezembro 12, 2008 ai o numero com virgula tem q ser com ponto. tipo grave 19.34 em vez de 19,34.usa replace pra tirar a virgula.exemplo, se x for uma variavel double com o valor 19,34:Replace(CStr(x), ",", ".")em relacao ao q você pergunto, me formei no tecnico em 2003.e agora to sem trampo, mas trabalhei uns 2 anos e poco com o visual basic 6. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhowcs Postado Dezembro 12, 2008 Autor Denunciar Share Postado Dezembro 12, 2008 Kuroi inde eu uso esse Replace?Private Sub cmdFechamento_Click() Dim x As Integer Dim total, parcela, diferenca As Double Dim Vencto As Date total = 0 parcela = 0 For x = 1 To (GridProdutos.Rows - 1) 'gravando na tabela vendas frase = "INSERT INTO Vendas (Codigocli,Codigoven,Codigovenda, Datavenda, CodigoProduto, ValorUnit, Qtde, ValorTotal, FormaPagto, QtdeParcelas)" frase = frase & "VALUES(" & txtCodigo.Text & "," frase = frase & "" & txtCodigoven.Text & "," frase = frase & "" & txtCodigoVenda.Text & "," frase = frase & "'" & mskDatavenda.Text & "'," frase = frase & "" & GridProdutos.TextMatrix(GridProdutos.Rows - x, 1) & "," 'Codigo Produto frase = frase & "" & CCur(GridProdutos.TextMatrix(GridProdutos.Rows - x, 3)) & "," 'Valor Unitario frase = frase & "" & GridProdutos.TextMatrix(GridProdutos.Rows - x, 4) & "," 'Qtde frase = frase & "" & CCur(GridProdutos.TextMatrix(GridProdutos.Rows - x, 5)) & "," 'Vlr Total frase = frase & "'" & cboFormaPagto.Text & "'," frase = frase & "'" & cboParcelas.Text & "')" Con.Execute (frase) 'baixando do estoque frase = "update CadastroProduto set qtde= qtde - " & GridProdutos.TextMatrix(GridProdutos.Rows - x, 4) & " where codigo = " & GridProdutos.TextMatrix(GridProdutos.Rows - x, 1) Con.Execute (frase) 'gravando no contas a receber total = total + CDbl(GridProdutos.TextMatrix(GridProdutos.Rows - x, 5)) Next x If cboFormaPagto.ListIndex <> 0 Then parcela = Round(total / CInt(cboParcelas.Text), 2) diferenca = total - parcela * CInt(cboParcelas.Text) Vencto = Now() For x = 1 To CInt(cboParcelas.Text) frase = "INSERT INTO contasreceber (Codigocli, Nomecli,Codigoven,Codigovenda, Datavenda, parcela, datavenct, valorparcela, ValorTotal)" frase = frase & "VALUES(" & txtCodigo.Text & "," frase = frase & "'" & txtNome.Text & "'," frase = frase & "" & txtCodigoven.Text & "," frase = frase & "" & txtCodigoVenda.Text & "," frase = frase & "'" & mskDatavenda.Text & "'," frase = frase & "" & x & "," frase = frase & "'" & Format(Vencto, "dd/mm/yyyy") & "'," If x = 1 Then frase = frase & "" & parcela + diferenca & "," Else frase = frase & "" & parcela & "," End If frase = frase & "" & total & ")" Vencto = DateAdd("m", 1, Vencto) Con.Execute (frase) Next x End If Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 13, 2008 Denunciar Share Postado Dezembro 13, 2008 a não sei, nesse seu codigo qual é esse campo q tem virgula??não sei qual é, mas por exemplo, se for o total, seria isso:.... frase = frase & "'" & Format(Vencto, "dd/mm/yyyy") & "'," If x = 1 Then frase = frase & "" & parcela + diferenca & "," Else frase = frase & "" & parcela & "," End If frase = frase & Replace(CStr(total), ",", ".") & ")" Vencto = DateAdd("m", 1, Vencto)[/code] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhowcs Postado Dezembro 13, 2008 Autor Denunciar Share Postado Dezembro 13, 2008 valeu kuroi, mas eu nem precisei usar replace eu apenas converti na minha tabela o valor de numerico para varchar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhowcs Postado Dezembro 13, 2008 Autor Denunciar Share Postado Dezembro 13, 2008 http://s484.photobucket.com/albums/rr201/j...ew¤t=contas.jpgTenho uma tela de contas a receber onde eu vou dar baixa nas parcelas pagas, mas to em dúvida sobre como eu vou fazer o delete, porque se eu fizer Con.Execute ("Delete from contasreceber where codigocli = " & Val(txtCodigo.Text))ele vai deletar tudo onde o código do cliente for igual ao que está no txtcodigo.textMande alguma sugestão sobre o melhor Delete a fazer.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xistyle Postado Dezembro 13, 2008 Denunciar Share Postado Dezembro 13, 2008 (editado) Não abriu a imagem Jhowcs ;xQual a chave primária da tabela? Editado Dezembro 13, 2008 por Xistyle Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhowcs Postado Dezembro 13, 2008 Autor Denunciar Share Postado Dezembro 13, 2008 Não abriu a imagem Jhowcs ;xQual a chave primária da tabela?puts não to conseguindo adcionar a foto da minha tela de contas a receber, alguém poderia me ajudar?não eu não defini chave primaria Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 13, 2008 Denunciar Share Postado Dezembro 13, 2008 valeu kuroi, mas eu nem precisei usar replace eu apenas converti na minha tabela o valor de numerico para varchar.a isso não é uma coisa muito boa de se fazer. se é pra guardar numero é melhor usar numerico, é pra isso mesmo q existe o tipo de dados numerico.primero porque vai ocupar bem menos espaco em disco (e na memoria quando você fizer a selecao) se você fizer como numerico.e depois q se você tiver q fazer soma, ou funcaos tipo sum(), você vai ter problemas como texto.Tenho uma tela de contas a receber onde eu vou dar baixa nas parcelas pagas, mas to em dúvida sobre como eu vou fazer o delete, porque se eu fizer Con.Execute ("Delete from contasreceber where codigocli = " & Val(txtCodigo.Text))ele vai deletar tudo onde o código do cliente for igual ao que está no txtcodigo.textMande alguma sugestão sobre o melhor Delete a fazer....ai você tem q saber, o q identifica cada registro??não eu não defini chave primariaa mas tem q ter. mesmo q você não sete no access como chave, você tem q ter um codigo, alguma coisa q seja identidade mesmo q sejam mais de dois campos. você não tem o codigo da conta ou qualquer coisa assim?? se não tiver então vai ter q incluir, mesmo q seja um campo autonumeracao.puts não to conseguindo adcionar a foto da minha tela de contas a receber, alguém poderia me ajudar?ela ta hospedada em servidor?? é so passar o link então. aquele link q você passo em cima não ta funcionando.tem a opcao la embaxo pra anexar arquivo tb. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jhowcs
bom estou com problema em gravar no contas a receber, na tabela do banco de dados firebird eu vou gravar o seguinte:
codigocli, nomecli, codigoven, codigovenda, datavenda, parcela, datavenct, valorparcela, valortotal.
meu código é esse
só que o jeito que está gravando está errado e não estou conseguindo consertar... está assim exemplo:
codigocli=1, nomecli=Jonathan, codigoven=1, codigovenda=1, datavenda=11/12/2008, parcela3, datavenct=11/02/2009, valorparcela=30, valortotal=90
eu quero que grave assim:
codigocli=1, nomecli=Jonathan, codigoven=1, codigovenda=1, datavenda=11/12/2008, parcela=1, datavenct=11/12/2008, valorparcela=30, valortotal=90
codigocli=1, nomecli=Jonathan, codigoven=1, codigovenda=1, datavenda=11/12/2008, parcela=2, datavenct=11/01/2009, valorparcela=30, valortotal=90
codigocli=1, nomecli=Jonathan, codigoven=1, codigovenda=1, datavenda=11/12/2008, parcela=3, datavenct=11/02/2009, valorparcela=30, valortotal=90
me ajudem por favor!!!
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.