MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

2 participantes

    [Resolvido]ERRO Sintaxe INSERT INTO

    avatar
    traderboy
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 16/01/2017

    [Resolvido]ERRO Sintaxe INSERT INTO Empty [Resolvido]ERRO Sintaxe INSERT INTO

    Mensagem  traderboy 24/11/2021, 01:33

    Prezados,

    Estou a dias me debruçando sobre um ponto que acredito ser simples, mas não conseguir evoluir.

    Estou tentando salvar os dados de um formulário sem vinculo à uma tabela ou consulta, são dados simples de cadastro que deverão ser inseridos na tabela tab_clientes, segue o código:

    Private Sub Comando11_Click()
    DoCmd.SetWarnings False

    Dim SALVAR As String

    SALVAR = "INSERT INTO tab_clientes (cpf_cliente, nome_cliente, telefone_cliente, e-mail_cliente, cidade_cliente, hist_mercado, hist_adimplencia, enquadramento_cliente) VALUES (camp_cpf_cliente.Value, camp.nome_cliente.Value, camp_telefone_cliente.Value, camp_e-mail_cliente.Value, camp_cidade_cliente.Value, camp_hist_mercado.Value, camp_hist_adimplencia.Value, camp_enquadramento_cliente.Value)"
                       
    DoCmd.RunSQL SALVAR

    Me.Requery
    Me.Refresh


         'MsgBox "Cliente Cadastrado com Sucesso!", vbInformation, "Confirmação de Inclusão"

    End Sub

    Este código esta em um botão no evento ao clicar. Quando executado apresenta a mensagem de erro: Erro em tempo de execução: '3134': Erro de sintaxe na instrução INSERT INTO.

    O que estou fazendo errado?


    Última edição por traderboy em 24/11/2021, 04:42, editado 1 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]ERRO Sintaxe INSERT INTO Empty Re: [Resolvido]ERRO Sintaxe INSERT INTO

    Mensagem  Alexandre Fim 24/11/2021, 04:31

    Olá Edson,

    A sua instrução SQL está totalmente equivocada.
    Como vc não disponibilizou seu banco de dados com a tabela, estou partindo do pressuposto que todos campos desta tabela são Texto, e por isso inclui Aspas Simples na instrução, para separar os valores dos campos.

    Segue o código:

    Código:


    Private Sub Comando11_Click()
    On Error GoTo trata_erro
    Dim sSQL As String

        DoCmd.SetWarnings False
        
        sSQL = "INSERT INTO tab_clientes "
        sSQL = sSQL & " ("
        sSQL = sSQL & " cpf_cliente,"
        sSQL = sSQL & " nome_cliente,"
        sSQL = sSQL & " telefone_cliente,"
        sSQL = sSQL & " e-mail_cliente,"
        sSQL = sSQL & " cidade_cliente,"
        sSQL = sSQL & " hist_mercado,"
        sSQL = sSQL & " hist_adimplencia,"
        sSQL = sSQL & " enquadramento_cliente"
        sSQL = sSQL & " )"
        sSQL = sSQL & " VALUES "
        sSQL = sSQL & " ("
        sSQL = sSQL & " '" & Trim(camp_cpf_cliente.Value) & "',"
        sSQL = sSQL & " '" & Trim(camp.nome_cliente.Value) & "',"
        sSQL = sSQL & " '" & Trim(camp_telefone_cliente.Value) & "',"
        sSQL = sSQL & " '" & Trim([camp_e-mail_cliente].Value) & "',"
        sSQL = sSQL & " '" & Trim(camp_cidade_cliente.Value) & "',"
        sSQL = sSQL & " '" & Trim(camp_hist_mercado.Value) & "',"
        sSQL = sSQL & " '" & Trim(camp_hist_adimplencia.Value) & "',"
        sSQL = sSQL & " '" & Trim(camp_enquadramento_cliente.Value) & "'"
        sSQL = sSQL & " )"
        CurrentDb.Execute sSQL
        
        DoCmd.SetWarnings True
        
        MsgBox "Cliente cadastrado com sucesso!", vbInformation, "Mensagem"
        
        Exit Sub

    trata_erro:
        MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
        Exit Sub
        
    End Sub


    OBS: Se possível, utilize nomenclatura correta para os campos da tabela.
    Ex.: o campo camp_e-mail_cliente, por causa do traço, o Access pode entender esse caracter como sinal de Subtração.
    Neste caso, é necessário colocar o campo sobre Colchetes (Ex.: [camp_e-mail_cliente]) ou Aspas ("camp_e-mail_cliente") e isso pode atrapalhar na hora de programar quando usamos o VBA.

    OBS2: Utilize também nomenclatura em controles do formulário, que remeta o entendimento de sua ação.
    Ex.: Comando11 não se sabe pra qual finalidade ele é.
    Sempre que possível, utilize os prefixos "cmd" ou "btn" para caracterizar o controle.
    Ex.: cmdSalvar...cmdIncluir....btnGravar....btnSair...e etc.

    Espero ter ajudado.

    Boa sorte

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]ERRO Sintaxe INSERT INTO Setinf11
    Sistemas e Tecnologia Ltda

    traderboy gosta desta mensagem

    avatar
    traderboy
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 16/01/2017

    [Resolvido]ERRO Sintaxe INSERT INTO Empty Re: [Resolvido]ERRO Sintaxe INSERT INTO

    Mensagem  traderboy 24/11/2021, 04:38

    Boa noite Alexandre, justamente isso, o erro estava no traço ' - ' do e-mail, o access entendia como subtração. Obrigado pelas dicas!!

      Data/hora atual: 1/10/2022, 15:15