ERRO DE SITAXE NA INSTRUCAO INSERT INTO
( Erro de Sintaxe na Instrução Insert Into )
Alguem sabe como resolver isso :
esta [e a parte do codigo onde se encontra os Insert..
strSQL = [Ô]INSERT INTO Clientes([Ô] & _
[Ô]Codigo,[Ô] & _
[Ô]Nome,[Ô] & _
[Ô]TipoDoc,[Ô] & _
[Ô]NumeroDoc,[Ô] & _
[Ô]DtCadastro,[Ô] & _
[Ô]DtUltimoFat,[Ô] & _
[Ô]DtNascimento,[Ô] & _
[Ô]Status,[Ô] & _
[Ô]Obs,[Ô] & _
[Ô]CEP,[Ô] & _
[Ô]TipoVia,[Ô] & _
[Ô]Logradouro,[Ô]
strSQL = strSQL & _
[Ô]Municipio,[Ô] & _
[Ô]Numero,[Ô] & _
[Ô]Bairro,[Ô] & _
[Ô]Complemento,[Ô] & _
[Ô]UF,[Ô] & _
[Ô]Pais,[Ô] & _
[Ô]Telefone1,[Ô] & _
[Ô]Telefone2,[Ô] & _
[Ô]Fax,[Ô] & _
[Ô]Site,[Ô] & _
[Ô]Email,[Ô] & _
[Ô]Contato)VALUES([Ô] & _
[Ô][ô][Ô] & Trim(atxtCodigo.Text) & [Ô][ô],[Ô] & _
[Ô][ô][Ô] & Trim(atxtCliente.Text) & [Ô][ô],[Ô]
strSQL = strSQL & _
IIf(cboDoc.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & cboDoc.Text & [Ô][ô],[Ô]) & _
IIf(atxtNumeroDoc.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & LimparNumero(Trim(atxtNumeroDoc.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtDtCadastro.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtDtCadastro.Text) & [Ô][ô],[Ô]) & _
IIf(atxtDtUltimoOS.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtDtUltimoOS.Text) & [Ô][ô],[Ô]) & _
IIf(atxtDtNascimento.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtDtNascimento.Text) & [Ô][ô],[Ô]) & _
IIf(cboAtivo.Text = [Ô]SIM[Ô], [Ô]True,[Ô], [Ô]True,[Ô]) & _
IIf(atxtObservacao.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtObservacao.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtCep.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtCep.Text) & [Ô][ô],[Ô]) & _
IIf(cboVia.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & cboVia.Text & [Ô][ô],[Ô]) & _
IIf(atxtLogradouro.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtLogradouro.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtMunicipio.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtMunicipio.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtNumero.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtNumero.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtBairro.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtBairro.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtComplemento.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtComplemento.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtUF.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtUF.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtPais.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtPais.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtTelefone1.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtTelefone1.Text) & [Ô][ô],[Ô]) & _
IIf(atxtTelefone2.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtTelefone2.Text) & [Ô][ô],[Ô]) & _
IIf(atxtFax.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtFax.Text) & [Ô][ô],[Ô]) & _
IIf(atxtSite.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtSite.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtEmail.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtEmail.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtContato.Text = [Ô][Ô], [Ô]Null)[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtContato.Text)) & [Ô][ô])[Ô])
cn.Execute (strSQL)
strSQL = [Ô]INSERT INTO Limites([Ô] & _
[Ô]CodigoCliente,[Ô] & _
[Ô]LimiteCredito,[Ô] & _
[Ô]LimiteDisponivel,[Ô] & _
[Ô]SenhaCompra,[Ô] & _
[Ô]CreditoBloqueado,[Ô] & _
[Ô])VALUES([Ô]
strSQL = strSQL & _
[Ô][ô][Ô] & Trim(atxtCodigo.Text) & [Ô][ô],[Ô] & _
IIf(atxtLimiteCredito.Text = [Ô][Ô], [Ô][ô]0,00[ô],[Ô], [Ô][ô][Ô] & Trim(atxtLimiteCredito.Text)) & [Ô][ô],[Ô] & _
IIf(atxtLimiteDisponivel.Text = [Ô][Ô], [Ô][ô]0,00[ô],[Ô], [Ô][ô][Ô] & Trim(atxtLimiteDisponivel.Text)) & [Ô][ô],[Ô] & _
IIf(atxtSenhaCompra1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Trim(atxtSenhaCompra1.Text)) & [Ô][ô],[Ô] & _
IIf(chkCreditoBloqueado.Value = True, [Ô]True)[Ô], [Ô]False[Ô])
Vamos ve se agente descobri este danado......
todos ps campos são do tipo texto?
Citação::
vamos lá qual é o banco de dados?
todos ps campos são do tipo texto?
sim todos e o banco que uso [e o acess
então tente o seguinte
strSQL = [Ô]INSERT INTO Clientes(Codigo,Nome,TipoDoc,NumeroDoc,DtCadastro,DtUltimoFat,DtNascimento,Status,Obs,CEP,TipoVia,Logradouro,[Ô]
strSQL = strSQL & [Ô]Municipio,Numero,Bairro,Complemento,UF,Pais,Telefone1,Telefone2,Fax,Site,Email,Contato)VALUES([Ô] & _
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtCodigo.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtCliente.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & cboDoc.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & LimparNumero(Trim(atxtNumeroDoc.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtDtCadastro.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtDtUltimoOS.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtDtNascimento.Text) & [Ô][ô],[Ô]
strSQL = strSQL & IIf(cboAtivo.Text = [Ô]SIM[Ô], [Ô][ô]True[ô],[Ô], [Ô][ô]False[ô],[Ô])
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtObservacao.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtCep.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & cboVia.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtLogradouro.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtMunicipio.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtNumero.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtBairro.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtComplemento.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtUF.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtPais.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtTelefone1.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtTelefone2.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtFax.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtSite.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtEmail.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtContato.Text)) & [Ô][ô])[Ô]
cn.Execute (strSQL)
acredito que funcione, porém se aparecer algum erro dizendo que não é permito valor nulo, va tratando somente os campos ao qual a sql recusar
Citação::
Jean acredito que vc não precise tratar todos os campos com IIF, pois vc tratando todos os campos como texto o que não é correto principalmente quando o campo for armazenar uma data, o null teria de ser tratado como [ô]Null[ô]
então tente o seguintestrSQL = [Ô]INSERT INTO Clientes(Codigo,Nome,TipoDoc,NumeroDoc,DtCadastro,DtUltimoFat,DtNascimento,Status,Obs,CEP,TipoVia,Logradouro,[Ô]
strSQL = strSQL & [Ô]Municipio,Numero,Bairro,Complemento,UF,Pais,Telefone1,Telefone2,Fax,Site,Email,Contato)VALUES([Ô] & _
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtCodigo.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtCliente.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & cboDoc.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & LimparNumero(Trim(atxtNumeroDoc.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtDtCadastro.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtDtUltimoOS.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtDtNascimento.Text) & [Ô][ô],[Ô]
strSQL = strSQL & IIf(cboAtivo.Text = [Ô]SIM[Ô], [Ô][ô]True[ô],[Ô], [Ô][ô]False[ô],[Ô])
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtObservacao.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtCep.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & cboVia.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtLogradouro.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtMunicipio.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtNumero.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtBairro.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtComplemento.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtUF.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtPais.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtTelefone1.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtTelefone2.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Trim(atxtFax.Text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtSite.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtEmail.Text)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtContato.Text)) & [Ô][ô])[Ô]
cn.Execute (strSQL)
acredito que funcione, porém se aparecer algum erro dizendo que não é permito valor nulo, va tratando somente os campos ao qual a sql recusar
deu muito certo nao. o erro é quando eu tento cadastra um cliente.....ele cadasra certo mais vem uma menssagem de erro
erro de sintaxe na instruçao insert into...
trSQL = [Ô]INSERT INTO Limites([Ô] & _
[Ô]CodigoCliente,[Ô] & _
[Ô]LimiteCredito,[Ô] & _
[Ô]LimiteDisponivel,[Ô] & _
[Ô]SenhaCompra,[Ô] & _
[Ô]CreditoBloqueado,[Ô] & _ [txt-color=#e80000]<<<<<----------tire esta virgula depois do credtiobloqueado que vai funcionar[/txt-color]
[Ô])VALUES([Ô]
strSQL = strSQL & _
[Ô][ô][Ô] & Trim(atxtCodigo.Text) & [Ô][ô],[Ô] & _
IIf(atxtLimiteCredito.Text = [Ô][Ô], [Ô][ô]0,00[ô],[Ô], [Ô][ô][Ô] & Trim(atxtLimiteCredito.Text)) & [Ô][ô],[Ô] & _
IIf(atxtLimiteDisponivel.Text = [Ô][Ô], [Ô][ô]0,00[ô],[Ô], [Ô][ô][Ô] & Trim(atxtLimiteDisponivel.Text)) & [Ô][ô],[Ô] & _
IIf(atxtSenhaCompra1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Trim(atxtSenhaCompra1.Text)) & [Ô][ô],[Ô] & _
IIf(chkCreditoBloqueado.Value = True, [Ô]True)[Ô], [Ô]False[Ô])
Erro de sintaxe na sequencia de caracteres na expressção de consulta [ô]Null[ô],False[ô]
muito doido
Citação::
esqueci do segundo insert, vc possui este outro insert que tem uma virgula a mais veja
trSQL = [Ô]INSERT INTO Limites([Ô] & _
[Ô]CodigoCliente,[Ô] & _
[Ô]LimiteCredito,[Ô] & _
[Ô]LimiteDisponivel,[Ô] & _
[Ô]SenhaCompra,[Ô] & _
[Ô]CreditoBloqueado,[Ô] & _ [txt-color=#e80000]<<<<<----------tire esta virgula depois do credtiobloqueado que vai funcionar[/txt-color]
[Ô])VALUES([Ô]
strSQL = strSQL & _
[Ô][ô][Ô] & Trim(atxtCodigo.Text) & [Ô][ô],[Ô] & _
IIf(atxtLimiteCredito.Text = [Ô][Ô], [Ô][ô]0,00[ô],[Ô], [Ô][ô][Ô] & Trim(atxtLimiteCredito.Text)) & [Ô][ô],[Ô] & _
IIf(atxtLimiteDisponivel.Text = [Ô][Ô], [Ô][ô]0,00[ô],[Ô], [Ô][ô][Ô] & Trim(atxtLimiteDisponivel.Text)) & [Ô][ô],[Ô] & _
IIf(atxtSenhaCompra1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Trim(atxtSenhaCompra1.Text)) & [Ô][ô],[Ô] & _
IIf(chkCreditoBloqueado.Value = True, [Ô]True)[Ô], [Ô]False[Ô])
Agora o erro esta somente nesta parte
IIf(chkCreditoBloqueado.Value = True, [Ô]True)[Ô], [Ô]False)[Ô])
me diga o que tem de errado nela .....
IIf(chkCreditoBloqueado.Value = True, True, False)
Obs: Assumindo que você tenha criado o campo do tipo Verdadeiro/Falso (booleaneo)
IIf(chkCreditoBloqueado.Value = True, [Ô][ô]True[ô])[Ô], [Ô][ô]False[ô])[Ô])
Citação::
Novamente tenho de dizer, a tabela deverá ser toda reestruturada, pois você trata todos campos como texto, para a query funcionar corretamente se tratando de um campo texto deverão ser usados os apóstrofos, vejaIIf(chkCreditoBloqueado.Value = True, [Ô][ô]True[ô])[Ô], [Ô][ô]False[ô])[Ô])
esta voltando o seguinte erro......
Erro de sintaxe na sequencia de caracteres na expressão de consulta [Ô],false[ô]