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

    VBA - Função Se com E + Loop + Executar Macro

    cy_rangel
    cy_rangel
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 67
    Registrado : 18/01/2018

    VBA - Função Se com E + Loop + Executar Macro Empty VBA - Função Se com E + Loop + Executar Macro

    Mensagem  cy_rangel 30/8/2021, 19:00

    Olá pessoal!

    Gostaria de mais uma ajudinha...

    Eu tenho um form que possui 3 campos para preenchimento obrigatório (data de emissão / data de vencimento / valor), eu gostaria que o VBA verificasse se esses campos estão preenchidos e em caso afirmativo fosse para a próxima linha, se algum desses campos estiver em "branco" então ele para toda a execução e trás uma mensagem para preenchimento do campo.

    Se ao final estiver tudo preenchido certinho, ele tem que executar 4 macros (9_02, 9_03, 9_04, 9_05) e abrir um outro formulário (FRM_DOM_ExportarTxt).


    Vocês conseguem me ajudar com esse código, por favor?


    Desde já agradeço.

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  Alexandre Fim 30/8/2021, 19:37

    Ola Cinthia,

    Eu pressuponho que seu form possua algum botão ("executar", "verificar" ou qq coisa assim).
    CAso não tenha, crie um botão e coloque o seguinte procedimento:

    Código:

        If IsNull(Me.Campo_x1) Or Trim(Me.Campo_x1) = Empty Then
            MsgBox "Data de Emissão é de preenchimento obrigatório", vbExclamation, "Aviso"
            Me.Campo_x1
            Exit Sub
        End If

        If IsNull(Me.Campo_x2) Or Trim(Me.Campo_x2) = Empty Then
            MsgBox "Data de Vencimento é de preenchimento obrigatório", vbExclamation, "Aviso"
            Me.Campo_x2
            Exit Sub
        End If

        If IsNull(Me.Campo_x3) Or Trim(Me.Campo_x3) = Empty Then
            MsgBox "O Valor é de preenchimento obrigatório", vbExclamation, "Aviso"
            Me.Campo_x3
            Exit Sub
        End If

        If IsNull(Me.Campo_x3) Or Trim(Me.Campo_x3) = Empty Then
            MsgBox "O Valor é de preenchimento obrigatório", vbExclamation, "Aviso"
            Me.Campo_x3
            Exit Sub
        End If

        If Me.Campo_x3 <= 0 Then
            MsgBox "O Valor deve ser maior que ZERO.", vbExclamation, "Aviso"
            Me.Campo_x3
            Exit Sub
        End If
        
        '------ Após validações acima
        '...Rotina para execução das macros
        
        DoCmd.RunMacro "9_02"
        DoCmd.RunMacro "9_03"
        DoCmd.RunMacro "9_04"
        DoCmd.RunMacro "9_05"



    Obs.: Substitua os campos "Campo_xx" pelo respectivo campos da mensagem.

    É isso.

    Espero ter ajudado

    Boa sorte

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    VBA - Função Se com E + Loop + Executar Macro Setinf11
    Sistemas e Tecnologia Ltda
    cy_rangel
    cy_rangel
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 67
    Registrado : 18/01/2018

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  cy_rangel 30/8/2021, 22:41

    Olá Alexandre, tudo bem?

    Eu coloquei exatamente para executar ao clicar em um botão, esqueci de mencionar isso, obrigada pela observação.

    Alterei todos os campos conforme o seu exemplo, mas deu erro ao executar "Erro de compilação: Uso inválido da propriedade"

    Segue o código completo.

    Só um detalhe, o nome da caixa onde digito a informação, tem sempre um "txt" antes (exemplo > "txt_DataEmissão")... E o nome da fonte do controle é "DataEmissao". Será que isso tem algo haver com o erro?

    Código:
    Private Sub btn_GerarTxt_Click()

    If IsNull(Me.DataEmissao) Or Trim(Me.DataEmissao) = Empty Then
            MsgBox "Data de Emissão é de preenchimento obrigatório", vbExclamation, "Aviso"
            Me.DataEmissao
            Exit Sub
        End If

        If IsNull(Me.DataVencto) Or Trim(Me.DataVencto) = Empty Then
            MsgBox "Data de Vencimento é de preenchimento obrigatório", vbExclamation, "Aviso"
            Me.DataVencto
            Exit Sub
        End If

        If IsNull(Me.ValorAPagar) Or Trim(Me.ValorAPagar) = Empty Then
            MsgBox "O Valor à Pagar é de preenchimento obrigatório", vbExclamation, "Aviso"
            Me.ValorAPagar
            Exit Sub
        End If

        If Me.ValorAPagar <= 0 Then
            MsgBox "O Valor deve ser maior que ZERO.", vbExclamation, "Aviso"
            Me.ValorAPagar
            Exit Sub
        End If
       
        '------ Após validações acima
        '...Rotina para execução das macros
       
        DoCmd.RunMacro "9_02"
        DoCmd.RunMacro "9_03"
        DoCmd.RunMacro "9_04"
        DoCmd.RunMacro "9_05"
        DoCmd.OpenForm "FRM_dom_ExportarTXT", acNormal
       
    End Sub


    Desde já, agradeço novamente!
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  Alexandre Fim 30/8/2021, 22:50

    Oi Cinthia,

    Faltou a propriedade "Setfocus" dso campos. Um equívoco da minha parte.

    Onde está escrito:
    Me.Campo_x1

    Ajustar para
    Me.Campo_x1.Setfocus



    Só um detalhe, o nome da caixa onde digito a informação, tem sempre um "txt" antes (exemplo > "txt_DataEmissão")... E o nome da fonte do controle é "DataEmissao". Será que isso tem algo haver com o erro?


    Sim. O Access sempre se orienta pela propriedade Nome do campo, e neste caso precisa ajustar os campos com o prefixo "txt_", conforme vc mencionou.

    Acredito que irá funcionar.

    Assim que terminar de ajustar, nos informe se resolveu o problema, ok !!!

    Boa sorte

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    VBA - Função Se com E + Loop + Executar Macro Setinf11
    Sistemas e Tecnologia Ltda
    cy_rangel
    cy_rangel
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 67
    Registrado : 18/01/2018

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  cy_rangel 31/8/2021, 02:18

    Oi Alexandre... Infelizmente não funcionou. Adaptei exatamente conforme você mencionou mas pode ser que eu tenha feito algo de errado.

    De qualquer forma, para ficar mais fácil para visualizar, eu criei um modelo e anexei.


    Muito obrigada!
    Anexos
    VBA - Função Se com E + Loop + Executar Macro AttachmentCond. Se e Loop e Executar Macro.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (40 Kb) Baixado 10 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  Alexandre Fim 31/8/2021, 13:38

    Bom dia Cinthia,

    Já baixei o teu exemplo e vou verificar e te retorno logo mais.

    Até

    []'s

    FIM




    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    VBA - Função Se com E + Loop + Executar Macro Setinf11
    Sistemas e Tecnologia Ltda
    cy_rangel
    cy_rangel
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 67
    Registrado : 18/01/2018

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  cy_rangel 1/9/2021, 04:20

    Blz Alexandre, brigadão!

    Eu tentei mexer hoje e vê se eu entendia ou descobria algo, mas não deu muito certo.

    Fico esperando a sua resposta.


    Até mais.
    cy_rangel
    cy_rangel
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 67
    Registrado : 18/01/2018

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  cy_rangel 8/9/2021, 16:01

    Olá pessoal,

    Gostaria de saber se alguém poderia me ajudar com esse caso, por favor!


    Continuo no aguardo.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  Alexandre Fim 8/9/2021, 16:11

    Olá Cinthia,

    o Erro está aqui:

    If IsNull(Me.txt_DataEmissao.SetFocus) Or Trim(Me.txt_DataEmissao.SetFocus) = Empty Then

    Você não pode incluir um evento (no caso, Setfocus) em uma validação de dados.

    Remova os "Setfocus" das instruções que contem o If.

    É isso
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  Alexandre Fim 8/9/2021, 16:26

    Cinthia,

    O teu formulário estava equivocado na criação dele, e ai criei um novo formulário dividido.
    Segue versão nova para sua avaliação.

    OBS: O formulário foi criado pelo Assitente do Access e não tem nada de validação de dados, a não ser no botão "Gera TXT".

    Boa sorte.
    Anexos
    VBA - Função Se com E + Loop + Executar Macro AttachmentDados.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (79 Kb) Baixado 7 vez(es)
    cy_rangel
    cy_rangel
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 67
    Registrado : 18/01/2018

    VBA - Função Se com E + Loop + Executar Macro Empty Re: VBA - Função Se com E + Loop + Executar Macro

    Mensagem  cy_rangel 18/9/2021, 00:00

    Oi Alexandre,

    Desculpe a demora em retornar, a primeira quinzena do mês onde trabalho é bem complicado.

    Eu ainda não consegui adaptar o que montou ao meu formulário porque uso os campos "ocultos", apenas a lista fica visível.

    De qualquer forma, muito obrigada pelo seu tempo e por tentar me ajudar, vou tentar de outra maneira!

      Data/hora atual: 6/10/2022, 07:45