Coleccion a combo

 Principal Novedades Utilidades Código Enlaces Access Acerca de mí

     
 
Principal
Arriba

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RellenaconColeccion
A partir de Access XP disponemos del método Add para rellenar cuadros combinados y de las colecciones de AccessObject. Recorriendo los items de cualquier colección podemos rellenar un cuadro combinado de forma muy sencilla utilizando el método Add. Para facilitarlo más aún, podemos hacer un procedimiento genérico para rellenar cualquier cuadro combinado a partir de cualquier colección.

Por ejemplo, podríamos rellenar distintos cuadros combinados a partir de las colecciones de Access Objects de Current.Project o de Current.Data:

'Unas colecciones pertenecen al CurrentProject
RellenaconColeccion Me.cboForms, CurrentProject.AllForms
RellenaconColeccion Me.cboReports, CurrentProject.AllReports
RellenaconColeccion Me.cboDataAccess, CurrentProject.AllDataAccessPages
RellenaconColeccion Me.cboMacros, CurrentProject.AllMacros
RellenaconColeccion Me.cboModules, CurrentProject.AllModules

' Otras colecciones de AccessObject pertenecen al CurrentData
RellenaconColeccion Me.cboQueries, CurrentData.AllQueries
RellenaconColeccion Me.cboTables, CurrentData.AllTables
RellenaconColeccion Me.cboDiagrams, CurrentData.AllDatabaseDiagrams
RellenaconColeccion Me.cboFunctions, CurrentData.AllFunctions
RellenaconColeccion Me.cboSP, CurrentData.AllStoredProcedures
RellenaconColeccion Me.cboViews, CurrentData.AllViews

Puedes descargarte una aplicación de ejemplo en ComboCol.zip
 

Option Explicit
'---------------------------------------------------------------------------------------
' Procedure : RellenaconColeccion
' DateTime  : 18/11/05 19:10
' Author    : José Bengoechea Ibaceta (Chea)
' Purpose   : Rellena el cuadro combinado que le pasemos en elparámetro cbo con los items
'           : de la colección que le pasemos en el parámetro col.
'            Estás autorizado a utilizar este código dentro de una aplicación
'            siempre que esta nota de autor permanezca inalterada.
'            En el caso de querer publicarlo en una página Web, por favor,
'            contactar con el autor en
'
'                 UA@bengoechea.net
'---------------------------------------------------------------------------------------
Public Sub RellenaconColeccion(cbo As ComboBox, col As Object)
Dim AO As Object, l As Long
        If cbo.ListCount > 0 Then
        'Borramos los items del cuadro combinado
            For l = cbo.ListCount - 1 To 0 Step -1 'Vamos al revés porque los
                                                   'índices van cambiando al borrar items
                cbo.RemoveItem (l)
            Next l
        End If
        'Y ahora los añadimos
        For Each AO In col
                ' Añadimos el item al cuadro combinado
                cbo.AddItem AO.Name
        Next
        cbo = cbo.ItemData(0)
End Sub