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.