FORMATACAO NO UPDATE
Meu campo na tabela esta como Currency.
no Update estou fazendo assim:
Sql = Sql & [Ô]Debito=[Ô] & IIf(Me.Controls([Ô]Grid_C[Ô] & X) = Empty, [Ô]Null[Ô], [Ô][ô][Ô] + Format(Me.Controls([Ô]Grid_C[Ô] & X), [Ô] #,##0.00[Ô]) + [Ô][ô][Ô]) & [Ô],[Ô]
Private Sub TargetBox_LostFocus()
If Mid(TargetBox.Name, 6, 1) = [Ô]C[Ô] Or Mid(TargetBox.Name, 6, 1) = [Ô]D[Ô] Then
If Trim(TargetBox.Text) = [Ô][Ô] Then TargetBox.Text = [Ô]0,00[Ô]
TargetBox.Text = Format(TargetBox.Text, [Ô]#,##0.00[Ô])
End If
Se eu digito 920,00, grava normal
se eu digito 1299,00 no LostFocus passa para 1.299,00 ai dá invalido no contexto. Tentei o Replace mas não adiantou.
Alguem tem uma ideia. O banco é access.
no Update estou fazendo assim:
Sql = Sql & [Ô]Debito=[Ô] & IIf(Me.Controls([Ô]Grid_C[Ô] & X) = Empty, [Ô]Null[Ô], [Ô][ô][Ô] + Format(Me.Controls([Ô]Grid_C[Ô] & X), [Ô] #,##0.00[Ô]) + [Ô][ô][Ô]) & [Ô],[Ô]
Private Sub TargetBox_LostFocus()
If Mid(TargetBox.Name, 6, 1) = [Ô]C[Ô] Or Mid(TargetBox.Name, 6, 1) = [Ô]D[Ô] Then
If Trim(TargetBox.Text) = [Ô][Ô] Then TargetBox.Text = [Ô]0,00[Ô]
TargetBox.Text = Format(TargetBox.Text, [Ô]#,##0.00[Ô])
End If
Se eu digito 920,00, grava normal
se eu digito 1299,00 no LostFocus passa para 1.299,00 ai dá invalido no contexto. Tentei o Replace mas não adiantou.
Alguem tem uma ideia. O banco é access.
Para o valor 1299,00 formate o mesmo para 1299.00 e veja se resolve.
acredito eu que o que está acontecendo é a formatação errada. tente assim
deve ser as configurações regionais, tente mudar o . ( ponto ) por virgula e virgula por ponto e veja o que acontece
se nao funcionar, manda gravar direito no código usando o valor 1299.00 ( com ponto ) e posta aqui o que acontece
deve ser as configurações regionais, tente mudar o . ( ponto ) por virgula e virgula por ponto e veja o que acontece
se nao funcionar, manda gravar direito no código usando o valor 1299.00 ( com ponto ) e posta aqui o que acontece
Na propriedade do textbox coloque Multiline false e teste
Citação::
Para o valor 1299,00 formate o mesmo para 1299.00 e veja se resolve.
Se você utilizar a VIRGULA para a separação de decimal, o comando SQL interpretará como o separador de valor de campo. Neste caso o erro que deve ocorrer é NUMERO DE VALORES MAIOR QUE DE CAMPOS.
Quando você construir o UPDATE, formate o valor conforme a sugestão do TECLA:
Wvalor = replace(targetbox.text,[Ô].[Ô],[Ô][Ô])
Wvalor = replace(Wvalor,[Ô],[Ô],[Ô].[Ô])
[Ô]UPDATE tabela SET campo = [Ô] & Wvalor
Use assim no update:
Sql = Sql & [Ô]Debito=[Ô] & IIf(Me.Controls([Ô]Grid_C[Ô] & X) = Empty, [Ô]Null[Ô], [Ô][ô][Ô] + Format(Me.Controls([Ô]Grid_C[Ô] & X), [txt-color=#e80000][Ô]##0.00[Ô][/txt-color]) + [Ô][ô][Ô]) & [Ô],[Ô]
Sql = Sql & [Ô]Debito=[Ô] & IIf(Me.Controls([Ô]Grid_C[Ô] & X) = Empty, [Ô]Null[Ô], [Ô][ô][Ô] + Format(Me.Controls([Ô]Grid_C[Ô] & X), [txt-color=#e80000][Ô]##0.00[Ô][/txt-color]) + [Ô][ô][Ô]) & [Ô],[Ô]
cara qual banco voce usa?
Olha no SQL server eu faço da seguinte maneira
converto a formatação como o pessoal falou ai nas respostas acima ex:
se for 135,56 converta para 135.56
depois no sql voce converte ele (obs: no caso do SQL server, mas dependendo o banco o esquema pode ficar parecido)
UPDATE SUATABELA SET SEUCAMPO = CONVERT(money,[ô][Ô] & sua_variavel_com_valor_formatado_com_ponto_no_lugar_de_virgula & [Ô][ô])
talvez por caso de seu banco se colocar currency no lugar de money... testa ai....
Olha no SQL server eu faço da seguinte maneira
converto a formatação como o pessoal falou ai nas respostas acima ex:
se for 135,56 converta para 135.56
depois no sql voce converte ele (obs: no caso do SQL server, mas dependendo o banco o esquema pode ficar parecido)
UPDATE SUATABELA SET SEUCAMPO = CONVERT(money,[ô][Ô] & sua_variavel_com_valor_formatado_com_ponto_no_lugar_de_virgula & [Ô][ô])
talvez por caso de seu banco se colocar currency no lugar de money... testa ai....
Tópico encerrado , respostas não são mais permitidas