ERRO INSTRUCAO SQL

CAIO.FR.SP 02/09/2009 15:22:42
#321717
galera ta dando um erro quando eu vou inserior ou alterar um cadastro no db. o erro é o seguinte: error [ô]2147217900(80040e14)[ô]: erro de sintaxe na instrução insert into[Ô]

o codigo que eu uso pra inclusao é o seguinte:
         With cmd_conexao
.ActiveConnection = conexao
.CommandType = adCmdText
.CommandText = [Ô]INSERT INTO produto (des, ref, marca, tipo, codbarra, valorcomp, valorvend, qtd, min, autodec) VALUES ([ô][Ô] & txtdesc.Text & [Ô][ô],[ô][Ô] & txtref.Text & [Ô][ô],[ô][Ô] & txtmarca.Text & [Ô][ô],[ô][Ô] & cmb_prodserv.Text & [Ô][ô],[ô][Ô] & txtbarras.Text & [Ô][ô],[ô][Ô] & txtvalorcomp.Text & [Ô][ô],[ô][Ô] & txtvalorvenda.Text & [Ô][ô],[ô][Ô] & txtestatual.Text & [Ô][ô],[ô][Ô] & txtestmin.Text & [Ô][ô],[ô][Ô] & chk_dec.Value & [Ô][ô]);[Ô]
.Execute
End With


e para alteração é o seguinte:

         With cmd_conexao
.ActiveConnection = conexao
.CommandType = adCmdText
.CommandText = [Ô]UPDATE produto SET [Ô] & _
[Ô]des = [ô][Ô] & txtdesc.Text & [Ô][ô],[Ô] & _
[Ô]ref = [ô][Ô] & txtref.Text & [Ô][ô],[Ô] & _
[Ô]marca = [ô][Ô] & txtmarca.Text & [Ô][ô],[Ô] & _
[Ô]tipo = [ô][Ô] & cmb_prodserv.Text & [Ô][ô],[Ô] & _
[Ô]codbarra = [ô][Ô] & txtbarras.Text & [Ô][ô],[Ô] & _
[Ô]valorcomp = [ô][Ô] & txtvalorcomp.Text & [Ô][ô],[Ô] & _
[Ô]valorvend = [ô][Ô] & txtvalorvenda.Text & [Ô][ô],[Ô] & _
[Ô]qtd = [ô][Ô] & txtestatual.Text & [Ô][ô],[Ô] & _
[Ô]min = [ô][Ô] & txtestmin.Text & [Ô][ô],[Ô] & _
[Ô]autodec = [ô][Ô] & chk_dec.Value & [Ô][ô][Ô] & _
[Ô] Where codigo = [Ô] & p & [Ô];[Ô]
.Execute
End With
LLAIA 02/09/2009 16:08:16
#321725
o problema deve está nessa parte:

[ô][Ô] & txtvalorcomp.Text & [Ô][ô],[ô][Ô] & txtvalorvenda.Text & [Ô][ô]


quando vc tenta inserir valores com casas decimais numa instrução SQL, vc tem que subsituir a virgula do valor de compra e de venda por ponto. é fácil resolver com um replace assim:

Replace(txtvalorcomp.Text, [Ô],[Ô] , [Ô].[Ô])


veja se funciona agora.

CAIO.FR.SP 02/09/2009 16:49:30
#321728
no caso na tabela todos os cmapos sao tipo texto, apenas o campo codigo é do tipo auto numerico, entao acho que nao deve ser isso. estou pensando que o problema pode estar no nome dos campos no db, sera que algum dos campos tem um nome restrito do acess?
LEANDRO 02/09/2009 17:58:34
#321739
   [Ô] Where codigo = [Ô] & p & [Ô];[Ô]


Cara esse P é um valor String ? ou Numerico ?

Se for String tem que colocar
[ô] [Ô] & p & [Ô] [ô]
CAIO.FR.SP 02/09/2009 23:05:45
#321771
nao leandro p é numerico, e codigo é autonumeração.
Galera da uma força ai.
RICART 02/09/2009 23:14:52
#321772
Resposta escolhida
Caoi,
O erro deve estar no campo min, pois é um termo reservado para as funções SQL. Troque o nome deste campo.
RCMRO 02/09/2009 23:20:42
#321773
Provávelmente seja o MIN mesmo. Se não quiser trocar o nome (que aconselho também), coloca ela SEMPRE entre colchetes [MIN].
Por último, verifica se nenhuma das strings usa a aspa simples. Se usar causa erro também. Normalmente usa-se uma função para retornar a string sem as aspas simples.
CAIO.FR.SP 02/09/2009 23:23:14
#321774
ricart era isso mesmo, estava ja imaginando que erra algo do tipo. tem algum manual para que eu possa saber quais sao os termos resrvados para funções sql?
JWCELYO 02/09/2009 23:25:08
#321775
o problema ta na organizaçãp nossa senhora cara desse jeito vc ta armando uma em boscada para vc mesmo rsrsrsrs
e olha que so são 10 campos imagina se 60 ou 70 se tava na rosa


tente organiza assim

