VB6-MSHFlexGrid. Problema al rellenar (2048 registros)

Estoy programando en VB6 una consulta a la BD creada en Access 97 mediante ADO. Asignando a la propiedad RecordSet o a DataSource del MSHFlexGrid, obtengo igual resultado: Siendo una consulta de 4653 registros (verificado mediante inspección: el RecordSet está completo), sólo se cargan los primeros 2048. Esto lo he probado en diferentes PC con diferente hardware y con diferentes consultas SQL (que arrojan más de 3000 registros y menor cantidad de campos). El resultado es siempre el mismo y, dicho sea de paso, es curioso que el número sea 2048 siempre.
Parte del código es:
'******************
SentenciaSQL = "SELECT * FROM [Presupuestos] ORDER BY [pr_N_OFERTA] DESC"
Set recSet = New ADODB.Recordset
recSet.Open SentenciaSQL, cnn, adOpenStatic, adLockReadOnly
Set frmConsulta.MSHFlexGrid1.DataSource = recSet
'******************
No probé rellenar el MSHFlexGrid mediante un loop porque es algo que prefiero evitar en la esperanza de que exista otra solución.

1 Respuesta

Respuesta
1
Lo cierto es que yo no recuerdo que ese control tenga ese limite de registros por ninguna razón, pero lo que yo haría seria que no mostrar en la grilla los 3000 registros si no los que se ven en la pantalla y hacer algún método de paginación de tal manera que siempre solo muestro los registros que se ven en la pantalla.
Ya he considerado esa solución, pero la he descartado porque la idea final no es sólo la visualización en pantalla de los registros, sino también poder exportarlos a Excel para que a partir de ellos el usuario haga lo que le dé la gana (gráficos, estadísticas, informes, etc.)
La parte Excel del programa ya está solucionada.
La intención no es presentar TODOS los registros de la BD, aunque sí mostrar todos los registros de un año determinado. Como se trata de una BD de presupuestos, es posible que en un año se generen más de 2048 registros, y es por ese motivo que quiero darle solución a este tema.
La cuestión de la paginación creo es la más acertada, con respecto a enviar esa información a un excel no le veo el problema, tu no vas a enviar los 0 que están en pantalla si no todo el recordset de acuerdo a tus parámetros de filtrado de la información.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas