MASCARA PARA MOEDA
bom é seguinte galera peguei uma dica aqui no site sobre mascara de moeda e melhnor que eu ja vi do vb mas to com um problema uso mySql como banco essa mascara na hora incluir funciona ok mas na hora que eu pego o conteudo do banco por exemplo se o valor 1500,00 ele me traz 150,00 se eu tirar a mascara traz certo vc podem me ajudar a resolver isso?
Aqui é link da mascara
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=4759
Aqui é link da mascara
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=4759
experimentou usar [Ô]###,##0.00[Ô] ? ou [Ô]###,###.00[Ô]
sim ja nao deu ceto é sempre quando tem milhar centena traz certinho
verifique o campo no banco se ta certo, se for integer nao ira te trazer o decimal, veja se ta float. e se vc armazena o valor em variavel, mete um break point e veja que valor ta te trazendo, talvez ai esteja o problema.
bom ja fiz isso traz certo o valor sim no banco coloco como double. O banco traz certinho 1500,00 na hora que mostra na text ele mostra 150,00
bom entao no meu caso tenho o seguinte
Me.txtValorUnitario = Format(TbMateriais![Vl_Base_Venda], [Ô]###,##0.00[Ô])
nao sei se é isso.
Jogo o valor formatado num campo text, deve ser o que vc esta fazendo.
Me.txtValorUnitario = Format(TbMateriais![Vl_Base_Venda], [Ô]###,##0.00[Ô])
nao sei se é isso.
Jogo o valor formatado num campo text, deve ser o que vc esta fazendo.
ou ainda [Ô]#####0.00[Ô]
Nao deu certo o problema é mascara por exemplo seu eu tirar essa mascara que utilizei ele traz corretamente o valor
passa a linha do teu codigo, fica um pouco mais facil de visualizar
esta no modulo
Public Sub MascMoeda(ByVal Controle As TextBox)
Dim i As Integer, T As String
With Controle
[ô]Armazena o Text, para nao causar o evento change a toa
T = .Text
[ô]Armazena o SelStart da Dir. para Esq., pois o alinhamento é esq.
i = Len(T) - .SelStart
[ô]Tira a virgula da var T
T = Replace(.Text, [Ô],[Ô], [Ô][Ô])
[ô]Acrescenta zeros
If Len(T) <= 3 Then T = String(3 - Len(T), [Ô]0[Ô]) & T
[ô]Monta o nr separando as casas
T = Mid(T, 1, Len(T) - 2) & [Ô],[Ô] & Mid(T, Len(T) - 1)
[ô]Formata o nr para tirar os zeros a mais q podem ficar no começo
T = Format(T, [Ô]#####0.00[Ô])
[ô]Verifica se o valor do Text é <> da Var. T (para nao travar no evento Change)
If .Text <> T Then .Text = T
[ô]Como mudou o valor do TextBox, tem q voltar o SelStart ao q era antes
.SelStart = Len(T) + i
End With
End Sub
Private Sub txtValor_Change()
MascMoeda txtValor [ô]Para criar a máscara de moeda
End Sub
Public Sub MascMoeda(ByVal Controle As TextBox)
Dim i As Integer, T As String
With Controle
[ô]Armazena o Text, para nao causar o evento change a toa
T = .Text
[ô]Armazena o SelStart da Dir. para Esq., pois o alinhamento é esq.
i = Len(T) - .SelStart
[ô]Tira a virgula da var T
T = Replace(.Text, [Ô],[Ô], [Ô][Ô])
[ô]Acrescenta zeros
If Len(T) <= 3 Then T = String(3 - Len(T), [Ô]0[Ô]) & T
[ô]Monta o nr separando as casas
T = Mid(T, 1, Len(T) - 2) & [Ô],[Ô] & Mid(T, Len(T) - 1)
[ô]Formata o nr para tirar os zeros a mais q podem ficar no começo
T = Format(T, [Ô]#####0.00[Ô])
[ô]Verifica se o valor do Text é <> da Var. T (para nao travar no evento Change)
If .Text <> T Then .Text = T
[ô]Como mudou o valor do TextBox, tem q voltar o SelStart ao q era antes
.SelStart = Len(T) + i
End With
End Sub
Private Sub txtValor_Change()
MascMoeda txtValor [ô]Para criar a máscara de moeda
End Sub
uso estas constantes em meus sistemas e sempre funcionaram certinho
Public Const FNumMoeda As String * 24 = [Ô]R$ #,##0.00;R$ -#,##0.00[Ô]
Public Const FNum2 As String * 18 = [Ô]#,##0.00;-#,##0.00[Ô]
Public Const FNum3 As String * 22 = [Ô]#,###0.000;-#,###0.000[Ô]
Public Const FData As String * 10 = [Ô]DD/MM/YYYY[Ô]
Public Const fCnpj As String * 24 = [Ô]00\.000\.000/0000-00;0; [Ô]
Public Const fCPF As String * 21 = [Ô]000\.000\.000\-00;0;_[Ô]
Public Const FNumMoeda As String * 24 = [Ô]R$ #,##0.00;R$ -#,##0.00[Ô]
Public Const FNum2 As String * 18 = [Ô]#,##0.00;-#,##0.00[Ô]
Public Const FNum3 As String * 22 = [Ô]#,###0.000;-#,###0.000[Ô]
Public Const FData As String * 10 = [Ô]DD/MM/YYYY[Ô]
Public Const fCnpj As String * 24 = [Ô]00\.000\.000/0000-00;0; [Ô]
Public Const fCPF As String * 21 = [Ô]000\.000\.000\-00;0;_[Ô]
Tópico encerrado , respostas não são mais permitidas