Access & VBA FAQ
| | | |
Indice de temas
Tablas
Consultas
Formularios
Informes
Macros
Módulos
Base de datos
Miscelánea
API
Utilidades
Problemas
Cadenas
Fechas
Todos los temas
API : cboDropDown
Autor/es:
Juan M Afán de Ribera
Pregunta : ¿Cómo puedo saber a través de código si un cuadro combinado está desplegado?
Respuesta : La función cboDropDown devuelve True o False, según esté desplegado un cuadro combinado o no.

Pega el siguiente código en un módulo estandar
Private Declare Function FindWindow Lib "user32" _
                Alias "FindWindowA" _
                (ByVal lpClassName As String, _
                ByVal lpWindowName As String) As Long
                
Private Declare Function IsWindowVisible Lib "user32" _
                (ByVal hwnd As Long) As Long

Private Declare Function GetParent Lib "user32" _
                (ByVal hwnd As Long) As Long

Function cboDropDown() As Boolean
Dim hCombo As Long

    ' localizamos una ventana del desplegable
    hCombo = FindWindow("ODCombo", vbNullString)
    ' si la ventana existe ...
    If hCombo Then
        ' si la ventana pertenece a Access ...
        If GetParent(hCombo) = Access.hWndAccessApp Then
            ' si la ventana es visible ...
            If IsWindowVisible(hCombo) Then
                ' hay un cuadro combinado de
                ' Access desplegado
                cboDropDown = True
            End If
        End If
    End If

End Function
'---------------------------------------------------------

Ejemplos:

 

Temas relacionados:

 

Última actualización: 18/12/2004