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


3 participantes

    [Resolvido]If else num ciclo do while

    avatar
    luisev
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 58
    Registrado : 03/01/2011

    [Resolvido]If else num ciclo do while Empty If else num ciclo do while

    Mensagem  luisev 12/4/2011, 18:42

    Boas tardes caros amigos,

    Não encontrei referência a um problema que não consigo solucionar, que é o facto de necessitar incluir num ciclo do while uma opção if-else.

    Ao abrir um formulário insiro o código abaixo indicado. O problema é que a filtragem funciona "If Forms![Frm_Confirma_Existencia_Lanca_Entregue]![NR_Autorizacao] = 0 Then" pois já alterei para "<>0" e apenas mostrou a segunda msgbox. Se correr como está mostra-me ambas as msg box!!! O que está errado,devendo apenas executar o primeiro ciclo do if e depois saír.

    Alguém me pode ajudar e descobrir o que está errado?

    Código:

    ' Encontrar os registos no intervalo entre o 1º e último registo consoante o critério
    DoCmd.GoToRecord , , acFirst
    Me.primeiro = Me.ID
    DoCmd.GoToRecord , , acLast
    Me.ultimo = Me.ID
    DoCmd.GoToRecord , , acFirst

    ' Rotina que cria nono registo na tabela caso não exista ou actualiza os valores caso já exista o registo
    Dim espaco As Integer
    [espaco] = [primeiro]
    Me.GuardaLimDiario = Me.LimiteDiario
    Do While espaco <= Me.ultimo
    espaco = ID
    DoCmd.OpenForm "Frm_Confirma_Existencia_Lanca_Entregue", acNormal, "", "", , acWindowNormal
    If Forms![Frm_Confirma_Existencia_Lanca_Entregue]![NR_Autorizacao] = 0 Then
    DoCmd.OpenQuery "Adicionar_Autorizacao_Selecionar_Dias", acViewNormal, acEdit
    DoCmd.Close acForm, "Frm_Confirma_Existencia_Lanca_Entregue"
    MsgBox "Mostra esta mensagem se o filtro MR_Autorização for 0...."
    Else
    [Forms]![Frm_Confirma_Existencia_Lanca_Entregue]![LimiteDiario] = ([Forms]![Frm_Confirma_Existencia_Lanca_Entregue]![LimiteDiario] + [GuardaLimDiario])
    [Forms]![Frm_Confirma_Existencia_Lanca_Entregue]![SaldoFinal] = ([Forms]![Frm_Confirma_Existencia_Lanca_Entregue]![LimiteDiario] - [Forms]![Frm_Confirma_Existencia_Lanca_Entregue]![Peças_Cacadas])
    [Forms]![Frm_Confirma_Existencia_Lanca_Entregue]![PercentagemExito] = ([Forms]![Frm_Confirma_Existencia_Lanca_Entregue]![Peças_Cacadas] / [Forms]![Frm_Confirma_Existencia_Lanca_Entregue]![LimiteDiario])
    DoCmd.Close acForm, "Frm_Confirma_Existencia_Lanca_Entregue"
    MsgBox "Mas não deveria mostrar esta mensagem se o filtro MR_Autorização for 0.... E está a mostrar!!!"
    Exit Sub
    End If
    Loop

    Um abraço,

    Luis,


    Última edição por luisev em 13/4/2011, 17:25, editado 1 vez(es)
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]If else num ciclo do while Empty Re: [Resolvido]If else num ciclo do while

    Mensagem  chsestrem 14/4/2011, 03:57

    Boa Noite Luis,

    Tente colocar o Exit Sub antes do Else

    ou DoCmd.Cancel Event também antes do Else

    Deve dar certo.

    Sds,


    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br
    avatar
    luisev
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 58
    Registrado : 03/01/2011

    [Resolvido]If else num ciclo do while Empty Re: [Resolvido]If else num ciclo do while

    Mensagem  luisev 14/4/2011, 10:57

    Bom dia amigo,

    De facto tem toda a razão!!!! O exit sub antes do else funciona na perfeição. Não me passava pela cabeça usá-lo, pois julgava que iria pôr fim ao ciclo Do while prematuramente.

    Obrigado pela ajuda, e cá vou estando para ajudarmediante os meus modestos conhecimentos,

    Um abraço,

    Luis,


    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]If else num ciclo do while Empty Re: [Resolvido]If else num ciclo do while

    Mensagem  criquio 14/4/2011, 12:02

    Só faltou clicar no botão Resolvido ali embaixo bem ao lado direito do título do tópico, imediatamente acima de onde se clica para enviar a mensagem Smile


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Conteúdo patrocinado


    [Resolvido]If else num ciclo do while Empty Re: [Resolvido]If else num ciclo do while

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 18:41