INSERT INTO

TLOUREIRO82 11/10/2012 12:45:07
#411829
Prezados,

Agradeço o costumeiro apoio. Abaixo tenho um código que gravo informações de um banco em outro. O código abaixo está funcionando mas quando eu tento adicionar o campo [Ô]local[Ô] da tabela de destino dá Erro de sintaxe na instrução INSERT INTO. Eu tiro funciona normal.

For i = 0 To ds1.Tables([Ô]TBL_CAD[Ô]).Rows.Count - 1

[ô], data, numero, local, tipo, status , descricao, causas, acao, rac_relacao, rac_qual, classificacao, matriz, estado_mental, erros_criticos, seis_m, digi_matricula, digi_ti
comando = New OleDb.OleDbCommand([Ô]insert into tb_rec (emitente_matricula, emitente_nome, emitente_gg, emitente_ga, emitente_super, data, numero, tipo, status, descricao, causas, acao, rac_relacao, rac_qual, classificacao, matriz, estado_mental, erros_criticos, seis_m, digi_matricula, digi_ti, local) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)[Ô], conect)

comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_MATRICULA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_NOME[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_GERAL[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_GERENCIA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_SUPERVISAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_DATA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_FORMULARIO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_TIPO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_STATUS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_DESCRICAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_CAUSAS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ACAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_RAC[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_RAC1[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_CLASSIFICACAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_MATRIZ1[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ESTADO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ERROS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_SEIS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_INSEREMATRI[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_COMPUTADOR[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_LOCAL[Ô])) ****


comando.ExecuteNonQuery()

Next
ALTAIR148 11/10/2012 12:57:29
#411831
Boa tarde,

Repare que você tem 21 [Ô]?[Ô] e vc passa 22 parametros:

(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) > Aqui tem 21 [Ô]?[Ô]



Abaixo tem 22 parametros, ou seja, falta 1 [Ô]?[Ô].

   comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_MATRICULA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_NOME[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_GERAL[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_GERENCIA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_SUPERVISAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_DATA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_FORMULARIO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_TIPO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_STATUS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_DESCRICAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_CAUSAS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ACAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_RAC[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_RAC1[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_CLASSIFICACAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_MATRIZ1[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ESTADO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ERROS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_SEIS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_INSEREMATRI[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_COMPUTADOR[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_LOCAL[Ô]))





Tente com o código abaixo:



For i = 0 To ds1.Tables([Ô]TBL_CAD[Ô]).Rows.Count - 1

[ô], data, numero, local, tipo, status , descricao, causas, acao, rac_relacao, rac_qual, classificacao, matriz, estado_mental, erros_criticos, seis_m, digi_matricula, digi_ti
comando = New OleDb.OleDbCommand([Ô]insert into tb_rec (emitente_matricula, emitente_nome, emitente_gg, emitente_ga, emitente_super, data, numero, tipo, status, descricao, causas, acao, rac_relacao, rac_qual, classificacao, matriz, estado_mental, erros_criticos, seis_m, digi_matricula, digi_ti, local) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)[Ô], conect)

comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_MATRICULA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_NOME[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_GERAL[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_GERENCIA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_SUPERVISAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_DATA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_FORMULARIO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_TIPO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_STATUS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_DESCRICAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_CAUSAS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ACAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_RAC[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_RAC1[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_CLASSIFICACAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_MATRIZ1[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ESTADO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ERROS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_SEIS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_INSEREMATRI[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_COMPUTADOR[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_LOCAL[Ô])) ****


comando.ExecuteNonQuery()

Next
ALTAIR148 11/10/2012 13:30:24
#411837
Um outro detalhe seria dar nome aos parâmetros:

Ex:

.... Values(?emitente_matricula, ?emitente_nome.....)

comando.Parameters.AddWithValue([Ô]?emitente_matricula[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_MATRICULA[Ô]))
comando.Parameters.AddWithValue([Ô]?emitente_nome[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_NOME[Ô]))


Assim fica mais fácil saber em qual lugar cada parâmetro vai, e também não sei se isso pode dar problemas, mas acredito que se por ventura modificar a ordem do parâmetro, o programa também vai entender ele de forma errada, se todos tiverem identificados evita esse problema.

TLOUREIRO82 11/10/2012 13:48:11
#411843
Altair,

Eu copiei e colei o código que passou mas continua dando Erro de sintaxe na instrução INSERT INTO. Será que o nome [Ô]local[Ô] pode está dando conflito? Porque é só tirar que funciona
ALTAIR148 11/10/2012 13:52:06
#411845
Poste ai como que ficou o código.
TLOUREIRO82 11/10/2012 13:57:38
#411846
Altair,

Eu desabilitei o Try para identificar os erros.


Dim conex As New OleDb.OleDbConnection()
conex.ConnectionString = ([Ô]Provider=Microsoft.Jet.OLEDB.4.0 ; Data Source=[Ô] & BANCO & [Ô][Ô])
conex.Open()
Dim EXPORT As String = [Ô]ENVIAR[Ô]

Dim da1 As New OleDb.OleDbDataAdapter([Ô]SELECT * FROM TBL_CAD WHERE COL_EXPORTACAO = [ô][Ô] & EXPORT & [Ô][ô][Ô], conex)
Dim ds1 As New DataSet([Ô]TBL_CAD[Ô])


[ô] conexão banco
Dim BANCO1 As String = TextBox1.Text
Dim conns As String = [Ô] Provider=Microsoft.Jet.OLEDB.4.0 ; Data Source=[Ô] & BANCO1 & [Ô]; jet oledb:database password=[Ô] & SENHA & [Ô][Ô]
Dim conect As New OleDb.OleDbConnection
Dim comando As OleDb.OleDbCommand


conect.ConnectionString = conns
conect.Open()

[ô]Try
Me.Cursor = Cursors.WaitCursor

da1.Fill(ds1, [Ô]TBL_CAD[Ô])


For i = 0 To ds1.Tables([Ô]TBL_CAD[Ô]).Rows.Count - 1

comando = New OleDb.OleDbCommand([Ô]insert into tb_rec (emitente_matricula, emitente_nome, emitente_gg, emitente_ga, emitente_super, data, numero, tipo, status, descricao, causas, acao, rac_relacao, rac_qual, classificacao, matriz, estado_mental, erros_criticos, seis_m, digi_matricula, digi_ti, local) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)[Ô], conect)

comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_MATRICULA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_NOME[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_GERAL[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_GERENCIA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_SUPERVISAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_DATA[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_FORMULARIO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_TIPO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_STATUS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_DESCRICAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_CAUSAS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ACAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_RAC[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_RAC1[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_CLASSIFICACAO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_MATRIZ1[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ESTADO[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_ERROS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_SEIS[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_INSEREMATRI[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_COMPUTADOR[Ô]))
comando.Parameters.AddWithValue([Ô]?[Ô], ds1.Tables([Ô]TBL_CAD[Ô]).Rows(i)([Ô]COL_LOCAL[Ô])) ****


comando.ExecuteNonQuery()

Next

Me.Cursor = Cursors.Default
MsgBox([Ô]As Informações foram Exportadas![Ô], vbInformation, [Ô]Aviso[Ô])


[ô] Catch ex As Exception

[ô]Me.Cursor = Cursors.Default
[ô]MsgBox([Ô]Erro de Processamento[Ô] & Chr(13) & [Ô]Planiha de carga fora do padrão[Ô], MsgBoxStyle.Information, [Ô]Aviso[Ô])


[ô] End Try


conect.Close()
conect.Dispose()
conect = Nothing


conex.Close()
conex.Dispose()
conex = Nothing

End Sub
ALTAIR148 11/10/2012 14:02:28
#411848
Bom primeiramente existe uma coisa chamada Palavra Reservada nos bancos de dados e a palavra [Ô]LOCAL[Ô] ela é uma palavra reservada do Access. Nesse LINK, tem uma lista com todas as palavras reservadas do access e uma explicação do que são [Ô]Palavras Reservadas[Ô], para resolver seu problema mude o nome do campo Local para Emitente_Local que o problema vai ser resolvido.
TLOUREIRO82 11/10/2012 14:28:15
#411852
Altair,

Eu tinha pensado nisso mas como eu não sabia a lista de nomes vou guarda-la. O problema é que este banco pertence a outra pessoa e ele grava dados lá.. eu só faria uma exportação das informações do meu banco pro dele... A pergunta é como ele consegue gravar?.. Vou perguntar e posto
TLOUREIRO82 11/10/2012 14:51:59
#411857
Altair,

Segue código que ele utiliza... é VBA


Sub Incluir_Registro()

sql = [Ô]SELECT * FROM tb_rec [Ô]
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.Conn, adOpenStatic, adLockOptimistic

banco.AddNew
banco.Fields([Ô]emitente_matricula[Ô]) = Me.txt_matricula.Value
banco.Fields([Ô]emitente_nome[Ô]) = Me.txt_nome.Value
banco.Fields([Ô]emitente_gg[Ô]) = Me.txt_gg.Value
banco.Fields([Ô]emitente_ga[Ô]) = Me.txt_ga.Value
banco.Fields([Ô]emitente_super[Ô]) = Me.txt_super.Value

banco.Fields([Ô]data[Ô]) = Me.txt_data.Value
banco.Fields([Ô]numero[Ô]) = Me.txt_rec.Value
banco.Fields([Ô]local[Ô]) = Me.txt_local.Value
Tópico encerrado , respostas não são mais permitidas