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]Onde coloco este comando?

    Aurino
    Aurino
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 09/06/2014

    [Resolvido]Onde coloco este comando? Empty [Resolvido]Onde coloco este comando?

    Mensagem  Aurino 18/6/2014, 13:45

    Srs. bom dia!

    Como podem ver sou novo nisto. Preciso aprender fazendo, pois empresa me designaram para fazer um banco access pois já trabalhei com delphi (há muito tempo)


    Onde devo colocar um código VBA para ser executado sempre que o registro for alterado?

    Sei que posso colocar nos botões próximo, novo, anterior, excluir... etc;  mas não gostaria de repetir o código em mais de um local, já que o código deverá ser executado sempre que avançar ou retroceder um registro, independente de onde cliquei.

    Também poderia encapsular o código em algum comando para ser executado ao chamar somente pelo nome como em outras linguagens?
    ex:
    Private Sub Form_Load()
       Nome_da_Função_Encapsulada;
       DoCmd.Maximize
    End Sub



    Código em questão:

    Private Sub contrato_numero_Change()
       Dim Ctrl_1, Ctrl_2 As Integer
       vrCtrl_1 = Form_frm_controle.tb_cntrl_ctrl_0.Value
       If VazioOuNulo(vrCtrl_1) = True Then
           Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value = "Nenhum Ciclo."
           GoTo Sair
       End If
       Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo = DCount("*", "tb_etapas_ssl", "tb_etps_ctrl_1=" & [vrCtrl_1]) 'http://info.abril.com.br/forum/viewtopic.php?f=93&t=3274 e http://maximoaccess.forumeiros.com/t4745-resolvidofuncao-dcount
       Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Requery
       If Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value < 2 Then
           Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value = Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value & " Ciclo."
       Else
           Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value = Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value & " Ciclos."
       End If
    Sair:
    End Sub
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Onde coloco este comando? Empty Re: [Resolvido]Onde coloco este comando?

    Mensagem  Noobezinho 18/6/2014, 14:02

    Bom dia Aurino

    Vamos começar a colocar teu código numa função:

    Depois , substitua o nome da função para o que achar melhor:
    Código:

    Function NomeFuncao()
     Dim Ctrl_1, Ctrl_2 As Integer
       vrCtrl_1 = Form_frm_controle.tb_cntrl_ctrl_0.Value
       If VazioOuNulo(vrCtrl_1) = True Then
           Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value = "Nenhum Ciclo."
           GoTo Sair
       End If
       Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo = DCount("*", "tb_etapas_ssl", "tb_etps_ctrl_1=" & [vrCtrl_1]) 'http://info.abril.com.br/forum/viewtopic.php?f=93&t=3274 e http://maximoaccess.forumeiros.com/t4745-resolvidofuncao-dcount
       Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Requery
       If Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value < 2 Then
           Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value = Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value & " Ciclo."
       Else
           Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value = Form_frm_etapas_ssl.cmp_etps_ssl_n_ciclo.Value & " Ciclos."
       End If
    Sair:

    End Function

    Em todo formulário existe uma propriedade chamada  "Em sujo" na folha de propriedades e "Dirty" em VBA.

    Você pode escolher onde colocar, como é só uma função, sugiro colocar na folha de propriedade assim:

    =NomeFuncao()

    Veja se funciona a contento usando essa propriedade.

    Editando: Se for usar a função em somente um formulário coloque-a na pagina de código do formulário, caso contrario, coloque num módulo básico e acrescente a palavra "Public" (sem aspas na frente de Function) ficando Public Fuction NomeFuncao().

    Qualquer coisa, retorne.

    Abraços

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Aurino
    Aurino
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 09/06/2014

    [Resolvido]Onde coloco este comando? Empty Re: [Resolvido]Onde coloco este comando?

    Mensagem  Aurino 18/6/2014, 14:32

    Caro Noob, agrade pela disponibilidade em auxiliar-me.

    Quanto a colocar código numa função e chama-lo pela folha de Propriedades, funcionou PERFEITAMENTE; todavia,
    quanto a coloca-lo na Propriedade "Em sujo" para que seja executado toda vez que avançar ou retroceder no formulário, não funcionou!


    Surgiu outra dúvida: Na folha de Propriedades posso chamar "=NomeFuncao()" tem como usar semelhante comando em vba, junto com outros comandos já presentes no botão?


    Obrigado,
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Onde coloco este comando? Empty Re: [Resolvido]Onde coloco este comando?

    Mensagem  Noobezinho 18/6/2014, 15:13

    Aurino

    Você falou: quando alterar um registro, a propriedade Em sujo, ocorre quando se modifica algum dado de um registro.
    Coloque a função na propriedade NoAtual do formulário, assim ela irá ser chamada toda vez que mudar de registro.

    Na folha de propriedades clicando bem no canto direito do campo da propriedade, aparece um pequeno botão com 3 pontos (...)
    Clique nele e escolha [Procedimento de Evento]

    Então, dentro do procedimento coloque:

    Call minhafuncao()


    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Aurino
    Aurino
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 09/06/2014

    [Resolvido]Onde coloco este comando? Empty Re: [Resolvido]Onde coloco este comando?

    Mensagem  Aurino 18/6/2014, 15:22

    Noob,

    Você tem toda razão, eu não soube me expressar.

    Todas as suas dicas funcionaram perfeitamente.

    Muito obrigado!

    Aurino
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Onde coloco este comando? Empty Re: [Resolvido]Onde coloco este comando?

    Mensagem  Noobezinho 18/6/2014, 17:12

    Que bom que deu certo !!

    Valeu pelo retorno.

    Boa sorte!

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.

    Conteúdo patrocinado


    [Resolvido]Onde coloco este comando? Empty Re: [Resolvido]Onde coloco este comando?

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 09:20