MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Mensagem condicional em formulário

    Compartilhe

    João Ricardo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 453
    Registrado : 20/01/2013

    [Resolvido]Mensagem condicional em formulário

    Mensagem  João Ricardo em Sex 17 Jan 2014, 15:40

    Olá amigos, bom dia!

    Estou organizando um bd antigo e quero implementar umas funções para eliminar erros que aconteceram até agora.
    Preciso de uma função que possa emitir uma mensagem ao carregar o nome de um aluno em um campo do formulário.
    São duas condições para a mensagem: Uma qdo o aluno é transferido e outra qdo ele é semi-interno.
    A caixa de texto contendo as mensagens deve desabilitar o formulário por trás dela e permitir alterações somente qdo escolhido um aluno válido.

    Eu creio que não seja algo muito difícil, ma ainda não consigo fazer isso no VBA.
    Segue o bd para observação.
    A mesma função será usada noutros formulários e principalmente para que eu possa aprender como fazer.

    Obrigado a todos.
    Anexos
    Mensagem condicionada.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.3 Mb) Baixado 24 vez(es)


    Última edição por João Ricardo em Sex 17 Jan 2014, 15:42, editado 1 vez(es) (Razão : Ortografia)

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Mensagem condicional em formulário

    Mensagem  HARYSOHN em Sex 17 Jan 2014, 18:18

    Boa Tarde João, de maiores detalhes distro e cite os objetos envolvidos na tua dúvida.

    Cumprimentos


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    João Ricardo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 453
    Registrado : 20/01/2013

    Re: [Resolvido]Mensagem condicional em formulário

    Mensagem  João Ricardo em Sab 18 Jan 2014, 01:16

    Olá amigo, seguem novas informações.

    Este banco de dados trabalha com o registro de alunos que moram na escola (internos) e os que moram com suas famílias (semi-internos). Somente os internos recebem visitas de seus pais, já que os outros (internos) já moram com eles.

    Há também o caso dos transferidos que, consequentemente não estão mais na escola, mas pode ser que apareça alguém querendo visitá-los com outras intenções. Nesse caso, por questões de segurança, gostaria que o vigia fosse informado da situação para não correr o risco de permitir a entrada de alguém que não poderia.

    No formulário de registro da entrada dos alunos tem o campo e, abaixo da listbox de pesquisa aparece o nome do referido aluno pesquisado.

    Preciso de uma função que possa emitir um aviso ao usuário qdo for localizado um aluno transferido ou semi-interno, solicitando a escolha de um novo aluno. Esta função deve desabilitar o formulário, não permitindo que ele possa ser usado em segundo plano.

    Depois vou usar esta mesma função para outras situações, como quando o vigia é desligado da empresa.

    A intenção é que esta função seja pública para ser usada noutras parte do projeto, de forma simples.

    A função poderia ser atribuída pela “propriedade” “após atualizar” da guia “evento” ?

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Mensagem condicional em formulário

    Mensagem  HARYSOHN em Sab 18 Jan 2014, 01:33

    Compreendi tua necessidade...

    Apenas cite agora o passo a passo para que eu possa reproduzir aqui..
    Assim: Abre o form X, faz isso e aquilo e tal..

    Cumprimentos.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    João Ricardo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 453
    Registrado : 20/01/2013

    Re: [Resolvido]Mensagem condicional em formulário

    Mensagem  João Ricardo em Sab 18 Jan 2014, 03:40

    Olá.

    Ao abrir o formulário frmVisitaAluno o usuário deverá localizar um aluno pelo nome ou pelo RGM.
    Após localizar o aluno, serão preenchidos os campos RGM, Nome, Série / Ano, Transferido e InternoSeminterno. Estes dois últimos estarão ocultos porque não é necessário que fiquem visíveis.

    Qdo estes campos forem preenchidos a função é dispara e deverá verificar se o aluno é Transferido ou Semi-interno. Se SIM, então apresenta a MsgBox com a indicação que não é um aluno válido e solicita a escolha de outro. Nesse caso, se possível, o cursor retornaria para o campo Localizar aluno por nome e deixaria em branco os campos citados acima.

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Mensagem condicional em formulário

    Mensagem  HARYSOHN em Sab 18 Jan 2014, 11:15

    Eis:


    Private Sub combLocalizaPorRGM_AfterUpdate()
    Dim lngAluno As String
    '---------------------------------
    'Verifico se o aluno é transferido
    '---------------------------------
    If DLookup("Transferido", "tblAlunos", "RGM = " & Me.combLocalizaPorRGM.Column(0) & "") = True Then
        '---------------------------------------
        'Carrego na variável a situação do aluno
        '---------------------------------------
        lngAluno = DLookup("InternoSeminterno", "tblAlunos", "RGM = " & Me.combLocalizaPorRGM.Column(0) & "")
            '------------------------------------------
            'Case para direcionar à situação encontrada
            'No case que deseja aplique a instrução
            'que lhe convier
            '------------------------------------------
            Select Case lngAluno
                Case "Interno"
                    MsgBox "Interno"
                Case "Semi-Interno"
                    MsgBox "Semi-Interno"
            End Select
    End If
      '-------------------------------------------------
      ' Localizar o registo que corresponde ao controle.
      '-------------------------------------------------
        Dim Rs As Object
        Set Rs = Me.Recordset.Clone

        Rs.FindFirst "[RGM] = " & Str(Nz(Me.combLocalizaPorRGM.Column(0), 0))
        If Not Rs.EOF Then Me.Bookmark = Rs.Bookmark
    End Sub


    Aplique no evento após atualizar da caixa de combinação substituindo a macro existente.
    No case pode executar a instrução que desejar.

    Cumprimentos.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    João Ricardo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 453
    Registrado : 20/01/2013

    Re: [Resolvido]Mensagem condicional em formulário

    Mensagem  João Ricardo em Sab 18 Jan 2014, 12:25

    Muito obrigado.

    A função está rodando de acordo, mas tem uma observação.

    Após informar a condição do aluno e fechar a MsgBox, o sistema permite que se faça o registro para o aluno, mesmo ele sendo transferido ou semi-interno.

    É possível criar um condição em que o sistema não permita a continuidade do registro para um aluno que não satisfaça as condições?

    Para esse caso, penso que o subformulário poderia ficar oculto até que fosse localizado um aluno válido, ou seja, ao carregar o formulário o sub não estaria visível, tornando-se visível apenas depois que o aluno localizado fosse válido.


    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Mensagem condicional em formulário

    Mensagem  HARYSOHN em Dom 19 Jan 2014, 00:36

    Tente assim:


    Private Sub combLocalizaPorRGM_AfterUpdate()
    Dim lngAluno As String
    '---------------------------------
    'Verifico se o aluno é transferido
    '---------------------------------
    If DLookup("Transferido", "tblAlunos", "RGM = " & Me.combLocalizaPorRGM.Column(0) & "") = True Then
        '---------------------------------------
        'Carrego na variável a situação do aluno
        '---------------------------------------
        lngAluno = DLookup("InternoSeminterno", "tblAlunos", "RGM = " & Me.combLocalizaPorRGM.Column(0) & "")
            '------------------------------------------
            'Case para direcionar à situação encontrada
            'No case que deseja aplique a instrução
            'que lhe convier
            '------------------------------------------
            Select Case lngAluno
                Case "Interno"
                    MsgBox "Interno"
    Me.undo
                Case "Semi-Interno"
                    MsgBox "Semi-Interno"
    Me.Undo
            End Select
    End If
      '-------------------------------------------------
      ' Localizar o registo que corresponde ao controle.
      '-------------------------------------------------
        Dim Rs As Object
        Set Rs = Me.Recordset.Clone

        Rs.FindFirst "[RGM] = " & Str(Nz(Me.combLocalizaPorRGM.Column(0), 0))
        If Not Rs.EOF Then Me.Bookmark = Rs.Bookmark
    End Sub


    Cumprimentos.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    João Ricardo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 453
    Registrado : 20/01/2013

    Re: [Resolvido]Mensagem condicional em formulário

    Mensagem  João Ricardo em Dom 19 Jan 2014, 00:52

    Obrigado amigo.
    Vou estudar o assunto e adaptar a outros forms.

    Harysohn, dá uma olhada no assunto abaixo. O que vc acha? Isso fere as regra do fórum? É possível de acontecer?

    Esta semana pensei sobre um curso via Fórum a ser ministrado por um grupo específico de participantes (os mais capacitados obviamente)
    Os participantes (alunos) seriam organizados por grupos de acordo com os conhecimentos prévios, pagariam uma quantia mensal (inclusive seria justo uma parte para o fórum) e o curso seria ministrado de acordo com a experiência em aulas do professor, ou com base em cursos já prontos.

    Felicidades.

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Mensagem condicional em formulário

    Mensagem  HARYSOHN em Seg 20 Jan 2014, 01:23

    É uma ídeia no entanto não sei se é condizente com o objetivo do Fórum.
    Eu particularmente quando me registrei no Fórum em 2011 nada sabia sobre programação... Tudo que aprendi foi através do Fórum.
    Uma boa forma de aprendizado, e foi assim que aprendi, além da ajudas dos colegas foi tentando de encontrar a solução para as dúvidas dos demais.

    Ainda hoje meu maior aprendizado é justamente na ajuda dada, acredite, mais que na ajuda recebida.

    Sobre esta questão que você colocou sobre curso no fórum foge da alçada de nós moderadores e está a cargo do admin do Fórum.

    Mas fica a sua dica.

    O Fórum agradece o Retorno.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

      Data/hora atual: Sab 10 Dez 2016, 06:50