JMRF Posted December 6, 2011 Report Share Posted December 6, 2011 (edited) Boa tarde, Quem pode me dar uma dica, por favor.O Código abaixo uso para formatar o textbox valor_unitário_saidas para valor monetátio. Então à medida que digito no textbox vão aparecendo os números com os pontos, vírgulas e os zerostudo conforme eu digito, e quando o textbox perde o foco aparece o valor como digitado. Exemplo: R$1,52 mas quando clico em confirmar acontece que:1 - O número que aparece no textbox fica sem os dígitos depois da vírgula, mas no BD o número é gravado com as casas depois da vírgula.2 - Se o valor digitado é tipo 1,50 ele mosta no textbox depois de clicar em confirmar, apenas 1, se eu digitar 1,51 ele mosta no textbox 2, ou seja ele arredonda, para baixo se menor ou igual a 50 depois da vírgula ou para mais se igual ou maior que 51. O BD Access está formatada a coluna como Moeda.No BD fica gravado R$1,51, o valor que realmente digitei no textbox.Digitei para teste no textbox o valor 1123568 e saí do textbox (perdeu o foco) o número ficou formatado no textbox assim: R$ 1.123.568,00, perfeito, com os pontos, vírgula e o R$. Mas quando clico em confirmar fica no textbox o valor sem pontos, sem vírgula, sem R$ e sem os zeros ou seja sem formatação nehuma = 1123568.Fui até o BD Access abri e lá está gravado: R$ 1.123.568,00.Ou seja, no Banco está gravando tudo legal do jeitinho certo. O problema é no Formulário que não aparece no TextBox o valor formatado igual moeda.Dá para ajudar?Desde já meu muito ObrigadoJMRF Edited December 8, 2011 by JMRF Quote Link to comment Share on other sites More sharing options...
0 Danleonhart Posted December 16, 2011 Report Share Posted December 16, 2011 Olá JMRF... Bem isso é simples de tratar...basta colocar no Evento LostFocus da TextBox o seguinte script:Private Sub txt_Valor_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_Valor.LostFocus If Not txt_Valor.Text = Nothing Then Me.txt_Valor.Text = FormatCurrency(txt_Valor.Text, 2) Else Me.txt_Valor.Text = FormatCurrency(0, 2) End If End Sub Perceba que fiz um tratamento para evitar o ErrorRunTime...coloquei uma condição...que se a caixa "não" estiver vazia, formatar para moedas o valor digitado...senão ele formatará do mesmo jeito, só que com valor = 0 (zero) Note que se você digitar "texto" dentro do TextBox, vai dá ErrorRunTime também...nesse caso tem de se fazer um tratamento onde a caixa só aceite caractéres numericos...dica esta que aqui mesmo no site tem de sobras VALEU ! Quote Link to comment Share on other sites More sharing options...
0 JMRF Posted February 23, 2012 Author Report Share Posted February 23, 2012 Olá JMRF... Bem isso é simples de tratar...basta colocar no Evento LostFocus da TextBox o seguinte script:Private Sub txt_Valor_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_Valor.LostFocus If Not txt_Valor.Text = Nothing Then Me.txt_Valor.Text = FormatCurrency(txt_Valor.Text, 2) Else Me.txt_Valor.Text = FormatCurrency(0, 2) End If End Sub Perceba que fiz um tratamento para evitar o ErrorRunTime...coloquei uma condição...que se a caixa "não" estiver vazia, formatar para moedas o valor digitado...senão ele formatará do mesmo jeito, só que com valor = 0 (zero) Note que se você digitar "texto" dentro do TextBox, vai dá ErrorRunTime também...nesse caso tem de se fazer um tratamento onde a caixa só aceite caractéres numericos...dica esta que aqui mesmo no site tem de sobras VALEU ! Quote Link to comment Share on other sites More sharing options...
0 JMRF Posted February 23, 2012 Author Report Share Posted February 23, 2012 Boa noite,Danleonhart,Fiz o que você me aconselhou mas não dá certo. Já estou pirando, nada dá certo. Vou te passar umas informações para ver se você pode me ajudar.Trabalho com o VB.NET 2010Banco de Dados - Access 2010No meu BD o campo Valor_unitario_saidas eu formatei como Moeda - 2 casas decimais.No Binding Formatei como Currency - 2 casas decimaisNo meu código coloquei: Dim avalor_unitario_saidas(1) As DoubleColoquei ainda o código: Private Sub txtValor_unitario_saidas_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtValor_unitario_saidas.Leave If txtValor_unitario_saidas.Text = String.Empty Then txtValor_unitario_saidas.Text = "0,00" Else txtValor_unitario_saidas.Text = FormatCurrency(txtValor_unitario_saidas.Text, 2, TriState.True, TriState.True, _ TriState.True).Replace("R$", "").Trim End IfEnd subend ClassNo meu DBGrid os valores aparecem com R$323,50 ou R$125,00 e também no BD aparecem R$323,50 ou R$125,00 só no textbox - txtValor_unitario_saidas.text é que aparece R$323,5 ou R$125 sem os zeros após a vírgula. Estou tentando uma solução desde dezembro de 2011 e tudo que me mandam fazer faço e nada, mais nada mesmo muda essa situação.Dá pra dar alguma dica, por favor.GratoJMRF Quote Link to comment Share on other sites More sharing options...
Question
JMRF
Boa tarde,
Quem pode me dar uma dica, por favor.
O Código abaixo uso para formatar o textbox valor_unitário_saidas para valor monetátio.
Então à medida que digito no textbox vão aparecendo os números com os pontos, vírgulas e os zeros
tudo conforme eu digito, e quando o textbox perde o foco aparece o valor como digitado.
Exemplo: R$1,52 mas quando clico em confirmar acontece que:
1 - O número que aparece no textbox fica sem os dígitos depois da vírgula, mas no BD o número é gravado com as casas
depois da vírgula.
2 - Se o valor digitado é tipo 1,50 ele mosta no textbox depois de clicar em confirmar, apenas 1, se eu digitar 1,51
ele mosta no textbox 2, ou seja ele arredonda, para baixo se menor ou igual a 50 depois da vírgula ou para mais se
igual ou maior que 51. O BD Access está formatada a coluna como Moeda.No BD fica gravado R$1,51, o valor que realmente digitei no textbox.
Digitei para teste no textbox o valor 1123568 e saí do textbox (perdeu o foco) o número ficou formatado no textbox assim:
R$ 1.123.568,00, perfeito, com os pontos, vírgula e o R$. Mas quando clico em confirmar fica no textbox o valor sem pontos,
sem vírgula, sem R$ e sem os zeros ou seja sem formatação nehuma = 1123568.Fui até o BD Access abri e lá está gravado:
R$ 1.123.568,00.
Ou seja, no Banco está gravando tudo legal do jeitinho certo. O problema é no Formulário que não aparece no TextBox o valor
formatado igual moeda.
Dá para ajudar?
Desde já meu muito Obrigado
JMRF
Edited by JMRFLink to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.