Ordenar un datagrid

Sabinita
23 de Febrero del 2005
Hola a [email protected] Tengo un grid y lo vinculo a un recordset. Lo ordeno por fecha y hora (que son dos campos de la tabla) y me lo muestra en el grid. Una vez hecho esto, quiero poder añadir mas registros en el recordset dentro del grid, pero que no me lo este reordenando por fecha y hora porque se me va el cursor a otras filas. No se si me explique bien. Por favor, me urge alguna ayuda. Gracias de antemano

Alfonso
23 de Febrero del 2005
Mejor utiliza un Listview
Inicializa el Listview:

Sub INIlstDatAlmacen()
Dim clm As ColumnHeader
'Set lstDatAlmacen.Icons = imlPics
'Set lstDatAlmacen.SmallIcons = imlPics
'Set lstDatAlmacen.ColumnHeaderIcons = imlPics
lstDatAlmacen.ListItems.Clear
lstDatAlmacen.ColumnHeaders.Clear
lstDatAlmacen.View = lvwReport
Set clm = lstDatAlmacen.ColumnHeaders.Add(, , "Ref", 930, lvwColumnLeft, 0)
Set clm = lstDatAlmacen.ColumnHeaders.Add(, , "Fecha", 930, , 0)
Set clm = lstDatAlmacen.ColumnHeaders.Add(, , "Concepto", 4810, lvwColumnCenter, 0)
Set clm = lstDatAlmacen.ColumnHeaders.Add(, , "Familia", 1390, lvwColumnCenter, 0)
Set clm = lstDatAlmacen.ColumnHeaders.Add(, , "Unidad", 930, lvwColumnCenter, 0)
Set clm = lstDatAlmacen.ColumnHeaders.Add(, , "Sales", 930, lvwColumnCenter, 0)
Set clm = lstDatAlmacen.ColumnHeaders.Add(, , "Precio", 980, lvwColumnLeft, 0)
Set clm = lstDatAlmacen.ColumnHeaders.Add(, , "IDFabricante", 1700, , 0)
End Sub

Despues agrega datos a la tabla:

Private Sub RELLENOAlmacen(ByVal lRef As Long, ByVal dFecha As Date, _
ByVal lCantidad As Long, ByVal sConcepto As String, ByVal cPrecio As Currency, _
ByVal sFami As String, ByVal lIdFabri As Long, ByVal cSaldoCodigo As Currency, _
ByVal lPorcenVenta As Long)
On Error GoTo ERRLLENOAL
Screen.MousePointer = vbArrowHourglass
With TABLAalmacen
.AddNew
!ref = lstNumAlmacen.Text & lRef
!fecha = dFecha
!cantidad = lCantidad
!concepto = sConcepto
!precio = cPrecio
!familia = sFami
!idfabrica = lIdFabri
!costo = cSaldoCodigo
!porci = lPorcenVenta
!sales = "0"
If MsgBox("Desea agregar los datos", vbYesNo) = vbYes Then
.Update
.Bookmark = .LastModified
MsgBox MSG8, vbInformation
Else
.CancelUpdate
MsgBox "No se ha agregado ningún registro nuevo."
End If
End With
Screen.MousePointer = vbDefault
Exit Sub
ERRLLENOAL:
utilids.ErrorRunTime
Screen.MousePointer = vbDefault
End Sub

Seguidamente Mostrar datos en listview:

Sub DATOSalmacen(ByVal sSQL As String)
Dim intBucle As Integer
Dim listItemX As ListItem
lstDatAlmacen.ListItems.Clear
'Set BASECaja = OpenDatabase(App.Path & "caja.mdb", False, False, ";pwd=1234")
Set TABLAalmacen = BASECaja.OpenRecordset(sSQL, dbOpenDynaset)
Do Until TABLAalmacen.EOF
With TABLAalmacen
For intBucle = 0 To .Fields.Count - 1
If TABLAalmacen.EOF Then
Exit For
Else
Set listItemX = lstDatAlmacen.ListItems.Add(, , TABLAalmacen("ref"), , 0)
listItemX.SubItems(1) = TABLAalmacen("fecha")
listItemX.SubItems(2) = TABLAalmacen("concepto")
listItemX.SubItems(3) = TABLAalmacen("familia")
listItemX.SubItems(4) = TABLAalmacen("cantidad")
listItemX.SubItems(5) = TABLAalmacen("sales")
listItemX.SubItems(6) = TABLAalmacen("precio")
listItemX.SubItems(7) = TABLAalmacen("idfabrica")
End If
.MoveNext
Next intBucle
End With
Loop
End Sub