
VBA - LISTVIEW COLUMNA NUMERICA
Publicado por Bryan (5 intervenciones) el 19/05/2023 02:13:44
Buenas tardes,
Estoy trabajando en un formulario de excel, y un resultado le cargo en un componente de listview, con el siguiente código:
Set Rst_Lista_Trabajo = New ADODB.Recordset
Rst_Lista_Trabajo.Source = sql
Rst_Lista_Trabajo.ActiveConnection = Conn
Rst_Lista_Trabajo.Open sql, Conn, adOpenDynamic, adLockOptimistic
myform.ltv_lista_trabajo.View = lvwReport
myform.ltv_lista_trabajo.ColumnHeaders.Clear
myform.ltv_lista_trabajo.ListItems.Clear
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Identificación", Width:=80
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Nombre", Width:=200
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Operación", Width:=80
'myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Entidad", Width:=100
'myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Usuario", Width:=80
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Campaña", Width:=150
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Sub Campaña", Width:=150
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Estado Gestión", Width:=100
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Fecha Próxima Acción", Width:=80
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Saldo", Width:=100
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Id Entidad", Width:=0
myform.ltv_lista_trabajo.HideColumnHeaders = False
myform.ltv_lista_trabajo.Appearance = cc3D
myform.ltv_lista_trabajo.FullRowSelect = True
Dim Item As ListItem
If Rst_Lista_Trabajo.BOF = False Then
Rst_Lista_Trabajo.MoveFirst
End If
Do Until Rst_Lista_Trabajo.EOF
Set Item = myform.ltv_lista_trabajo.ListItems.Add(Text:=Rst_Lista_Trabajo.Fields!IDENTIFICACION_CLIENTE)
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!NOMBRES_COMPLETO
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!ID_OPERACION '2
'Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!Entidad
'Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!Usuario
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!campana
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!SUB_CAMPANA
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!ESTADO_GESTION
Item.ListSubItems.Add Text:=IIf(IsNull(Rst_Lista_Trabajo.Fields!FECHA_PROXIMA_ACCION), "", Rst_Lista_Trabajo.Fields!FECHA_PROXIMA_ACCION)
Item.ListSubItems.Add Text:=FormatNumber(Rst_Lista_Trabajo.Fields!VALOR_DEUDA_EXIGIBLE)
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!Id_Entidad '9 ahora 8
num_registros = num_registros + 1
Rst_Lista_Trabajo.MoveNext
Loop
Cuando cargo el dato de VALOR_DEUDA_EXIGIBLE, se muestra como texto y no como número y al ordenarlo no funciona.
Como puedo hacer para que la columna tenga formato numerico?
Saludos,
Bryan Acosta P.
Estoy trabajando en un formulario de excel, y un resultado le cargo en un componente de listview, con el siguiente código:
Set Rst_Lista_Trabajo = New ADODB.Recordset
Rst_Lista_Trabajo.Source = sql
Rst_Lista_Trabajo.ActiveConnection = Conn
Rst_Lista_Trabajo.Open sql, Conn, adOpenDynamic, adLockOptimistic
myform.ltv_lista_trabajo.View = lvwReport
myform.ltv_lista_trabajo.ColumnHeaders.Clear
myform.ltv_lista_trabajo.ListItems.Clear
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Identificación", Width:=80
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Nombre", Width:=200
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Operación", Width:=80
'myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Entidad", Width:=100
'myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Usuario", Width:=80
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Campaña", Width:=150
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Sub Campaña", Width:=150
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Estado Gestión", Width:=100
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Fecha Próxima Acción", Width:=80
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Saldo", Width:=100
myform.ltv_lista_trabajo.ColumnHeaders.Add Text:="Id Entidad", Width:=0
myform.ltv_lista_trabajo.HideColumnHeaders = False
myform.ltv_lista_trabajo.Appearance = cc3D
myform.ltv_lista_trabajo.FullRowSelect = True
Dim Item As ListItem
If Rst_Lista_Trabajo.BOF = False Then
Rst_Lista_Trabajo.MoveFirst
End If
Do Until Rst_Lista_Trabajo.EOF
Set Item = myform.ltv_lista_trabajo.ListItems.Add(Text:=Rst_Lista_Trabajo.Fields!IDENTIFICACION_CLIENTE)
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!NOMBRES_COMPLETO
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!ID_OPERACION '2
'Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!Entidad
'Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!Usuario
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!campana
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!SUB_CAMPANA
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!ESTADO_GESTION
Item.ListSubItems.Add Text:=IIf(IsNull(Rst_Lista_Trabajo.Fields!FECHA_PROXIMA_ACCION), "", Rst_Lista_Trabajo.Fields!FECHA_PROXIMA_ACCION)
Item.ListSubItems.Add Text:=FormatNumber(Rst_Lista_Trabajo.Fields!VALOR_DEUDA_EXIGIBLE)
Item.ListSubItems.Add Text:=Rst_Lista_Trabajo.Fields!Id_Entidad '9 ahora 8
num_registros = num_registros + 1
Rst_Lista_Trabajo.MoveNext
Loop
Cuando cargo el dato de VALOR_DEUDA_EXIGIBLE, se muestra como texto y no como número y al ordenarlo no funciona.
Como puedo hacer para que la columna tenga formato numerico?
Saludos,
Bryan Acosta P.
Valora esta pregunta


0