Dim data As String = .OSTextBoxX1DataOS.Text [ô]2
Dim Cliente As String = .OSComboBoxExaddClienteOS.Text [ô]3
Dim Condutor As String = .OSComboBoxExAddCondutorOS.Text [ô]4
Dim solicitante As String = .OSTextBoxXSolicitante.Text [ô]5
Dim uf As String = .OSComboBoxExUF.Text [ô]6
Dim Cep As String = .OSMaskedTextBoxAdvCEP.Text [ô]7
Dim Endereco As String = .OSTextBoxXEndereco.Text [ô]8
Dim bairro As String = .OSTextBoxXBairro.Text [ô]9
Dim Cidade As String = .OSTextBoxXCidade.Text [ô]10
Dim contato As String = .OSTextBoxXContato.Text [ô]11
Dim obs As String = .OSTextBoxXOBS.Text [ô]12
Dim ValorFechado As String = .OSDoubleInputValor.Text [ô]13
Dim ValorCondutor As String = .OSDoubleInputCondutor.Text [ô]14
Dim Pagamento As String = .OSComboBoxExPagamento.Text [ô]15
Dim Print As String = .OSComboBoxExPrint.Text [ô]16
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]SEGUNDO ENDEREÇO[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
Dim contato2 As String = .OSTextBoxXContato2.Text [ô]11
Dim uf2 As String = .OSComboBoxExUF2.Text [ô]6
Dim Cep2 As String = .OSMaskedTextBoxAdvCEP2.Text [ô]7
Dim Endereco2 As String = .OSTextBoxXEndereco2.Text [ô]8
Dim bairro2 As String = .OSTextBoxXBairro2.Text [ô]9
Dim Cidade2 As String = .OSTextBoxXCidade2.Text [ô]10
Dim obs2 As String = .OSTextBoxXOBS2.Text [ô]12
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]TERCEIRO ENDEREÇO[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
Dim contato3 As String = .OSTextBoxXContato3.Text [ô]11
Dim uf3 As String = .OSComboBoxExUF3.Text [ô]6
Dim Cep3 As String = .OSMaskedTextBoxAdvCEP3.Text [ô]7
Dim Endereco3 As String = .OSTextBoxXEndereco3.Text [ô]8
Dim bairro3 As String = .OSTextBoxXBairro3.Text [ô]9
Dim Cidade3 As String = .OSTextBoxXCidade3.Text [ô]10
Dim obs3 As String = .OSTextBoxXOBS3.Text [ô]12
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]QUARTO ENDEREÇO[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
Dim contato4 As String = .OSTextBoxXContato4.Text [ô]11
Dim uf4 As String = .OSComboBoxExUF4.Text [ô]6
Dim Cep4 As String = .OSMaskedTextBoxAdvCEP4.Text [ô]7
Dim Endereco4 As String = .OSTextBoxXEndereco4.Text [ô]8
Dim bairro4 As String = .OSTextBoxXBairro4.Text [ô]9
Dim Cidade4 As String = .OSTextBoxXCidade4.Text [ô]10
Dim obs4 As String = .OSTextBoxXOBS4.Text [ô]12
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]QUINTO ENDEREÇO[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
Dim contato5 As String = .OSTextBoxXContato4.Text [ô]11
Dim uf5 As String = .OSComboBoxExUF4.Text [ô]6
Dim Cep5 As String = .OSMaskedTextBoxAdvCEP4.Text [ô]7
Dim Endereco5 As String = .OSTextBoxXEndereco4.Text [ô]8
Dim bairro5 As String = .OSTextBoxXBairro4.Text [ô]9
Dim Cidade5 As String = .OSTextBoxXCidade4.Text [ô]10
Dim obs5 As String = .OSTextBoxXOBS5.Text [ô]12
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]


strSQL = [Ô]INSERT INTO os(data, cliente, condutor, solicitante, uf, cep, endereco, bairro, cidade, contato, obs, valorfechado, valorcondutor, pagamento, impresao, contato2, uf2, cep2, end2, bairro2, cidade2, obs2, contato3, uf3, cep3, end3, bairro3, cidade3, obs3, contato4, uf4, cep4, end4, bairro4, cidade4, obs4, contato5, uf5, cep5, end5, bairro5, cidade5, obs5) VALUES ([Ô] _
& [Ô][ô][Ô] & data & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cliente & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Condutor & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & solicitante & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & uf & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cep & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Endereco & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & bairro & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cidade & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & contato & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & obs & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & ValorFechado & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & ValorCondutor & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Pagamento & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Print & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & contato2 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & uf2 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cep2 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Endereco2 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & bairro2 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cidade2 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & obs2 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & contato3 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & uf3 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cep3 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Endereco3 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & bairro3 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cidade3 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & obs3 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & contato4 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & uf4 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cep4 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Endereco4 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & bairro4 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cidade4 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & obs4 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & contato5 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & uf5 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cep5 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Endereco5 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & bairro5 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & Cidade5 & [Ô][ô], [Ô] _
& [Ô][ô][Ô] & obs5 & [Ô][ô])[Ô]
CAIO.FR.SP 02/09/2009 23:28:17
#321777
Não JWCELYO, o problema estava mesmo no nome de um campo. cara ja tentei simplicar o modo que faço o meu codigo sql, mais oq eu eu mais consigo entender foi esse meu mesmo. mais aceito opiniões. ainda quero melhorar mto.
JWCELYO 02/09/2009 23:33:54
#321779
blz veja so se sua base de dados for access tem algums nomes que não podem ser colocados
um exemplor de falha que microsoft descobriu em 2002 é que colocamos o nome user em uma tabela ou campo do access
causa um erro de fluxo.
bom deixa pra la

então tenta muda o nome do campo da base de dados [Ô]ref[Ô] [Ô]des[Ô] e o [Ô]min[Ô] podem ser eles
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas