ACC: Función de ejemplo para rellenar un Control ListView

Exención de responsabilidades de contenido KB retirado

Este artículo se refiere a productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Avanzado: Requiere conocimientos avanzados de codificación, interoperabilidad y multiusuario.


Resumen

En este artículo se muestra cómo rellenar un control ListView en un formulario con el contenido de una tabla o consulta.


En este artículo se supone que está familiarizado con Visual Basic para Aplicaciones y con la creación de aplicaciones de Microsoft Access mediante las herramientas de programación suministradas con Microsoft Access. Para obtener más información acerca de Visual Basic para Aplicaciones, consulte su versión del manual "Creación de aplicaciones con Microsoft Access".

Más información

El control ListView es uno de los controles de ActiveX (o controles personalizados en Microsoft Access 7.0) incluido con Microsoft Office 97 Developer Edition y el Kit de herramientas para Windows 95 del programador de Microsoft Access. Muestra una lista de objetos en una de cuatro vistas diferentes. Puede organizar los elementos en columnas con o sin encabezados de columna, así como mostrar iconos de acompañamiento con texto. Si desea utilizar el control ListView, debe rellenarlo con datos mediante programación.


En el ejemplo siguiente se utiliza la tabla Employees en la base de datos de ejemplo Neptuno.mdb. La función de ejemplo FillList() rellena un control ListView con datos y lo muestra en uno de sus cuatro vistas diferentes, la vista de informe.


  1. Abra la base de datos de ejemplo Neptuno.mdb.
  2. Crear un nuevo formulario no basado en ninguna tabla o consulta. Guardar como frmListView y ábralo en la vista Diseño.
  3. En el menú Insertar, haga clic en ActiveX Control (o Control personalizado en la versión 7.0). Haga clic en el Control ListView de Microsoft en la lista de controles y, a continuación, haga clic en Aceptar.
  4. En el menú Ver, haga clic en Propiedades. Establezca las siguientes propiedades del control ListView:
    Nombre: ctlListView
    Anchura: de 5"
    Altura: de 2"
  5. Cree un módulo y escriba la línea siguiente en la sección Declaraciones si no está ya allí:
    Option Explicit
  6. Escriba el procedimiento siguiente:

           Function FillList(Domain As String, LV As Object) As Boolean      '==================================================================
    ' Purpose: to fill a ListView control with data from a table or
    ' query
    ' Arguments: a Domain which is the name of the table or query, and
    ' a ListView control object
    ' Returns: A Boolean value to indicate if the function was
    ' successful
    '==================================================================

    Dim db As DATABASE, rs As Recordset
    Dim intTotCount As Integer
    Dim intCount1 As Integer, intCount2 As Integer
    Dim colNew As ColumnHeader, NewLine As ListItem

    On Error GoTo Err_Man

    ' Clear the ListView control.
    LV.ListItems.Clear
    LV.ColumnHeaders.Clear

    ' Set Variables.
    Set db = CurrentDb
    Set Rs = db.OpenRecordset(Domain)

    ' Set Column Headers.
    For intCount1 = 0 To Rs.Fields.Count - 1
    Set colNew = LV.ColumnHeaders.Add(, , Rs(intCount1).Name)
    Next intCount1
    LV.View = 3 ' Set View property to 'Report'.

    ' Set Total Records Counter.
    Rs.MoveLast
    intTotCount = Rs.RecordCount
    Rs.MoveFirst

    ' Loop through recordset and add Items to the control.
    For intCount1 = 1 To intTotCount
    If IsNumeric(Rs(0).Value) Then
    Set NewLine = LV.ListItems.Add(, , Str(Rs(0).Value))
    Else
    Set NewLine = LV.ListItems.Add(, , Rs(0).Value)
    End If
    For IntCount2 = 1 To Rs.Fields.Count - 1
    NewLine.SubItems(intCount2) = Rs(intCount2).Value
    Next intCount2
    Rs.MoveNext
    Next intCount1

    Exit Function

    Err_Man:
    ' Ignore Error 94 which indicates you passed a NULL value.
    If Err = 94 Then
    Resume Next
    Else
    ' Otherwise display the error message.
    MsgBox "Error: " & Err.Number & Chr(13) & _
    Chr(10) & Err.Description
    End If

    End Function

    Nota: Si intenta compilar esta función antes de insertar el control ListView en su formulario, recibirá el siguiente error:
    Tipo definido por el usuario no definido
  7. Establezca la propiedad OnLoad del formulario frmListView al procedimiento de evento siguiente:
          Private Sub Form_Load()         Dim intResult as Integer
    intResult = FillList("Employees",Me!ctlListView)
    End Sub

  8. Abra el formulario en la vista formulario. Observe que el control ListView muestra el contenido de la tabla empleados.

Referencias

Para obtener más información sobre el control ListView y sus propiedades y métodos, buscar el índice de la ayuda para el control ListView.
Propiedades

Id. de artículo: 155178 - Última revisión: 01/23/2017 - Revisión: 1

Comentarios