Dbgrid

Hola, mi problema es que tengo un agrill a ne la cual tengo que cargar unos datos de una base de datos, pero esta solo me muestra 10 filas, le envío el código para que lo revise
Private Sub DBGrid1_UnboundReadData(ByVal ObjetoFilas As RowBuffer, FilaDePartida As Variant, ByVal LeerFilasAnteriores As Boolean)
On Error GoTo Errores
Dim Incr As Integer
Dim FilaActual As Long
Dim Fila As Integer
'ObjetoFilas.RowCount = 231
If Cargar = 99 Then
If LeerFilasAnteriores Then
Incr = -1
Else
Incr = 1
End If
If IsNull(FilaDePartida) Then
If LeerFilasAnteriores Then
FilaActual = ObjetoFilas.RowCount - 1
Else
FilaActual = 0
End If
Else
FilaActual = CLng(FilaDePartida) + Incr
End If
Me.data_mat_grupo.RecordSource = "SELECT t_est.id i,t_est.cod c,t_est.nom n,t_est.apell a From T_est where id in( select estudiante_id from t_insc_gral where id in (select insc_gral_id from t_dt_insc_curso where curso_id = " & Id_curso & ")) order by c asc"
Me.data_mat_grupo.Refresh
Fila = 0
While Not data_mat_grupo.Recordset.EOF
ObjetoFilas.Value(Fila, 0) = data_mat_grupo.Recordset!i
ObjetoFilas.Value(Fila, 1) = data_mat_grupo.Recordset!c
ObjetoFilas.Value(Fila, 2) = data_mat_grupo.Recordset!N & " " & data_mat_grupo.Recordset!a
data_mat_grupo.Recordset.MoveNext
'ObjetoFilas.RowCount = FilaActual
ObjetoFilas.Bookmark(FilaActual) = CStr(FilaActual)
FilaActual = FilaActual + Incr
Fila = Fila + 1
Wend
ObjetoFilas.RowCount = Fila
Exit Sub
End If
Errores:
GErrores Me, Err.Number, Err.Description
End Sub
Ademas, me muestra los datos en orden descendente. Como puedo hacer para recorrer cada posición de la grilla a partir de un acolumna determinada.
Gracias por la información.
Desde colombia Hozkar.
Respuesta
Por lo que puedo ver, hay un cruce con FilaActual y Incr. Se me hace que cuando Incr es negativo, la fila actual no cambia el valor o lo cambia para menos, lo cual hace que a partir de determinado registro se cargue el grid hacia atrás, reemplazando los registros ya leídos.
Revisa eso y me comentas

1 respuesta más de otro experto

Respuesta
El nombre de la tabla siempre es el mismo o varía, según me acuerdo debe de ser el mismo, T_est, ya sea la primera letra en minúscula o mayúscula, después, el ordenamiento lo debes de hacer por el campo de la tabla no por la referencia que le estas indicando. Por último, no comentas de que tipo de base de datos hablas ni método de conexión, ADO, o DAO, supongo que es ADO, para esto yo haría la consulta directa a la base de datos y después recorrería el recordset de datos para colocar el resultado en el control.
e-mail: [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas