Guest Dani G Postado Maio 16, 2007 Denunciar Share Postado Maio 16, 2007 Alguém pode me ajudar? Estou utilizando VB/ACCESS quando vou executar um insert, no VB ocorre o erro: Run Time error '-2147217900 (80040e14)'Erro de sintaxe na instrução INSERT INTOentão executo passo a passo pego a instrução que está INSERT INTO (no VB) e rodo no ACCESS e não dá erro...O código é este:Private Sub Incluir()Dim sqlF As StringIf Modo = "MODO INCLUSÃO" And grd_01.Text <> "" ThenSet Banco = New ADODB.ConnectionSet Tabela = New ADODB.RecordsetBanco.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & NM_BANCO strsql = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & NM_BANCOBanco.Open strsqlsqlF = ""sqlF = sqlF & "INSERT INTO TBL_PREGAO(DIA, mês, ANO, LOCAL, TIPO, EDITAL, PRODUTOS, REPRESENTANTE, OBS)"sqlF = sqlF & "VALUES(" & CDbl(Right(tab_dias.Caption, 2)) & ", "sqlF = sqlF & CDbl(txt_mes.Text) & ", " & CDbl(txt_ano.Text) & ", "grd_01.Col = 1grd_01.Row = 1'LOCALsqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "grd_01.Col = 2'TIPOsqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "grd_01.Col = 3'EDITALsqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "grd_01.Col = 4'PRODUTOSsqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "grd_01.Col = 5'REPRESENTANTEsqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "grd_01.Col = 6'OBSsqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "' )"Banco.Execute sqlFIf MsgBox("Inclusão efetuada com Sucesso! Deseja continuar incluindo?", vbYesNo, "Aviso") = vbYes ThenLimpaCamposElseUnload MeEnd IfBanco.CloseEnd IfEnd SubOnde:sqlf = INSERT INTO TBL_PREGAO (DIA, mês, ANO, LOCAL, TIPO, EDITAL,PRODUTOS, REPRESENTANTE, OBS) VALUES (1, 5, 2007, 'SANTOS', 'PP','45668/07', 'ELETROELETRONICOS', 'BRUNO', 'TESTANDO' )Minha TBL_PREGAO é esta:DIA - Nºmês - NºANO - NºLOCAL - TEXTO (30)TIPO - TEXTO (30)EDITAL - TEXTO (30)PRODUTOS - TEXTO (60)REPRESENTANTE - TEXTO(30)OBS - TEXTO (255) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 17, 2007 Denunciar Share Postado Maio 17, 2007 Já experimentou exibir a SQL depois de montada (usando um Debug.Print)?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dani G Postado Maio 17, 2007 Denunciar Share Postado Maio 17, 2007 Olá...Então, quando falo acima que: sqlf = INSERT INTO TBL_PREGAO (DIA, mês, ANO, LOCAL, TIPO, EDITAL,PRODUTOS, REPRESENTANTE, OBS) VALUES (1, 5, 2007, 'SANTOS', 'PP','45668/07', 'ELETROELETRONICOS', 'BRUNO', 'TESTANDO' ) é justamente no debug.print que adquiro esta informãção e mais: se rodo esta mesma instrução direto no access, ele inseri o registro sem problema algum...Então, acredito, o erro ocorre no VB mesmo e não estou conseguindo saber o que é... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 18, 2007 Denunciar Share Postado Maio 18, 2007 Olá...Então, quando falo acima que: sqlf = INSERT INTO TBL_PREGAO (DIA, mês, ANO, LOCAL, TIPO, EDITAL,PRODUTOS, REPRESENTANTE, OBS) VALUES (1, 5, 2007, 'SANTOS', 'PP','45668/07', 'ELETROELETRONICOS', 'BRUNO', 'TESTANDO' ) é justamente no debug.print que adquiro esta informãção e mais: se rodo esta mesma instrução direto no access, ele inseri o registro sem problema algum...Então, acredito, o erro ocorre no VB mesmo e não estou conseguindo saber o que é...Mas, aqui...sqlF = sqlF & "VALUES(" & CDbl(Right(tab_dias.Caption, 2)) & ", "... note que "VALUES" está colado com o parêntese (o que creio que *não* é um problema, é claro). Já no que você mostrou *tem* um espaço entre eles. Por isso que supus que não é o mesmo exemplo.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dani G Postado Maio 18, 2007 Denunciar Share Postado Maio 18, 2007 Desculpa... é que fiquei alterando os espaços... também achei que não erra um problema, mas na dúvida...E acredita que ainda estou enroscada aqui...Faço outros insertes em outras tabelas e não ocorre erro... Afff.... :wacko: tks Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 19, 2007 Denunciar Share Postado Maio 19, 2007 Então, cole aqui como realmente aparece. Mas, também experimente colocar os espaços corretos.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dani G Postado Maio 28, 2007 Denunciar Share Postado Maio 28, 2007 Olá Graymalkin!Desculpa, me ausentei por alguns dias, agora estou retornando de onde parei...a instrução é:sqlf = INSERT INTO TBL_PREGAO (DIA, mês, ANO, LOCAL, TIPO, EDITAL,PRODUTOS, REPRESENTANTE, OBS) VALUES (1, 5, 2007, 'SANTOS', 'PP','45668/07', 'ELETROELETRONICOS', 'BRUNO', 'TESTANDO')Alguma luz?Tks. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Maio 28, 2007 Denunciar Share Postado Maio 28, 2007 acho que dependendo da sua versao do access, ele considera "local" como palavra chave e não como o campo do seu banco. tenta por entre colchete:INSERT INTO TBL_PREGAO (DIA, mês, ANO, [LOCAL], TIPO, EDITAL,PRODUTOS, REPRESENTANTE, OBS) VALUES (1, 5, 2007, 'SANTOS', 'PP','45668/07', 'ELETROELETRONICOS', 'BRUNO', 'TESTANDO' )[/code]se não funcionar, tenta copiar a query toda e executar como consulta direto no access pra ver se ele aponta onde é o erro (normalmente depois da mensagem de erro, ele para o cursor onde esta o erro) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dani G Postado Maio 29, 2007 Denunciar Share Postado Maio 29, 2007 acho que dependendo da sua versao do access, ele considera "local" como palavra chave e não como o campo do seu banco. tenta por entre colchete:INSERT INTO TBL_PREGAO (DIA, mês, ANO, [LOCAL], TIPO, EDITAL, PRODUTOS, REPRESENTANTE, OBS) VALUES (1, 5, 2007, 'SANTOS', 'PP', '45668/07', 'ELETROELETRONICOS', 'BRUNO', 'TESTANDO' )se não funcionar, tenta copiar a query toda e executar como consulta direto no access pra ver se ele aponta onde é o erro (normalmente depois da mensagem de erro, ele para o cursor onde esta o erro)Kuroi, :rolleyes: Tks! Valeu mesmooo...Problema resolvido!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Dani G
Alguém pode me ajudar?
Estou utilizando VB/ACCESS quando vou executar um insert, no VB ocorre o erro:
Run Time error '-2147217900 (80040e14)'
Erro de sintaxe na instrução INSERT INTO
então executo passo a passo pego a instrução que está INSERT INTO (no VB) e rodo no ACCESS e não dá erro...
O código é este:
Private Sub Incluir()
Dim sqlF As String
If Modo = "MODO INCLUSÃO" And grd_01.Text <> "" Then
Set Banco = New ADODB.Connection
Set Tabela = New ADODB.Recordset
Banco.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & NM_BANCO
strsql = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & NM_BANCO
Banco.Open strsql
sqlF = ""
sqlF = sqlF & "INSERT INTO TBL_PREGAO(DIA, mês, ANO, LOCAL, TIPO, EDITAL, PRODUTOS, REPRESENTANTE, OBS)"
sqlF = sqlF & "VALUES(" & CDbl(Right(tab_dias.Caption, 2)) & ", "
sqlF = sqlF & CDbl(txt_mes.Text) & ", " & CDbl(txt_ano.Text) & ", "
grd_01.Col = 1
grd_01.Row = 1
'LOCAL
sqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "
grd_01.Col = 2
'TIPO
sqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "
grd_01.Col = 3
'EDITAL
sqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "
grd_01.Col = 4
'PRODUTOS
sqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "
grd_01.Col = 5
'REPRESENTANTE
sqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "', "
grd_01.Col = 6
'OBS
sqlF = sqlF & "'" & UCase(Trim(grd_01.Text)) & "' )"
Banco.Execute sqlF
If MsgBox("Inclusão efetuada com Sucesso! Deseja continuar incluindo?", vbYesNo, "Aviso") = vbYes Then
LimpaCampos
Else
Unload Me
End If
Banco.Close
End If
End Sub
Onde:
sqlf = INSERT INTO TBL_PREGAO (DIA, mês, ANO, LOCAL, TIPO, EDITAL,
PRODUTOS, REPRESENTANTE, OBS) VALUES (1, 5, 2007, 'SANTOS', 'PP',
'45668/07', 'ELETROELETRONICOS', 'BRUNO', 'TESTANDO' )
Minha TBL_PREGAO é esta:
DIA - Nº
mês - Nº
ANO - Nº
LOCAL - TEXTO (30)
TIPO - TEXTO (30)
EDITAL - TEXTO (30)
PRODUTOS - TEXTO (60)
REPRESENTANTE - TEXTO(30)
OBS - TEXTO (255)
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.