bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Função para fechar todos os formulários

... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$182,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Função para fechar todos os formulários

Antes de iniciar sua leitura, clique aqui e cadastre-se para receber comunicados sobre novos artigos.

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!


 

 


2 comentário(s)

Sales   09/01/2018 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

Amaral do AtivoAccess   18/02/2019 07:58:25

Obrigado Avelino. Excelente solução.


Envie seu comentário: