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]Limitar a execução de DoCmd.RunMacro

    avatar
    paulobski
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6
    Registrado : 29/10/2013

    [Resolvido]Limitar a execução de DoCmd.RunMacro Empty [Resolvido]Limitar a execução de DoCmd.RunMacro

    Mensagem  paulobski 17/6/2014, 01:03

    Boa noite.
    Se me puderem ajudar, eu agradecia.
    Eu usei o DoCmd.RunMacro para executar uma macro quando o formulário de login é aberto. A macro só deve ser executada uma unica vez no 1º dia de cada mês.
    O meu problema é que enquanto for dia 1 a macro vai ser executada sempre que eu abrir a base de dados, e eu quero que seja executada apenas na primeira vez que abro a BD.

    No evento Ao Abrir do formulário de Login eu coloquei o seguinte:

    Private Sub Form_Open(Cancel As Integer)

    If Day(Now()) = 1 Then
       DoCmd.SetWarnings False
       DoCmd.RunMacro "Macro1"
       DoCmd.SetWarnings True
    End If

    End Sub

    É possível fazer o que eu pretendo?
    É a primeira vez que uso o access e não percebo nada de programação.

    Obrigado pela atenção.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8443
    Registrado : 05/11/2009

    [Resolvido]Limitar a execução de DoCmd.RunMacro Empty Re: [Resolvido]Limitar a execução de DoCmd.RunMacro

    Mensagem  Alexandre Neves 17/6/2014, 19:43

    Boa tarde, e bem-vindo ao fórum
    Tem de ver se existe alguma condição que seja fiável para desactivar o controlo de execução.
    Entre os dias 1 abre, pelo menos uma vez a bd?
    Se sim:
    - crie uma tabela ControlaDia1, campo ExecutaMacroDia1 (Sim/Não)
    - no código
    If Day(Now()) = 1 and dlookup("ExecutaMacroDia1","ControlaDia1")=-1") Then
    DoCmd.SetWarnings False
    DoCmd.RunMacro "Macro1"
    Currentdb.execute "UPDATE ControlaDia1 SET ExecutaMacroDia1=False"
    DoCmd.SetWarnings True
    else
    Currentdb.execute "UPDATE ControlaDia1 SET ExecutaMacroDia1=True"
    End If


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    paulobski
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6
    Registrado : 29/10/2013

    [Resolvido]Limitar a execução de DoCmd.RunMacro Empty Re: [Resolvido]Limitar a execução de DoCmd.RunMacro

    Mensagem  paulobski 19/6/2014, 00:19

    Obrigado pela resposta.

    A base de dados é aberta varias vezes por dia e isso acontece todos os dias.
    O que eu preciso é que a macro só seja executada na primeira vez que abro a base de dados no dia 1 de cada mês.
    Vou experimentar o que sugeriu e depois digo se funcionou.

    Mais uma vez obrigado!
    avatar
    paulobski
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6
    Registrado : 29/10/2013

    [Resolvido]Limitar a execução de DoCmd.RunMacro Empty Re: [Resolvido]Limitar a execução de DoCmd.RunMacro

    Mensagem  paulobski 19/6/2014, 02:07

    Problema resolvido.

    Experimentei como foi sugerido mas deu erro.
    No entanto aproveitei a ideia da tabela e fiz o seguinte:
    -Criei 2 consultas de atualização, uma para alterar para "sim" e outra para "não" o valor na tabela.
    -coloquei o código

    If Day(Now()) = 1 And DLookup("ExecutaMacroDia1", "ControlaDia1") = 0 Then
    DoCmd.SetWarnings False
    DoCmd.RunMacro "Macro1"
    DoCmd.OpenQuery "AtualizaSim"
    DoCmd.SetWarnings True
    ElseIf Day(Now()) > 1 Then
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "AtualizaNão"
    DoCmd.SetWarnings True
    End If

    e agora já está a funcionar como desejado.

    Obrigado pela ajuda!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8443
    Registrado : 05/11/2009

    [Resolvido]Limitar a execução de DoCmd.RunMacro Empty Re: [Resolvido]Limitar a execução de DoCmd.RunMacro

    Mensagem  Alexandre Neves 19/6/2014, 06:55

    [Resolvido]Limitar a execução de DoCmd.RunMacro MaximoAccess%20ResolvidoMarcado


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    [Resolvido]Limitar a execução de DoCmd.RunMacro Empty Re: [Resolvido]Limitar a execução de DoCmd.RunMacro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 14:41