Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/11/2009, 21:38
franko1809
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 4 meses
Puntos: 10
Formato en columnas de Listview

Necesito ponerle formato a los campos numericos de un listview, utilizo una funcion que encontre para cargar un recordset, los campos numericos son precio y precio2 dejo el codigo que tengo y si tienen otro que funciona mejor estaria bien.
Código:
Sub Cargar_ListView(ListView As ListView, sql As String, PathBd As String)

    Dim Campo As Integer

    On Error GoTo ErrSub

    'Variable para los SubItem del LV
    Dim Item As ListItem
    Dim i As Long

    'Nuevo objeto Connection y objeto Recordset
    Set cnn = New Connection
    Set Rst = New Recordset

    'Abre la base de datos
    cnn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathBd)

    'Llena el Recordset
    Rst.Open sql, cnn, adOpenDynamic, adLockOptimistic
    
    With ListView
        'Vista de reporte
        .View = lvwReport
        ' Elimina los item y los encabezado de columna
        .ListItems.Clear
        .ColumnHeaders.Clear
    End With

    Me.MousePointer = vbHourglass

    'Agrega los nombres campo junto con los encabezados de columna para el ListView
    'For Campo = 0 To Rst.Fields.Count - 1
        'ListView.ColumnHeaders.Add , , Rst.Fields(Campo).Name
    'Next
ListView.ColumnHeaders.Add , , "codigo", 1000
ListView.ColumnHeaders.Add , , "nombre", 4000
ListView.ColumnHeaders.Add , , "precio", 1000, lvwColumnRight
ListView.ColumnHeaders.Add , , "precio2", 1000, lvwColumnRight

    ' Recorre todos los registros del Recordset
    While Not Rst.EOF
        'Agrega el Item
        Set Item = ListView.ListItems.Add(, , Rst.Fields(0), , 1)
        i = 1

        'Agrega los SubItem al ListView mediante la variable ITEM
        For Campo = 1 To Rst.Fields.Count - 1
    
            'si el dato no es de tipo Null lo agrega
            If Not IsNull(Rst.Fields(Campo)) Then
                Item.SubItems(i) = Rst.Fields(Campo)
            End If
            i = i + 1
        Next
    
    'Siguiente registro
    Rst.MoveNext
    Wend
    Me.MousePointer = vbDefault

Exit Sub
'Error
ErrSub:

    MsgBox Err.Description, vbCritical, "Error"
    Me.MousePointer = vbDefault
End Sub