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]Usar Select Case para buscar informação em uma tabela.

    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Walter 26/1/2014, 21:32

    Boa noite, amigos.
    Estou com dificuldade para fazer o código abaixo. Preciso que alguém me ajude.

    Select Case Idade
       Case Is < 60
           Me.RótNãoIdoso.Visible = True
       Case Is < 80
          Select Case ([Tabela]![Tbl_AvaliaIdoso]![IdosoFrágil]) ' Nao está funcionando
              Case "Sim"
                Me.RótIdosoFrágil.Visible = True
              Case Else
           Me.Rótidoso.Visible = True
           End Select
       Case Else
           Me.RótIdosoFrágil.Visible = True
    End Select


    Trata-se do seguinte:
    O VBA deve ler o campo "Idade", se a idade for menor que 60, o RótNãoIdoso deve ficar visível.
    Caso seja 60 ou mais, ver se é Menor que 80 anos. Se for menor que 80 anos, deve ir na Tabela "Tbl_AvaliaIdoso" e ver o campo "IdosoFrágil", seo mesmo for "Sim", então o rótulo "RótIdosoFrágil" deve ficar visível. Caso Contrário o rótulo "Rótidoso" deverá ficar visível. Se "idade" for 80 ou mais, então "RótIdosoFrágil" deve ficar visível.
    Resumindo:
    80 anos ou mais ---- sempre idoso frágil
    60 a 79 anos ------- idoso, mas só é frágil se na Tabela tiver "Sim"
    Menos de 60 anos: Não é idoso.
    (Não sei se é possivel fazer referencia a um campo numa Tabela, dentro desse código, conforme está em vermelho...)

    Ficou claro?

    Obrigado,

    Walter
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Usar Select Case para buscar informação em uma tabela.

    Mensagem  toyebom 26/1/2014, 21:57

    Não falta por ai uns If e Then


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Walter 26/1/2014, 22:20

    Boa noite Toyebom.
    Obrigado por responder.
    Quando se usa Select Case não precisa usar If e Then, eu acho!

    Walter
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Alexandre Neves 27/1/2014, 18:53

    Boa tarde,

    Basta utilizar a Dlookup
    Select Case Idade
    Case Is < 60
    Me.RótNãoIdoso.Visible = True
    Case Is < 80
    Select Case dlookup("IdosoFrágil","Tbl_AvaliaIdoso","CondiçãoDeProcuraDeRegisto")
    Case "Sim"
    Me.RótIdosoFrágil.Visible = True
    Case Else
    Me.Rótidoso.Visible = True
    End Select
    Case Else
    Me.RótIdosoFrágil.Visible = True
    End Select


    .................................................................................
    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
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Walter 28/1/2014, 09:55

    Bom dia, Alexandre.
    Obrigado por responder à minha dúvida.

    Fiz o código, mas está dando erro de sintaxe.

    Private Sub Form_Open(Cancel As Integer)
    Select Case Idade
       Case Is < 60
           Me.RótNãoIdoso.Visible = True
       Case Is < 80
           Select Case DLookup("IdosoFrágil", "Tbl_AvaliaIdoso", "[CódigoMembrosFamilia]='" & Me!CódigoMembrosFamilia)
               Case "Sim"
                   Me.RótIdosoFrágil.Visible = True
               Case Else
                   Me.Rótidoso.Visible = True
           End Select
       Case Else
           Me.RótIdosoFrágil.Visible = True
    End Select


    Outras duas questões nesse código:
    CódigoMembrosFamilia  é o campo de chave secundária na Tbl_AvaliaIdoso

    1º - Como faço para esse código buscar a última avaliação do Idoso em questão? Ou seja, o mesmo Idoso pode ser avaliado em vários dias diferentes e eu queria que o código buscasse a avaliação "mais recente". Como seria isso?
    2º - Caso não tenha sido feita avaliação desse idoso, entre 60 e 79 anos, deverá ficar visível o "RótIdoso".

    Obrigado,

    Walter
    avatar
    Convidado
    Convidado


    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Convidado 29/1/2014, 10:44

    Grande Mestre Alexandre.. Meus respeitos..


    Se CódigoMembrosFamilia = texto
    DLookup("IdosoFrágil", "Tbl_AvaliaIdoso", "[CódigoMembrosFamilia]='" & Me!CódigoMembrosFamilia & "'')


    Se CódigoMembrosFamilia = Numero
    DLookup("IdosoFrágil", "Tbl_AvaliaIdoso", "[CódigoMembrosFamilia]=" & Me!CódigoMembrosFamilia & "")




    Cumprimentos.
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Walter 30/1/2014, 01:03

    Muito obrigado, Alexandre e Harysohn.
    Estou testando o código ainda, mas parece que deu certo.
    Troquei o DLookup por DLast para buscar o último registro, pois o idoso pode, e deverá ser, avaliado várias vezes.

    O código ficou assim:

    Private Sub Form_Open(Cancel As Integer)
    Select Case Idade
       Case Is < 60 'Se a Idade for menor que 60 anos
           Me.RótNãoIdoso.Visible = True 'Torna o Rótulo Não-Idoso visível
       Case Is < 80 'Se a Idade for menor que 80 anos
           Select Case DLast("IdosoFrágil", "Tbl_AvaliaIdoso", "[CódigoMembrosFamilia]=" & Me!CódigoMembrosFamilia & "") 'Busque o último registro na Tbl_AvaliaIdoso
              Case "Sim" 'Se IdosoFrágil for "sim"
                Me.RótIdosoFrágil.Visible = True 'Torne o Rotulo Idoso Frágil visível
              Case "Não" 'Se for "não"
                Me.Rótidoso.Visible = True 'Torne o Rotulo Idoso Visivel
              Case Else ' Se não for "Sim" nem "Não"
                Me.Rótidoso.Visible = True ' Torne o Rótulo Idoso visivel
            End Select
       Case Else ' Se a idade for 80 ou mais
           Me.RótIdosoFrágil.Visible = True ' Torne o Rótulo Idoso Fragil visível
    End Select

    Obrigado.

    Walter
    avatar
    Convidado
    Convidado


    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Convidado 30/1/2014, 08:54

    Aguardamos..

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Convidado 1/2/2014, 01:43

    Resolveste?

    Cumprimentos.
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Walter 6/2/2014, 20:54

    Resolvido, Harysohn.

    O código estava perfeito, mas tive problema com o formulario, que estava dando um erro ao abrir, mas já solucionei...
    Muito obrigado.

    Um abraço

    Walter
    avatar
    Convidado
    Convidado


    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Convidado 6/2/2014, 21:56

    O Fórum  agradece o Retorno.

    Conteúdo patrocinado


    [Resolvido]Usar Select Case para buscar informação em uma tabela. Empty Re: [Resolvido]Usar Select Case para buscar informação em uma tabela.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 22:07