Função para fechar todos os formulários
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Em certas situações é necessário forçar o fechamento de formulários. Por exemplo, o aplicativo Maestro que ofereço neste site, faz uso desta técnica de fechar os formulários para poder realizar o logoff e trocar de usuário.
Quando um formulário é aberto, ele assume um número que começa do zero(0). Podemos identificar o nome de um formulário aberto, através deste número. Exemplo de dois formulários abertos:
forms(0).name :::> frmLogin
forms(1).name :::> frmClientes
A propriedade count retorna à quantidade de formulários que estão abertos. Exemplo:
forms.count :::> 2
Vamos supor que eu feche o formulário frmLogin do exemplo acima, o número de identificação será atualizado automaticamente e o formulário frmClientes passará a ser identificado pelo zero(0)
forms(0).name :::> frmClientes
forms(1).name :::> Erro 2456 - número inválido
Observe na função abaixo que o laço FOR foi configurado para percorrer os formulários do maior número de identificação para o menor (step -1), justamente por causa da reconfiguração automática dos números de identificação dos formulários abertos que ocorre quando um deles é fechado.
Faça o login aqui para ter acesso ao código.
Para realizar o logoff a função é chamada assim:
call fncFechaForms(true) :::> fecha todos os formulários, exceto o formulário de Login (frmLogin)
Ao encerrar o aplicativo, a função é chamada para fechar todos os formulários:
call fncFechaForms() :::> fecha todos os formulários.
Bom estudo!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Aprenda sobre filtragens
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Vídeo - Programação de relatórios - Parte 1
Como carregar o seu menu sem que ele vá para lista de suplementos
Adquira o kit UsandoAccess e aprenda em alta velocidade
4 comentário(s) Sales 09/01/2023 19:01:10 Boa noite, Fiz um botão para fechar os formulários, exceto um, mas ta fechando todo o banco de dados. Help Private Sub REABRIR_Click() Call fncFechaFormsPS(True) Me.SITUAÇÃO.Value = "CANCELADO" End Sub Public Function fncFechaFormsPS(Optional booLogOff As Boolean = False) '---------------------------------- 'fecha todos os formulários abertos '---------------------------------- On Error Resume Next Dim j As Integer, NF As Integer NF = Forms.Count For j = (NF - 1) To 0 Step -1 If booLogOff Then If Not Forms(j).Name = "F_PS_CADASTRO" Then DoCmd.Close acForm, Forms(j).Name, acSaveYes End If Else DoCmd.Close acForm, Forms(j).Name, acSaveYes End If Next j End Function Alessandro 17/08/2021 12:51:25 Estou precisando de um código para fechar o access por completo se ficar sem uso por um determinado tempo. Valdir Pereira da 04/07/2020 11:11:06 Avelino, Teria um para fechar o Banco de Dados inteiro após certo tempo de inatividade?? Estou usando com ribbon persanalizada pelo montaribbons adquirido de você. Amaral do AtivoAccess 18/02/2020 07:58:25 Obrigado Avelino. Excelente solução. |