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.