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
Como identificar, pelo VBA, se um objeto está aberto.

Como identificar, pelo VBA, se um objeto está aberto ?

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.

Open v3

 

Muitas vezes é necessário identificar se um objeto (formulário, relatório, consulta ou tabela) está aberto, para uma tomada de decisão, dentro de um procedimento.

Vamos supor que precisamos passar um valor para o campo de um determinado formulário.  O valor seria passado assim:

forms!frmContatos!DataDeNascimento = "15/05/1975"

Se o VBA não encontrar o formulário frmContatos aberto, receberemos a seguinte mensagem:

Usando Access - Cadastro de clientes

 

Podemos optar em alterar o código para tratar o erro 2450 ou alterar o código para fazer uma verificação prévia, se o formulário se encontra aberto. 

O comando utilizado para saber se o formulário se encontra aberto, é este em vermelho:

Faça o login aqui para ter acesso ao código.

Os comandos abaixo são para verificar relatório e macro abertos, respectivamente:

Faça o login aqui para ter acesso ao código.

Até bem pouco tempo, achava que não existia uma propriedade específica para identificar tabelas e consultas abertas, até que descobri que estava na CurrentData.

Faça o login aqui para ter acesso ao código.

Sucesso!


 

 


18 comentário(s)

James Resplandes   25/09/2023 15:10:38

Top!!!
Muito legal mesmo, ótima dica Avelino.

Luciano   08/12/2022 16:47:59

Como fazer para verificar se o SUB-formulário está aberto?

Formiga10x   17/07/2022 20:16:18

Muito bom mestre foi de muita ajuda.
Muito obrigado.

Fabio Bulhoes   24/05/2022 22:25:15

Avelino, boa noite

Como podemos saber se um Recordset está aberto?

Obrigado

Avelino Sampaio   15/08/2021 14:49:19

Regis,

Copie a função abaixo para um módulo global:

Public Function fncTabelaExiste(strNomeTabela As String) As Boolean
fncTabelaExiste = IIf(DCount("name", "MsysObjects", "(type = 1 or type =2) AND name='" & strNomeTabela & "'") = 1, True, False)
End Function

Basta aplicar a função

If fncTabelaExiste("NomeDatabela") then
'sim existe
else
'não existe
end if

Sucesso!

Regis da Silva   15/08/2021 14:06:53

Estava procurando por todo canto mas...
Como eu faço para verificar se uma tabela já existe?

Aurino Andrade   24/07/2021 13:41:36

Mestre Avelino,

Obrigado pela atenção, sua resposta foi precisa e resolve minha necessidade.

Grato pela ajuda.

Obrig@do!

Avelino Sampaio   24/07/2021 06:38:19

Arino,

Especifique melhor sobre este "numero". Usar o nome do controle não serve? Por exemplo:

screen.ActiveControl.Name

Você pode criar uma numeração propria para os controles, usando a propriedade MARCA. Depois é só utilizar o comando

screen.ActiveControl.Tag

Sucesso!

Arino Andrade   23/07/2021 12:26:39

Boa tarde!

Estas instruções são muito úteis.

Preciso saber em qual controle eu cliquei (seja um botão, campo, legenda e etc.) tem como saber o número do controle em que cliquei?

Obrigado!

Hephraim BF   26/04/2021 09:25:53

Muito bom!

jonathan   18/04/2021 21:37:21

Boa noite!

Parabéns, ótima solução.

Usuario   09/02/2021 12:42:50

Função: colocar no modulo e chamar no formulário
Function CHECA_FORM(FORMULARIO As String) As Boolean
Select Case CurrentProject.AllForms(FORMULARIO).IsLoaded
Case True
CHECA_FORM = True
Case False
CHECA_FORM = False
End Select

End Function

No formulário:
IF checa_form("nomedoformulario) = true then
me.campo1 = "xx"
end if


Paulo Vinicius   08/02/2021 20:58:53

Mais uma vez superando expectativas.

Muito obrigado Avelino!!!

Marcelo David   08/02/2021 19:50:14

Opa! Muito bom, eu ja usava o código para verificar os formulários abertos, mas não sabia que dava para saber das tabelas e consultas!!

Muito obrigado por compartilhar!

Data em detalhe   08/02/2021 18:55:08

Olá Avelino.
Fala sério, colocou a data do seu aniversário só pra todo mundo mandar presente né. rs
mas valeu a dica, muito interessante, vai ajudar muito nos projetos que desenvolvo.
Grande abraço.

Paulo Cesar - paulo@softaccess.com.br

Gilberto Mendes   08/02/2021 13:24:03

Boa dica.

Eu usava um método bem português, de checar se entre todos os formularios o que eu queria estava aberto. Parabéns pela dica.

Gilberto Mendes
www.accesspro.com.br

Vagner   13/01/2021 17:37:09

Avelino, meu projeto está na rede interna na minha empresa. Usei suas dicas para saber que formulário está aberto mas não funcionou. Confirmei que o colega estava com determinado formulário aberto mas não dava essa informação. Será pq executo na rede?

Flavio Pereira   01/01/2021 18:55:12

Avelino, uso um banco de dados com alguns usuários utilizando área de trabalho remota simultaneamente. Como poderia verificar se um determinado formulário foi aberto por um outro usuário?
Obrigado.


Envie seu comentário: