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

    Salvar registro por DAO sem digitar todos os campos no vba

    Compartilhe

    wilflx2
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 31/01/2014

    Salvar registro por DAO sem digitar todos os campos no vba

    Mensagem  wilflx2 em 23/8/2018, 02:43

    Boa noite aos grandes mestres!

    Venho mais uma vez pedir ajuda em uma questão que vi por esses dias mas me passou batido.
    Em algum site americano que não me lembro qual, continha um codigo VBA usando a biblioteca DAO para salvar registros na tabela, porem sem digitar todos os campos como fazemos.

    Exemplo de código:

    Dim db As DAO.Database
       Dim rs As DAO.Recordset
       Set db = CurrentDb()
       Set rs = db.OpenRecordset("tabPEItem", dbOpenDynaset)

       With rs
           .AddNew
               !Ncontrole = Ncontrole 'O primeiro campo é o da tabela, o segundo é o do formulario
               !DataPedido = DataPedido
               !Ano = Ano
               !PedidoParaMes = PedidoParaMes
               !Paciente = Paciente
               !DataNasc = DataNasc
               !Prontuario = Prontuario
               !TipoExame = TipoExame
               !MedicoSolic = MedicoSolic
               !StatusPend = StatusPend
               !StatusAuto = StatusAuto
               !StatusNaoAuto = StatusNaoAuto
                                     
           .Update
       .Close
       End With
       Set rs = Nothing

    O código pelo que entendi, grava na tabela indicada os valores dos campos do formulário que tem os nomes iguais aos da tabela, então ao invés de digitar campo por campo, usa-se o Ctrl do formulário. Tem um modelo de Modulo que limpa campos que peguei aqui no fórum, apenas dando um call na função ele limpa todos os campos do formulário ativo, seria algo igual.
    Me desculpe pela linguagem leiga, não me lembro bem, se estiver dizendo algo errado, peço que me corrijam.
    Alguém já viu esse tipo de código?
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Salvar registro por DAO sem digitar todos os campos no vba

    Mensagem  Alexandre Fim em 10/9/2018, 17:32

    Ola Willian,

    Sua dúvida não ficou bem clara.

    Você que uma rotina que grave os dados na tabela através dos controles do form ou você quer uma function que limpe todos os controles do form?

    []'s
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Salvar registro por DAO sem digitar todos os campos no vba

    Mensagem  Alexandre Fim em 10/9/2018, 18:05

    Segue exemplo de uma function que limpa os objetos do form.

    Boa sorte

    []'s
    Anexos
    ManipulandoControles.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (43 Kb) Baixado 9 vez(es)

    wilflx2
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 31/01/2014

    Re: Salvar registro por DAO sem digitar todos os campos no vba

    Mensagem  wilflx2 em 12/9/2018, 06:05

    Ola Alexandre Fim,

    Desculpe se não fui claro, vou tentar explicar melhor.
    Seguinte, cheguei a ver um codigo vba onde no botão Salvar, onde para cada campo com o mesmo nome na tabela ele salva os valores usando DAO.
    Ele usa um começo assim:

    Dim ctl As Control
    For Each ctl In Frm.Controls
    Select Case ctl.ControlType

    Ele captura os valores dos campos e salva na tabela nos campos que tem os nomes iguais aos do campo do Form, não tendo que digitar todo o codigo, campo por campo.

    E por ai vai, sei que minha duvida é muito vaga e explicar sem ter uma base é complicado, mas quem sabe alguém já não viu algo assim.
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Salvar registro por DAO sem digitar todos os campos no vba

    Mensagem  Alexandre Fim em 12/9/2018, 14:24

    Bom dia Will,

    Para cada campo da tela você pode utilizar a Propriedade Marca (Tag) e atribuir valor pra cada um.
    Essa Tag servirá como um "índice" do campo onde você pode atribuir o valor do campo com o índice de uma collection.

    Fiz essa implementação no form "frmCadCliente"

    Segue o exemplo.

    Espero ter ajudado.

    []'s
    Anexos
    ManipulandoControles_NOVO.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (33 Kb) Baixado 16 vez(es)
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Salvar registro por DAO sem digitar todos os campos no vba

    Mensagem  Alexandre Fim em 13/9/2018, 00:35

    Olá Will,
    Testou o exemplo? Deu certo?

    wilflx2
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 31/01/2014

    Re: Salvar registro por DAO sem digitar todos os campos no vba

    Mensagem  wilflx2 em 18/9/2018, 18:59

    Alexandre Fim

    Grande!! É bem isso que procuro!
    Porem não entendi a busca sSQL, ele se baseia nela para inserir os dados na tabela?

      Data/hora atual: 18/1/2019, 00:05