ERRO TYPE MISMATCH

RICKSOUSA 11/01/2015 22:18:50
#443715
o erro ta acontecendo na hora que estou fazendo uma atualização na recordset



[txt-color=#e80000]strSQL = [Ô]UPDATE Produtos [Ô] & _
[Ô]SET QtdAtual = [Produtos].[QtdAtual]+ [Ô] & CInt(atxtQuantidade.Text) & [Ô], Produtos.PrecoCusto = [Ô] & Replace(CInt(atxtPrecoCusto.Text), [Ô],[Ô], [Ô].[Ô]) & [Ô], Produtos.PrecoVenda = [Ô] & Replace(CInt(atxtPrecoVenda.Text), [Ô],[Ô], [Ô].[Ô]) & [Ô],Produtos.DataCadastro = #[Ô] & IIf(CDate(atxtDataCadastro.Text) = [Ô][Ô], Date, CDate(atxtDataCadastro.Text)) & [Ô]#, Produtos.Ativo = [Ô] & vPAGO & [Ô] [Ô] & _
[Ô]WHERE (((Produtos.CodigoBarra)=[Ô] & atxtCodBarras.Text & [Ô]));[Ô][/txt-color]

[txt-color=#0000f0]txtquantidade[/txt-color] recebe numeros inteiros
[txt-color=#0000f0]txtprecocusto[/txt-color] recebe valores monetarios 10,00

oq ta faltando ou esta errado?

alguem pode me ajudar nessa SQL?

TUNUSAT 12/01/2015 08:01:37
#443716
RICKSOUSA,

Depende de como você montou o campo dentro do seu Banco de Dados também
Leia isto:

------------------------------------------------------------------------------------------
Conversão de tipo de dados (Mecanismo de Banco de Dados)
Comportamentos de conversão de tipo de dados

http://msdn.microsoft.com/pt-br/library/ms191530.aspx.
------------------------------------------------------------------------------------------

[][ô]s,
Tunusat.
F001E 15/01/2015 18:12:41
#443828
Pelas linhas em vermelho você esta no VB6.
Type mismatch não é erro de Instrução SQL e sim do VB6.
Acho que você não precisa converter as datas para CDate.
FILMAN 15/01/2015 19:39:32
#443830
Tente isso

strSQL = [Ô][Ô]
strSQL = strSQL & [Ô]UPDATE Produtos SET [Ô]
strSQL = strSQL & [Ô] QtdAtual = QtdAtual + [Ô] & CInt(atxtQuantidade.Text) & [Ô], [Ô] & _
strSQL = strSQL & [Ô] PrecoCusto = [Ô] & Replace(CDbl(atxtPrecoCusto.Text), [Ô],[Ô], [Ô].[Ô]) & [Ô], [Ô] & _
strSQL = strSQL & [Ô] PrecoVenda = [Ô] & Replace(CDbl(atxtPrecoVenda.Text), [Ô],[Ô], [Ô].[Ô]) & [Ô], [Ô] & _
strSQL = strSQL & [Ô] DataCadastro = #[Ô] & IIf((IsDate(atxtDataCadastro.Text) = False), Date, CDate(atxtDataCadastro.Text)) & [Ô]#, [Ô] & _
strSQL = strSQL & [Ô] Ativo = [ô][Ô] & vPAGO & [Ô][ô][Ô] & _
strSQL = strSQL & [Ô] WHERE Produtos.CodigoBarra = [ô][Ô] & atxtCodBarras.Text & [Ô][ô][Ô]
MARCELO.TREZE 15/01/2015 23:11:37
#443831
só lembrando

o FILMAN tratou a query usando uma variável string, como ele está resolvendo o que ja estava errado só faltou tirar o (& _ ) da string, e também formatar o campo data

resumindo

strSQL = [Ô]UPDATE Produtos [Ô] & _
strSQL = strSQL & [Ô]SET QtdAtual = (QtdAtual + [Ô] & CInt(atxtQuantidade.Text) & [Ô])[Ô]
strSQL = strSQL & [Ô], PrecoCusto = [Ô] & Replace(CInt(atxtPrecoCusto.Text), [Ô],[Ô], [Ô].[Ô])
strSQL = strSQL & [Ô], PrecoVenda = [Ô] & Replace(CInt(atxtPrecoVenda.Text), [Ô],[Ô], [Ô].[Ô])
strSQL = strSQL & [Ô], DataCadastro = #[Ô] & IIf(atxtDataCadastro.Text = [Ô][Ô], Date, Format(CDate(atxtDataCadastro.Text),[Ô]mm/dd/yyyy) & [Ô]#[Ô]
strSQL = strSQL & [Ô], Produtos.Ativo = [Ô] & vPAGO
strSQL = strSQL & [Ô] WHERE CodigoBarra=[ô][Ô] & atxtCodBarras.Text & [Ô][ô][Ô]

Faça seu login para responder