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

    Inserir Dados em uma Tabela Através do Insert

    avatar
    utazevedo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/08/2017

    Inserir Dados em uma Tabela Através do Insert Empty Inserir Dados em uma Tabela Através do Insert

    Mensagem  utazevedo 1/4/2021, 14:49

    Prezados,

    Preciso do apoio para solucionar problema de Insert into

    Eu criei um botão que ao clicar ele pega os valores dos campos do meu formulario e insere dentro de uma tabela, mas que, ao alterar qualquer dado no registro que já foi salvo, ele cria um outro registro ao invés de atualizar os dados do registro já existente. Eu acredito que preciso utilizar Update , mas não sei como faria esse procedimento.

    O código que usei no botão foi o seguinte:

    Dim salvarleo As String

    salvarleo = "INSERT INTO tbl_dados_voos (Termo, data_previsao, linha_saude, perecivel) VALUES (Termo_voo, prev_chegada,inf_ls,inf_per)"

    DoCmd.SetWarnings False
    DoCmd.RunSQL salvarleo
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    Inserir Dados em uma Tabela Através do Insert Empty Re: Inserir Dados em uma Tabela Através do Insert

    Mensagem  Alexandre Fim 1/4/2021, 16:05

    Olá Urbano,


    Quando for inserir o registro na tabela, você utiliza a instrução INSERT, e quando for alteração voce utiliza a instrução UPDATE.

    Att,


    Fim
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    Inserir Dados em uma Tabela Através do Insert Empty Re: Inserir Dados em uma Tabela Através do Insert

    Mensagem  Alexandre Fim 1/4/2021, 16:49

    Olá,

    Estou criando uma rotina para gravar os dados conforme o tipo de ação (1 = Inserir / 2 = Atualizar), e assim que fizalizar, disponibilizo pra voce.

    Att,



    FIM


    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    Inserir Dados em uma Tabela Através do Insert Empty Re: Inserir Dados em uma Tabela Através do Insert

    Mensagem  Alexandre Fim 1/4/2021, 17:00

    Olá,

    Segue procedimento para gravação dos dados.
    Código:


    '======================================================'
    '  Procedimento que grava os dados na tabela conforme o
    '  tipo de ação' -  by Alexandre Fim - 01/04/2021
    '====================================================='

    Public Sub GravaDados(iAcao As Integer)
    On Error GoTo trata_erro
    Dim sSQL As String

        If iAcao = 1 Then  ' Inserir
            sSQL = "INSERT INTO tbl_dados_voos "
            sSQL = sSQL & " ("
            sSQL = sSQL & "  Termo"
            sSQL = sSQL & " ,data_previsao"
            sSQL = sSQL & " ,linha_saude"
            sSQL = sSQL & " ,perecivel"
            sSQL = sSQL & " ) "
            sSQL = sSQL & " VALUES"
            sSQL = sSQL & " ("
            sSQL = sSQL & " '" & Me.Termo_voo & "'"
            sSQL = sSQL & ",'" & Me.prev_chegada & "'"
            sSQL = sSQL & ",'" & Me.inf_ls & "'"
            sSQL = sSQL & ",'" & Me.inf_per & "'"
            sSQL = sSQL & ")"
        ElseIf iAcao = 2 Then  ' Atualizar
            sSQL = "UPDATE tbl_dados_voos SET "
            sSQL = sSQL & "  Termo = '" & Me.Termo_voo & "'"
            sSQL = sSQL & " ,data_previsao = '" & Me.prev_chegada & "'"
            sSQL = sSQL & " ,linha_saude = '" & Me.inf_ls & "'"
            sSQL = sSQL & " ,perecivel = '" & Me.inf_per & "'"
            sSQL = sSQL & " WHERE [SeuCampoIDdaTabela] = " & [SEU_CAMPO_ID_DO_FORM] & ""
        End If

        DoCmd.SetWarnings False
       
        'Grava os dados no banco
        CurrentDb.Execute sSQL
       
        DoCmd.SetWarnings True
       
        Exit Sub

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

    End If



    E o comando para a chamada do procedimento é:

    Código:


    Private Sub btn_gravar_Click()

        '1 - Inserir ou 2 - Atualizar
        Call GravaDados(SeuTipoDeAcao)

    End Sub


    Espero ter ajudado


    Att,

    FIM


    avatar
    utazevedo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/08/2017

    Inserir Dados em uma Tabela Através do Insert Empty Inserir Dados em uma Tabela Através do Insert

    Mensagem  utazevedo 1/4/2021, 17:47

    Alexandre,
    Eu fiquei na duvida onde aplicar os codigos.
    o botão eu entendi, mas o restante não.

    Teria como mandar anexo, o BD que você fez, para que eu possa entender melhor a lógica.?

    Desde já antecipo os meus agradecimentos.

    Urbano Azevedo
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    Inserir Dados em uma Tabela Através do Insert Empty Re: Inserir Dados em uma Tabela Através do Insert

    Mensagem  Alexandre Fim 1/4/2021, 17:55

    fala Urbano,

    Sim, pode mandar seu bd que eu faço o procedimento.

    Valeu

    Fim
    avatar
    utazevedo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/08/2017

    Inserir Dados em uma Tabela Através do Insert Empty Re: Inserir Dados em uma Tabela Através do Insert

    Mensagem  utazevedo 1/4/2021, 18:22

    Esse procedimento que você fez, não teria como mandar ele em bd? dai eu aplicaria no meu praticando.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    Inserir Dados em uma Tabela Através do Insert Empty Re: Inserir Dados em uma Tabela Através do Insert

    Mensagem  Alexandre Fim 1/4/2021, 19:08

    Faz o seguinte:

    Me manda a tabela e o formulário que vc usa para gravar os dados. Não precisa mandar o banco de dados todo.
    Dentro do código eu faço os comentários explicando o que cada rotina faz.

    Att,

    FIM
    avatar
    utazevedo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/08/2017

    Inserir Dados em uma Tabela Através do Insert Empty Inserir Dados em uma Tabela Através do Insert

    Mensagem  utazevedo 1/4/2021, 19:48

    Alexandre
    O Update funcionou, porem, é possivel q utilize apenas um botão para no momento da ação identifique se existe o registro? se existir ele atualiza, se não ele cria o registro.

    Atte

    Urbano Azevedo
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    Inserir Dados em uma Tabela Através do Insert Empty Re: Inserir Dados em uma Tabela Através do Insert

    Mensagem  Alexandre Fim 1/4/2021, 20:29

    Urbano?

    Vc está usando o formulário acoplado à tabela?
    Se sim, provavelmente vc tem um campo do tipo "Numeração Automática" e quando vc vai para um registro novo, esse campo fica escrito "(Novo)",
    Fica escrito "(Novo)", mas na verdade ele está com valor nulo (Null)

    Isso mesmo. vc vai utilizar somente 1 botão. Neste botão vc vai colocar o seguinte procedimento:

    Código:


        If IsNull([NOME_DO_SEU_CAMPO_ID]) Then
            Call GravaDados(1)
        Else
            Call GravaDados(2)
        End If



    Faça o teste e depois manda um retorno se deu certo.

    Att,

    FIM
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    Inserir Dados em uma Tabela Através do Insert Empty Re: Inserir Dados em uma Tabela Através do Insert

    Mensagem  Alexandre Fim 1/4/2021, 22:01

    E ai Azevedo?
    Conseguiu ajustar a rotina de gravação de dados?

    Att,

    FIM
    avatar
    utazevedo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/08/2017

    Inserir Dados em uma Tabela Através do Insert Empty Inserir Dados em uma Tabela Através do Insert

    Mensagem  utazevedo 5/4/2021, 13:02

    No meu caso Alexandre, eu estou pegando os dados de um banco e jogando na tabela de um outro banco, tabela essa que vinculei no banco.


    Dados serão transferidos do formulario X que tem numeração automatica, para tabela de um outro banco. nessa transferencia tem que verificar se já existe o numero de registro.
    Se existe ele faz apenas um update , do contrario ele faz o insert.

    O que preciso é que ele busque dentro da tabela desse outro banco se existe determinaod numeor de registro.

    Esse codigo deu certinho:

    sSQL = "UPDATE tbl_dados_voos SET "
           sSQL = sSQL & "  Termo = '" & Me.termo_voo & "'"
           sSQL = sSQL & " ,data_previsao = '" & Me.prev_chegada & "'"
           sSQL = sSQL & " ,linha_saude = '" & Me.inf_ls & "'"
           sSQL = sSQL & " ,perecivel = '" & Me.inf_per & "'"
           sSQL = sSQL & " WHERE [reg_coresys] = " & [id_controlevoo] & ""

    ele verifica se existe o reg_coresys na tabela, se existe, ele faz update, se não existir ele tem que fazer o insert entendeu?


    aTTE.

    Urbano Azevedo

      Data/hora atual: 21/9/2021, 03:53