Share via


Propriedade Application.CurrentObjectName (Access)

Use a propriedade CurrentObjectName com o objeto Application para determinar o nome do objeto de banco de dados ativo. O objeto de banco de dados ativo é o objeto que tem o foco ou no qual o código está sendo executado. String somente leitura.

Sintaxe

expressão. CurrentObjectName

expressão Uma variável que representa um Aplicativo objeto.

Comentários

A propriedade CurrentObjectName é definida pelo Microsoft Access como uma expressão de cadeia de caracteres contendo o nome do objeto ativo.

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 CurrentObjectName retornará o nome do objeto subjacente.

  • Se o objeto ativo for um formulário pop-up, a propriedade CurrentObjectName 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 CurrentObjectName retornará o item selecionado nessa janela banco de dados.

  • Se nenhum objeto for selecionado, a propriedade CurrentObjectName retornará uma cadeia de caracteres de comprimento zero ("").

  • 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 CurrentObjectName retornará o nome da caixa de diálogo.

Exemplo

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).

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.