Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo Miranda

[Resolvido] Problema com INSER INTO

Recommended Posts

Boa noite amigos, estou simplesmente ficando louco com este problema !

Vou explicar !

Uso o Microsoft Visual Studio 2010, e estou tentando inserir registro em um banco de dados Access, porém não consigo enxergar onde esta o erro.

 

O código é o seguinte :

 

Private Sub ButtonGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGravar.Click

 

Dim sql As String

Dim strMessage As String

Dim conn As OleDbConnection

Dim cmd As OleDbCommand

Dim Campo1 As String

Dim Campo2 As Date

Dim Campo3 As Date

Dim Campo4 As String

Dim Campo5 As String

Dim Campo6 As String

Dim Campo7 As String

If TrabalhandoSIM.Checked = True Then

Campo1 = TextBoxMatricula.Text

Campo2 = DateTimePickerData.Value.Date

Campo3 = TimeOfDay.ToShortTimeString

Campo4 = ComboBoxObra.Text

Campo5 = ComboBoxGrupo.Text

Campo6 = ComboBoxEtapa.Text

Campo7 = "Nada"

Else

Campo1 = TextBoxMatricula.Text

Campo2 = DateTimePickerData.Value.Date

Campo3 = TimeOfDay.ToShortTimeString

Campo4 = "Nada"

Campo5 = "Nada"

Campo6 = "Nada"

Campo7 = ComboBoxMotivo.Text

End If

sql = "INSERT INTO Apontamentos (Matricula, Data do Apontamento, Hora do Apontamento, Obra, Grupo da OS5, Etapa, Motivo)"

sql = sql & " values (" & Campo1 & ", " & Campo2 & ", " & Campo3 & ", " & Campo4 & ", " & Campo5 & ", " & Campo6 & ", " & Campo7 & ")"

conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Rio Nave\bin\Debug\CONTROLE DE RECURSOS.accdb")

 

conn.Open()

cmd = New OleDbCommand(sql, conn)

Try

cmd.ExecuteNonQuery()

MsgBox("Registro gravado com sucesso !")

Catch ex As Exception

strMessage = "Xiii ! Que m***** ! Não consegui gravar o registro !" _

& vbCrLf & ex.Message & ex.HelpLink & ex.Source _

& " A variável sql é: " _

& sql

MsgBox(strMessage)

Finally

conn.Close()

End Try

 

End Sub

 

Quando tento gravar o registro, aparece a mensagem acima (Xiii ! Que m***** ! ...) e só informa que estou com problema no INSERT INTO.

 

Alguém consegue me ajudar ?

 

Agradeço mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual a mensagem de erro?

 

tire temporariamente este tratamento para vermos o que acontece

 

mas a principio estes nomes de colunas usados não devem ficar assim com espaços

 

experimente substitui-los também

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario, o resultado da mensagem é:

 

"Xiii ! Que m***** ! Não consegui gravar o registro !

Erro de sintaxe (operador faltando) na expressão de consulta '22:03:00'.Microsoft Office Access Database Engine A variável sql é: INSERT INTO Apontamentos (Matricula, Data do Apontamento, Hora do Apontamento, Obra, Grupo da OS5, Etapa, Motivo) values (12564, 08/02/2011, 22:03:00, AH12 PRO-29, A - Estrutura, Processamento, Nada)"

 

Quanto aos espaços entre os nomes das colunas, este não deve ser o problema pois tenho outras duas tabelas com colunas em que o nome tem espaços e o INSERT INTO funciona perfeitamente. Mas como não consigo descobrir o problema estarei mudando os nomes e testando.

 

Obrigado por interagir com a minha pergunta.

 

Mario, de cabeça fria é mais fácil resolver o problema.

 

Descobri que tinha esquecido de colocar as "'" no sql.

 

Antes :

 

sql = "INSERT INTO Apontamentos (Matricula , Data do Apontamento, Hora do Apontamento, Obra, Grupo da OS5, Etapa, Motivo)"

sql = sql & " values (" & Campo1 & "," & Campo2 & "," & Campo3 & "," & Campo4 & "," & Campo5 & "," & Campo6 & "," & Campo7 & ")"

 

 

Agora:

 

sql = "INSERT INTO Apontamentos (Matricula , Data do Apontamento, Hora do Apontamento, Obra, Grupo da OS5, Etapa, Motivo)"

sql = sql & " values ('" & Campo1 & "','" & Campo2 & "','" & Campo3 & "','" & Campo4 & "','" & Campo5 & "','" & Campo6 & "','" & Campo7 & "')"

 

Tudo funcionando agora!!!

 

Valeu mesmo pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que resolveu

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.