Propiedad Application.CurrentObjectType (Access)
Use la propiedad CurrentObjectType junto con el objeto Application para determinar el tipo del objeto de base de datos activo (tabla, consulta, formulario, informe, macro, módulo, vista del servidor, diagrama de base de datos o procedimiento almacenado). El objeto de base de datos activo es el objeto que tiene el foco o en el que se ejecuta el código. Read-only AcObjectType.
Sintaxis
expresión. CurrentObjectType
expresión Variable que representa un objeto Application.
Comentarios
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 CurrentObjectType devuelve el tipo del objeto subyacente.
Si el objeto activo es un formulario emergente, la propiedad CurrentObjectType 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 CurrentObjectType devuelve el elemento seleccionado en la ventana Base de datos.
Si hay ningún objeto seleccionado, la propiedad CurrentObjectType devuelve True.
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 CurrentObjectType devuelve True.
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).
Ejemplo:
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.