RUN-TIME ERROR 3421 - DATA TYPE CONVERSION ERROR
Tenho uma aplicação que está dando erro acima no update, quando faço alteração (erro está em vermelho no código abaixo no maskedit ). Na inclusão funciona normalmente. Engraçado que estava funcionando. Parou de funcionar quando zerei o BD e comecei a incluir novos registros.
DAO
BD - Access
campo precoimo - currency
Na propriedade format do objeto maskedit (maskpreimo.text) está com essa formatação: #,###########################.#0
Public Sub altimo()
On Error GoTo trataerro:
trataerro:
Select Case Err
Case 3021
Err = 0
Exit Sub
Case Else
tb_im.edit
tb_im([Ô]cpfimo[Ô]) = Maskcpfimo.Text
tb_im([Ô]endprop[Ô]) = txtendprop.Text
[txt-color=#e80000]tb_im([Ô]precoimo[Ô]) = Maskpreimo.Text[/txt-color]
tb_im([Ô]obsimo[Ô]) = txtobsimo.Text
tb_im([Ô]obsi[Ô]) = txtobsi.Text
If chkpisc.Value = 0 Then
tb_im([Ô]piscina[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]piscina[Ô]) = [Ô]S[Ô]
End If
If chksau.Value = 0 Then
tb_im([Ô]sauna[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]sauna[Ô]) = [Ô]S[Ô]
End If
If chkjar.Value = 0 Then
tb_im([Ô]jardim[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]jardim[Ô]) = [Ô]S[Ô]
End If
If chkqua.Value = 0 Then
tb_im([Ô]quadra[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]quadra[Ô]) = [Ô]S[Ô]
End If
If chkgar.Value = 0 Then
tb_im([Ô]garagem[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]garagem[Ô]) = [Ô]S[Ô]
End If
If chkchu.Value = 0 Then
tb_im([Ô]churrasqueira[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]churrasqueira[Ô]) = [Ô]S[Ô]
End If
tb_im.Update
End Select
End Sub
DAO
BD - Access
campo precoimo - currency
Na propriedade format do objeto maskedit (maskpreimo.text) está com essa formatação: #,###########################.#0
Public Sub altimo()
On Error GoTo trataerro:
trataerro:
Select Case Err
Case 3021
Err = 0
Exit Sub
Case Else
tb_im.edit
tb_im([Ô]cpfimo[Ô]) = Maskcpfimo.Text
tb_im([Ô]endprop[Ô]) = txtendprop.Text
[txt-color=#e80000]tb_im([Ô]precoimo[Ô]) = Maskpreimo.Text[/txt-color]
tb_im([Ô]obsimo[Ô]) = txtobsimo.Text
tb_im([Ô]obsi[Ô]) = txtobsi.Text
If chkpisc.Value = 0 Then
tb_im([Ô]piscina[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]piscina[Ô]) = [Ô]S[Ô]
End If
If chksau.Value = 0 Then
tb_im([Ô]sauna[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]sauna[Ô]) = [Ô]S[Ô]
End If
If chkjar.Value = 0 Then
tb_im([Ô]jardim[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]jardim[Ô]) = [Ô]S[Ô]
End If
If chkqua.Value = 0 Then
tb_im([Ô]quadra[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]quadra[Ô]) = [Ô]S[Ô]
End If
If chkgar.Value = 0 Then
tb_im([Ô]garagem[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]garagem[Ô]) = [Ô]S[Ô]
End If
If chkchu.Value = 0 Then
tb_im([Ô]churrasqueira[Ô]) = [Ô]N[Ô]
Else
tb_im([Ô]churrasqueira[Ô]) = [Ô]S[Ô]
End If
tb_im.Update
End Select
End Sub
Muito provavelmente você está passando os seus dados para esse campo com [Ô]vÃrgula[Ô], quando deveria ser com [Ô]ponto[Ô]. Faça os testes sem aplicar a formatação que acho que ficará mais fácil descobrir o motivo do problema.
na verdade vc esta passando um string pra um campo currency, [Ô]transforme[Ô] então esse string no mesmo formato do banco....tem algo nativo no VB pra isso
Faça seu login para responder