MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Salvar dados de um formulario para uma tabela por VBA

    Compartilhe

    Jlgomes1978
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 04/05/2017

    [Resolvido]Salvar dados de um formulario para uma tabela por VBA

    Mensagem  Jlgomes1978 em 18/1/2018, 15:36

    Olá Pessoal do fórum
    Venho pedir outra ajuda para vocês, eu procurei no fórum mas não consegui achar nada parecido vou tentar ser curto na explicação.
    Eu tenho dois programas, o (programa espelho) que é vinculado com o (programa PPWIT).
    O formulário Prueba02 do programa espelho busca os dados na (Tbl_cadprograma consulta expedição) que é vinculada com uma tabela no programa PPWIT.
    O formulário Prueba02 busca os dados para ser dado baixa nas atividades realizadas, após a baixa deve clicar o botão salvar e na sequencia clicar no botão histórico onde vai abrir o formulário Frm_Historico para ser descrito as atividades realizadas.
    Nesse formulário é buscado alguns dados na Tbl_cadprograma, os demais campos devem ser preenchidos manualmente.
    Partir daí que eu peco ajuda, eu preciso que todos os campos desse formulário sejam salvos em uma tabela que eu renomeei de Tbl_historico, eu consigo fazer metade do processo se eu salvar eu não consigo buscar os dados, se eu buscar os dados eu não consigo salvar.
    Espero que tenha conseguido explicar a minha necessidade, vou estar mandando os arquivos.

    Desde já agradeço a atenção.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Salvar dados de um formulario para uma tabela por VBA

    Mensagem  Noobezinho em 20/1/2018, 12:38

    Jefferson

    Aqui está o código para o que deseja.

    no botão salvar (veja que mudei o nome dele para (cmdSalvar) coloque:

    Código:

    Private Sub cmdSalvar_Click()
    Dim frm As Form, frmrs As Recordset, rs As Recordset

    Set frm = Me.Name
    Set frmrs = frm.RecordsetClone 'aqui estou cliando um recordseteclone do formulário,
                                   'como se fosse uma tabela na memoria do pc.
    Set rs = CurrentDb.OpenRecordset("Tbl_Historico")
               rs.AddNew
     'tbl_historico          formuláro
               rs!Código = frmrs!Código
               rs!Cliente = frmrs!Cliente
               rs!Matricula = frmrs!Matricula
               'coloque os demais campos do
               'formulário a serem salvos na tbl_Histórico



               rs.Update 'aqui salva o registro na tabela.

    DoCmd.RunCommand acCmdSaveRecord

    DoCmd.GoToRecord , , acNewRec
    End Sub

    Deixei para que coloque os demais campos a serem salvos na tbl_Histórico, assim vai se familiarizando com o código VBA.

    Procure nomear teus controles, isso deixará a leitura dos códigos mais fácil.

    [ ]'s

    Jlgomes1978
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 04/05/2017

    Re: [Resolvido]Salvar dados de um formulario para uma tabela por VBA

    Mensagem  Jlgomes1978 em 22/1/2018, 11:51

    Bom dia noobezinho nao consegui fazer funcionar estou te mando o print da tela.
     Esta dando erro de compilação (tipos de incompativeis) na segunda linha do codigo.

     eu troquei o Name por Form , ai gera o erro de tempo de execução '3265', ( item nao encotrado nesta coleção) na linha onde eu coloco os campos a serem gravado.


    Eu entendi que o RS e o campo da tabela e o Frmrs e o campo do  formulario e isso mesmo, fiz um teste trocando as possiçoes mas mesmo sim nao deu certo.

    desde ja agradeco atenção
    Anexos
    erro de copilação.docx
    Você não tem permissão para fazer download dos arquivos anexados.
    (499 Kb) Baixado 2 vez(es)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Salvar dados de um formulario para uma tabela por VBA

    Mensagem  Noobezinho em 22/1/2018, 13:56

    Jefferson

    Assim:

    Set frm = Me


    tire a palavra Name, que vai funfar.

    Nesse form (Frm_Histórico)

    Se depurar o código vai ter um erro nessa linha
    =========================================
    Private Sub Cbo_Controlador_Estoque_AfterUpdate() 'esse codigo preenche automatico os campos Combinação19 para fazer o filtro no relatorio Atividade Extra.

    Me.Txt_Matricula = DLookup("Matricula", "Tbl_Controlador_Estoque", "Controlador_de_Estoque ='" & Me.Cbo_Controlador_Estoque & "'")

    End Sub
    =========================================

    Creio que mudou o nome do controle, por isso o erro.


    [ ]'s

    Jlgomes1978
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 04/05/2017

    Re: [Resolvido]Salvar dados de um formulario para uma tabela por VBA

    Mensagem  Jlgomes1978 em 22/1/2018, 15:38

    boa tarde , noobezinho

    eu fiz uma alteração em cima da dica que voce me passo e deu certo, segue abaixo o codigo.


    Private Sub cmdSalvar_Click()

    Dim Frm As Form, Frmrs As Recordset, rs As Recordset

    Set Frm = Me.Form

    Set Frmrs = Frm.RecordsetClone 'Aqui estou cliando um recordsetclone do formulario
    'como se fosse uma tabela na menoria do pc.

    Set rs = CurrentDb.OpenRecordset("Tbl_Historico")
    rs.AddNew

    rs("Codigo_Expedição") = Me.Cbo_Pesquisa_historico
    rs("Controlador_de_Estoque") = Me.Cbo_Controlador_Estoque
    rs("Matricula") = Me.Matricula
    rs("Nº_do_Carregamento") = Me.Nº_do_Carregamento
    rs("Diametro") = Me.Txt_Diametro
    rs("Composição") = Me.Composição
    rs("Aplicaçao") = Me.Aplicaçao
    rs("Cliente") = Me.Cliente
    rs("Destino") = Me.Destino
    rs("Transportadora") = Me.Transportadora
    rs("Placa_da_Carreta") = Me.Placa_da_Carreta
    rs("Placa_do_Cavalo") = Me.Placa_do_Cavalo
    rs("Inicio") = Me.Inicio
    rs("Termino") = Me.Termino
    rs("Total") = Me.Total
    rs("Data_de_Descarga") = Me.Data_de_Descarga
    rs("Horario_de_Descarga") = Me.Horario_de_Descarga
    rs("Data") = Me.Data

    rs.Update ' aqui salva o registro na tabela

    DoCmd.RunCommand acCmdSaveRecord

    DoCmd.GoToRecord , , acNewRec

    End Sub



    Na seguencia eu retirei a palavra Name e deu certo tambem.

    o codico com o Dlookup deu um erro tambem mas consegui arrumar.

    Peço mas uma ajuda se for possivel , gostaria de entender melhor os codigo de programação do access voce poderia me indicar onde posso encontrar um material, tipo livros videos etc.


    muito obrigado pela ajuda





    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Salvar dados de um formulario para uma tabela por VBA

    Mensagem  Noobezinho em 22/1/2018, 15:50

    Ótimo!

    Valeu pelo retorno

    Boa sorte !

      Data/hora atual: 21/7/2018, 14:41