Propiedad Application.CurrentObjectName (Access)

Utilice la propiedad CurrentObjectName con el objeto Application para determinar el nombre del objeto de base de datos activo. El objeto de base de datos activo es el objeto que tiene el foco o en el que se ejecuta el código. String de solo lectura.

Sintaxis

expresión. CurrentObjectName

expresión Variable que representa un objeto Application.

Comentarios

La propiedad CurrentObjectName la establece Microsoft Access en una expresión de cadena que contiene el nombre del objeto activo.

Las condiciones siguientes determinan el objeto que se considera el objeto activo:

  • Si el objeto activo es una hoja de propiedades, la barra de comandos, menú, paleta o lista de campos de un objeto, la propiedad CurrentObjectName devuelve el nombre del objeto subyacente.

  • Si el objeto activo es un formulario emergente, la propiedad CurrentObjectName hace referencia al formulario emergente en Sí, no al formulario desde el que se ha abierto.

  • Si el objeto activo es la ventana Base de datos, la propiedad CurrentObjectName devuelve el elemento seleccionado en la ventana Base de datos.

  • Si hay ningún objeto seleccionado, la propiedad CurrentObjectName devuelve una cadena de longitud cero ("").

  • Si el estado actual es ambiguo (el objeto activo no es una tabla, consulta, formulario, informe, macro o módulo), por ejemplo, si un cuadro de diálogo tiene el foco, la propiedad CurrentObjectName devuelve el nombre del cuadro de diálogo.

Ejemplo:

Utilice esta propiedad con el método SysCmd para determinar el objeto activo y su estado (por ejemplo, si el objeto está abierto, nuevo o se ha cambiado pero no se ha guardado).

El ejemplo siguiente utiliza las propiedades CurrentObjectType y CurrentObjectName con la función SysCmd para determinar si el objeto activo es el formulario Products y si este formulario está abierto y se ha modificado pero no guardado. Si se cumplen estas condiciones, se guarda y, a continuación, se cierra el formulario.

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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.