URGENTE - ERRO NO INSERT INTO
Pessoal o que tem de errado nessas linhas, aparentemente ta tudo ok, mas na hora da inclusao da erro: Incorrect syntax near 'Aberta' e nas outras strings em azul, na string em vermelho diz que tenho que usar a funcao CONVERT pois esta lendo como um campo VARCHAR e na tabela ele é money. Alguem poderia me ajudar?
cnn.Execute ("insert into tabela(codigo,codcliente,empresa,sede,dtsaida,data,hrsaida,usuario,telusuario,saida,destino,ccusto,depto,unidade,responsavel,emailuser,emailsecretaria, emailresponsavel,motivoviagem,motorista,retorno,hrretorno,cartao,respagamento,diapre,solicitada,fonesol,anotacao,formapagamento,roteiro,codautenticacao, finalizada,ficha,faturada,conferida,status,statusnextel,guardausuario,calckm,envio,sigla,operador,datacadastro,horacadastro,celula,calc)" _
& "Values (" & codigo.Text & ",'" & codcliente.Text & "','" & empresa.Text & "','" & sede.Text & "','" & trata_data(dtsaida.Text) & "','" & dtsaida.Text & "','" & hrsaida.Text & "','" & Text2.Text & "','" & telusuario.Text & "','" & saida.Text & "','" & destino.Text & "','" & ccusto.Text & "','" & depto.Text & "', '" & unidade.Text & "','" & responsavel.Text & "','" & emailuser.Text & "','" & emailsecretaria.Text & "','" & emailresponsavel.Text & "','" & motivoviagem.Text & "','" & motorista.Text & "','" & retorno.Text & "','" & hrretorno.Text & "','" & cartao.Text & "','" & respagamento.Text & "','" & diapre.Text & "','" & solicitada.Text & "','" & fonesol.Text & "','" & anotacao.Text & "','" & forma.Text & "','" & roteiro.Text & "','" & Label29.Caption & "','False','False','False','False','True','False','" _
& "'" & usuario.Text & "','" & calckm.Text & "',[txt-color=#0000ff]'" & strsit & "','" & sigla.Text & "','" & stroperador & "," & Now() & "','" & strtempo & "','" & strcelula & "'[/txt-color],'[txt-color=#ff0000]"& calc.valor &"'[/txt-color])")
cnn.Execute ("insert into tabela(codigo,codcliente,empresa,sede,dtsaida,data,hrsaida,usuario,telusuario,saida,destino,ccusto,depto,unidade,responsavel,emailuser,emailsecretaria, emailresponsavel,motivoviagem,motorista,retorno,hrretorno,cartao,respagamento,diapre,solicitada,fonesol,anotacao,formapagamento,roteiro,codautenticacao, finalizada,ficha,faturada,conferida,status,statusnextel,guardausuario,calckm,envio,sigla,operador,datacadastro,horacadastro,celula,calc)" _
& "Values (" & codigo.Text & ",'" & codcliente.Text & "','" & empresa.Text & "','" & sede.Text & "','" & trata_data(dtsaida.Text) & "','" & dtsaida.Text & "','" & hrsaida.Text & "','" & Text2.Text & "','" & telusuario.Text & "','" & saida.Text & "','" & destino.Text & "','" & ccusto.Text & "','" & depto.Text & "', '" & unidade.Text & "','" & responsavel.Text & "','" & emailuser.Text & "','" & emailsecretaria.Text & "','" & emailresponsavel.Text & "','" & motivoviagem.Text & "','" & motorista.Text & "','" & retorno.Text & "','" & hrretorno.Text & "','" & cartao.Text & "','" & respagamento.Text & "','" & diapre.Text & "','" & solicitada.Text & "','" & fonesol.Text & "','" & anotacao.Text & "','" & forma.Text & "','" & roteiro.Text & "','" & Label29.Caption & "','False','False','False','False','True','False','" _
& "'" & usuario.Text & "','" & calckm.Text & "',[txt-color=#0000ff]'" & strsit & "','" & sigla.Text & "','" & stroperador & "," & Now() & "','" & strtempo & "','" & strcelula & "'[/txt-color],'[txt-color=#ff0000]"& calc.valor &"'[/txt-color])")
bom no meu exemplo , eu naun entrava campos autonumercao , em campo numericos naun usava aspas simpes e aspas duplas, e o os campos datas , sempre deram erros e so aceitavam sefose no formato texto, e numericos como campo memorando, mas vai fazendo na unha irmao tipo , um campo por campo ,ate ver que campo esta dano problema testa com o Msgbox
o meu insert into esta assim
rsApartamentos.Delete adAffectCurrent
cnBd.Execute "insert into Tbl_Apartamentos (Codigo, CodigoImo, NumChave, Data_Aluguel, Data_Saida, Data_Entrada, nomeEd, Descricao, Rua, Bairro, numero, Dormitorios, Sala, Cozinha, Numero_Ap, Garagem, AreaConstruida, Cidade, AreaUtil, Valor, observacao, Parcela, Banco, Agencia, Conta, Cep ) Values (" & txtcod.Text & "," & txtcodimo.Text & ",'" & txtNumChave.Text & "','" & txtdata.Text & "','" & txtdatasaida.Text & "','" & txtdataEnt.Text & "','" & txtname.Text & "','" & txtdescricao.Text & "','" & txtrua.Text & "','" & txtbairro.Text & "','" & txtnum.Text & "','" & txtdormitorio.Text & "','" & txtsala & "','" & txtcozi & "','" & txtn & "','" & txtgaragem & "','" & txtmetra & "','" & txtcidade & "','" & txtutil & "','" & txtvalor & "','" & txtobsdorm & "','" & txtnumparcela & "','" & txtbanco & "','" & txtagencia & "','" & txtconta & "','" & txtcep & "')"
rsApartamentos.Requery
e no form load do form esta assim
rsApartamentos.CursorLocation = adUseClient
o meu insert into esta assim
rsApartamentos.Delete adAffectCurrent
cnBd.Execute "insert into Tbl_Apartamentos (Codigo, CodigoImo, NumChave, Data_Aluguel, Data_Saida, Data_Entrada, nomeEd, Descricao, Rua, Bairro, numero, Dormitorios, Sala, Cozinha, Numero_Ap, Garagem, AreaConstruida, Cidade, AreaUtil, Valor, observacao, Parcela, Banco, Agencia, Conta, Cep ) Values (" & txtcod.Text & "," & txtcodimo.Text & ",'" & txtNumChave.Text & "','" & txtdata.Text & "','" & txtdatasaida.Text & "','" & txtdataEnt.Text & "','" & txtname.Text & "','" & txtdescricao.Text & "','" & txtrua.Text & "','" & txtbairro.Text & "','" & txtnum.Text & "','" & txtdormitorio.Text & "','" & txtsala & "','" & txtcozi & "','" & txtn & "','" & txtgaragem & "','" & txtmetra & "','" & txtcidade & "','" & txtutil & "','" & txtvalor & "','" & txtobsdorm & "','" & txtnumparcela & "','" & txtbanco & "','" & txtagencia & "','" & txtconta & "','" & txtcep & "')"
rsApartamentos.Requery
e no form load do form esta assim
rsApartamentos.CursorLocation = adUseClient
dtsaida.Text & "','" & hrsaida.Text & "' '" & unidade.Text & "'
perceba q vc esta usando como se todos os seus campos no banco fossem Texto
perceba q vc esta usando como se todos os seus campos no banco fossem Texto
Option Explicit
Public Enum TipoCampos
texto = 0
numero = 1
Data = 2
SimNao = 3
Memo = 4
Hora = 5
DtAccess = 6
End Enum
'***********************************************************************
'* esta funcao tem por objetivo retornar instrucao formatada para SQL *
'* Parametros: Valor = valor passado para a funcao formatar *
'* Formato = é o tipo de formato a ser formatado este pode*
'* ser numero,texto,data,hora,true e false *
'***********************************************************************
Public Function SqlFormata(Valor As Variant, Formato As TipoCampos) As String
Dim X As Integer
If Formato = numero Then 'Se O Valor Escolhido for Numero
If IsNull(Valor) Then
SqlFormata = 0
End If
If Valor = Null Then
SqlFormata = 0
End If
If IsEmpty(Valor) Then
SqlFormata = 0
End If
If Valor = "" Then
SqlFormata = 0
End If
For X = 1 To Len(Valor)
If Mid(Valor, X, 1) = "," Then
SqlFormata = SqlFormata & "."
ElseIf Mid(Valor, X, 1) <> "." Then
SqlFormata = SqlFormata & Mid(Valor, X, 1)
End If
Next X
ElseIf Formato = Data Then 'O Valor Escolhido e uma Data
If IsDate(Valor) Then
SqlFormata = "#" & Format(Valor, "MM/DD/YYYY") & "#"
Else
SqlFormata = "NULL"
End If
ElseIf Formato = texto Then 'O Valor Escolhido e um Texto
SqlFormata = IIf(IsNull(Valor), "NULL", "'" & Valor & "'")
ElseIf Formato = Hora Then
SqlFormata = IIf(IsNull(Valor), "NULL", "#" & Format(Valor, "hh:mm:ss") & "#")
ElseIf Formato = SimNao Then
SqlFormata = IIf(Valor, True, False)
ElseIf Formato = DtAccess Then 'O Valor Escolhido e uma Data em Access
If IsDate(Valor) Then
SqlFormata = "#" & Format(Valor, "MM/DD/YYYY") & "#"
Else
SqlFormata = "NULL"
End If
End If
End Function
'
'utilize esta funcao da seguinte maneira
Dim strSQL as string
strSQL = "Insert into tabela (campo_N,campo_T,Campo_D) values ("
strSQL = strSQL & sqlformata(10.00,Numero) & ","
strSQL = strSQL & sqlformata("Testes",texto) & ","
strSQL = strSQL & sqlformata("07/06/2005",dtaccess) & ");"
'Pronto voce tera uma SQL pronta pra uso.
Public Enum TipoCampos
texto = 0
numero = 1
Data = 2
SimNao = 3
Memo = 4
Hora = 5
DtAccess = 6
End Enum
'***********************************************************************
'* esta funcao tem por objetivo retornar instrucao formatada para SQL *
'* Parametros: Valor = valor passado para a funcao formatar *
'* Formato = é o tipo de formato a ser formatado este pode*
'* ser numero,texto,data,hora,true e false *
'***********************************************************************
Public Function SqlFormata(Valor As Variant, Formato As TipoCampos) As String
Dim X As Integer
If Formato = numero Then 'Se O Valor Escolhido for Numero
If IsNull(Valor) Then
SqlFormata = 0
End If
If Valor = Null Then
SqlFormata = 0
End If
If IsEmpty(Valor) Then
SqlFormata = 0
End If
If Valor = "" Then
SqlFormata = 0
End If
For X = 1 To Len(Valor)
If Mid(Valor, X, 1) = "," Then
SqlFormata = SqlFormata & "."
ElseIf Mid(Valor, X, 1) <> "." Then
SqlFormata = SqlFormata & Mid(Valor, X, 1)
End If
Next X
ElseIf Formato = Data Then 'O Valor Escolhido e uma Data
If IsDate(Valor) Then
SqlFormata = "#" & Format(Valor, "MM/DD/YYYY") & "#"
Else
SqlFormata = "NULL"
End If
ElseIf Formato = texto Then 'O Valor Escolhido e um Texto
SqlFormata = IIf(IsNull(Valor), "NULL", "'" & Valor & "'")
ElseIf Formato = Hora Then
SqlFormata = IIf(IsNull(Valor), "NULL", "#" & Format(Valor, "hh:mm:ss") & "#")
ElseIf Formato = SimNao Then
SqlFormata = IIf(Valor, True, False)
ElseIf Formato = DtAccess Then 'O Valor Escolhido e uma Data em Access
If IsDate(Valor) Then
SqlFormata = "#" & Format(Valor, "MM/DD/YYYY") & "#"
Else
SqlFormata = "NULL"
End If
End If
End Function
'
'utilize esta funcao da seguinte maneira
Dim strSQL as string
strSQL = "Insert into tabela (campo_N,campo_T,Campo_D) values ("
strSQL = strSQL & sqlformata(10.00,Numero) & ","
strSQL = strSQL & sqlformata("Testes",texto) & ","
strSQL = strSQL & sqlformata("07/06/2005",dtaccess) & ");"
'Pronto voce tera uma SQL pronta pra uso.
Tópico encerrado , respostas não são mais permitidas