FORMATACAO NO UPDATE

IRENKO 29/03/2011 18:09:08
#369635
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.
TECLA 29/03/2011 20:29:13
#369650
Para o valor 1299,00 formate o mesmo para 1299.00 e veja se resolve.
CLEVERTON 29/03/2011 20:30:00
#369651
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
ALMIRSAFADI 29/03/2011 20:32:44
#369654
Na propriedade do textbox coloque Multiline false e teste
EDERMIR 30/03/2011 12:48:26
#369724
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
FEDERHEN 30/03/2011 15:34:04
#369745
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]) + [Ô][ô][Ô]) & [Ô],[Ô]
ANDPAG 30/03/2011 15:49:04
#369748
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....
Tópico encerrado , respostas não são mais permitidas