Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Pff - Erro No Insert


Guest Dani G

Pergunta

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

  • 0

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 é...

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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)

Link para o comentário
Compartilhar em outros sites

  • 0
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!!!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...