Propriedade Application.CurrentObjectType (Access)
Use a propriedade CurrentObjectType junto com o objeto Application para determinar o tipo do objeto de banco de dados ativo (tabela, consulta, formulário, relatório, macro, módulo, exibição do servidor, diagrama de banco de dados ou procedimento armazenado). O objeto de banco de dados ativo é o objeto que tem o foco ou no qual o código está sendo executado. Somente leitura AcObjectType.
Sintaxe
expressão. CurrentObjectType
expressão Uma variável que representa um Aplicativo objeto.
Comentários
As condições a seguir determinam qual é o objeto ativo:
Se o objeto ativo for uma folha de propriedades, a barra de comandos, menu, paleta ou lista de campos de um objeto, a propriedade CurrentObjectType retornará o tipo do objeto subjacente.
Se o objeto ativo for um formulário pop-up, a propriedade CurrentObjectType refere-se para o formulário pop-up em si, não para o formulário do qual ele foi aberto.
Se o objeto ativo for a janela banco de dados, a propriedade CurrentObjectType retornará o item selecionado nessa janela banco de dados.
Se nenhum objeto for selecionado, a propriedade CurrentObjectType retornará True.
Se o estado atual for ambíguo (o objeto ativo não é uma tabela, consulta, formulário, relatório, macro ou módulo), por exemplo, se uma caixa de diálogo tiver o foco, a propriedade CurrentObjectType retornará True.
Use essa propriedade com o método SysCmd para determinar o objeto ativo e seu estado (por exemplo, se o objeto estiver aberto, novo ou tiver sido alterado, mas não salvo).
Exemplo
O exemplo a seguir usa as propriedades CurrentObjectType e CurrentObjectName com a função SysCmd para determinar se o objeto ativo for um formulário Products e se este formulário é aberto e foi alterado mas não salvo. Se essas condições forem verdadeiras, o formulário está salvo e, em seguida, fechado.
Public Sub CheckProducts()
Dim intState As Integer
Dim intCurrentType As Integer
Dim strCurrentName As String
intCurrentType = Application.CurrentObjectType
strCurrentName = Application.CurrentObjectName
If intCurrentType = acForm And strCurrentName = "Products" Then
intState = SysCmd(acSysCmdGetObjectState, intCurrentType, _
strCurrentName)
' Products form changed but not saved.
If intState = acObjStateDirty + acObjStateOpen Then
' Close Products form and save changes.
DoCmd.Close intCurrentType, strCurrentName, acSaveYes
End If
End If
End Sub
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.