Deseo ordenar una tabla hecha en foxpro2.6 desde un control data en visualbasic6.0, pues no usar la propiedad sort de este control.
1 Respuesta
Respuesta de scmendieta
0
0
scmendieta, Cargos: Diseñador de portales web, Empresa tecnosoluciones,...
Bueno en realidad esta propiedad no pertenece directamente al control data si no al objeto recordet asociado al data control. Para que podas utilizar esta propiedad del objeto recordset tienes que especificar en las propiedades del data control, en la propiedad recordsetType = Dynaset, ya que la propiedad sort trabaja solo para recordet de tipo Dynaset O SnapShot. A continuación te doy el código de ejemplo que podes utilizar. Una aclaración los datos en la tabla no están ordenados, se ordenan al aplicar la propiedad sort en el recordset. Option Explicit Private db As Database Private rstalec As Recordset Private Sub SalidaOrdenar(strTemp As String, _ rstTemp As Recordset) With rstTemp Debug.Print strTemp Debug.Print " Ordenar = " & _ IIf(.Sort <> "", .Sort, "[Vacío]") .MoveFirst ' Enumera el Recordset. Do While Not .EOF Debug.Print " " & !NUMEROABON .MoveNext Loop End With End Sub Private Sub cmdnew_Click() Data1.Recordset.AddNew End Sub Private Sub Command1_Click() Dim rstClasificarEmpleados As Recordset With Data1.Recordset SalidaOrdenar "Recordset original:", Data1.Recordset .Sort = "NUMEROABON" ' Imprime un informe mostrando la propiedad Sort y el orden de los registros. SalidaOrdenar _ "Recordset después de modificar la propiedad Sort:", _ Data1. Recordset ' Abre un Recordset nuevo a partir del actual. Set rstClasificarEmpleados = .OpenRecordset ' Imprime un informe que muestra la propiedad Sort y el orden de los registros. SalidaOrdenar "Recordset nuevo:", rstClasificarEmpleados RstClasificarEmpleados. Close .Close End With End Sub Private Sub Form_Activate() Data1.Recordset.Sort = "NUMEROABON" Set Data2.Recordset = Data1.Recordset End Sub Private Sub Form_Load() 'Set db = OpenDatabase("C:\Mis documentos\codigo fuente\vb\manejo de tablas dbf", False, False, "dBASE III;") 'Set rstalec = db.OpenRecordset("prueba.DBF", dbOpenDynaset) MsgBox "Motor jET" & DBEngine.Version End Sub Si quieres alguna explicación extra, seguimos en contacto.