Imprimir página | Cerrar ventana

VBA:Llenado ListBox/ComboBox por codigo

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Tus Funciones Favoritas & Aportaciones & Artí­culos
Descripción del foro: Para publicar código interesante, aportaciones y artículos
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=77398
Fecha de impresión: 05/Abril/2020 a las 07:02


Tema: VBA:Llenado ListBox/ComboBox por codigo
Publicado por: admin
Asunto: VBA:Llenado ListBox/ComboBox por codigo
Fecha de publicación: 21/Agosto/2013 a las 17:17

Palabras Clave: Listbox, combobox, cuadro de lista, cuadro combinado.

Los Cuadros de Lista y los Cuadros Combinados pueden ser llenados mediante una funcion definida por el usuario. Para usar esta funcion hay que tener en cuenta las siguientes caracteristicas:

-En la propiedad "Tipo de origen de la fila" escribiremos solo el nombre de la funcion, no se debe incluir el signo "=" ni los parentesis.

-La funcion tendrá 5 argumentos:
NombreFuncion(fld As Control, id As Variant, fila As Variant, col As Variant, cod As Variant) As Variant

Ejemplo: http://www.mvp-access.com/buho/ficheros/ListBox.zip" rel="nofollow - http://www.mvp-access.com/buho/ficheros/ListBox.zip

'Esta funcion carga en un ListBox/ComboBox 2 campos de la tabla "tabla1".

Private Function AWdatosCombo(fld As Control, id As Variant, fila As Variant, col As Variant, cod As Variant) As Variant

  Static rst As DAO.Recordset

  Static fldVAL As Variant

  Select Case cod

    Case acLBInitialize

      'permitimos cargar los datos

      AWdatosCombo = True

      'abrimos el recordset

      Set rst = CurrentDb.OpenRecordset("Tabla1")

      'cargamos la matriz con los valores del recordset

      fldVAL = rst.GetRows(rst.RecordCount)

    Case acLBOpen

      'abrimos y asignamos un id

      AWdatosCombo = Timer

    Case acLBGetRowCount

      'asignamos el numero total de filas

      AWdatosCombo = rst.RecordCount

    Case acLBGetColumnCount

      'asignamos numero de columnas

      AWdatosCombo = 2

    Case acLBGetColumnWidth

      'asignamos ancho de columnas

      AWdatosCombo = -1

    Case acLBGetFormat

      'asignamos formato de la columna

      If col = 0 Then AWdatosCombo = "#,##0"

    Case acLBGetValue

      'llenamos los valores de la lista

      AWdatosCombo = fldVAL(col, fila)

    Case acLBEnd

      'ultima llamada a la funcion

      Set rst = Nothing

  End Select

End Function




Imprimir página | Cerrar ventana