none
Erro ao executar comando sql. RRS feed

  • Pergunta

  • Não sei o que está acontecendo pois o código para cadastrar registro abaixo já usei para vários outros formulário e deu tudo certo porém, nesse último, tem dado o erro "Erro de sintaxe na instrução INSERT INTO".

    OBS.: O código do comando Sql não possue quebra de linhas como aparece no texto abaixo.

    Segue abaixo o código:

    Imports System.Data.OleDb

    Public Class formCadProdServ
        Dim SSQL As String

        'criamos uma instância da classe oleDbConnection para efetuarmos a 'conexão com o banco quando preciso
        Dim conexao As New OleDbConnection()

        'criamos a variável para executarmos o comando sql
        Dim comando As OleDbCommand

        'variável que guarda o caminho do banco de dados
        Dim caminho_banco As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\dogStar\clinica_veterinaria.accdb;Persist Security Info=False;"

    Private Sub btnCadastrarProdServ_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCadastrarProdServ.Click

            conexao.ConnectionString = (caminho_banco)
            conexao.Open()
            SSQL = "INSERT INTO tabela_produtoServico( nome_ produtoServico, valorFornecedor, valorFinal, qttd_estoque, tipo_produtoServico, cod_barras, id_fornecedor, descricao_produtoServico) VALUES ( '" & Me.txtNomeProdServ.Text & "','" & Me.txtValorFornecedorProdServ.Text & "','" & Me.txtValorFinalProdServ.Text & "','" & Me.txtQtdProdServ.Text & "','" & Me.comboTipoProdServ.Text & "','" & Me.txtCodBarrasProdServ.Text & "','" & Me.txtIdFornecedor.Text & "','" & Me.txtDescricaoProdServ.Text & "')"
            comando = conexao.CreateCommand
            comando.CommandText = SSQL
            comando.ExecuteNonQuery()
            MsgBox("Produto cadastrado com sucesso!", vbOKOnly, "CADASTRO OK!")

    conexao.close()

    end sub

    End Class

    • Editado Dragonsday segunda-feira, 16 de fevereiro de 2015 19:41
    segunda-feira, 16 de fevereiro de 2015 19:31

Respostas

  • Natan, obrigado pelo auxílio. Problema resolvido.

    Fico até com vergonha de postar essa cag#$* minha - rsrsrsrsrs - mas o que ocorreu era que no banco, ao criar os nomes dos campos, após o sinal de underline, acabei sem perceber inserindo um espaço entre ele e a ultima palavra como em "nome_ produtoServico". No próprio código sql que postei aqui tem esse erro já que copiei os nomes dos campos diretamente da janela do Access.

    De toda forma muito obrigado pela preocupação em ajudar.

    Abraço.


    segunda-feira, 16 de fevereiro de 2015 23:18

Todas as Respostas

  • Dragonsday,

    todos os campos da tabela são texto?

    se não, para os campos numéricos não precisa você colocar a aspa simples.


    Natan

    segunda-feira, 16 de fevereiro de 2015 22:09
  • Sim Natan, na tabela tem campos numéricos porém, há campos numéricos em outras tabelas para as quais o código funcionou mesmo com aspas.

    Até tentei a sua sugestão mas o mesmo erro persiste.

    Desde já agradeço sua atenção e a de quem mais se dispuser a colaborar.

    segunda-feira, 16 de fevereiro de 2015 22:37
  • cole aqui como a string sql está sendo enviada para o banco.

    Natan

    segunda-feira, 16 de fevereiro de 2015 22:56
  • Natan, obrigado pelo auxílio. Problema resolvido.

    Fico até com vergonha de postar essa cag#$* minha - rsrsrsrsrs - mas o que ocorreu era que no banco, ao criar os nomes dos campos, após o sinal de underline, acabei sem perceber inserindo um espaço entre ele e a ultima palavra como em "nome_ produtoServico". No próprio código sql que postei aqui tem esse erro já que copiei os nomes dos campos diretamente da janela do Access.

    De toda forma muito obrigado pela preocupação em ajudar.

    Abraço.


    segunda-feira, 16 de fevereiro de 2015 23:18