Cargar formularios rápidamente vb6

Tengo un formulario que carga en un combobox un listado extenso de descripciones de productos, la llamada a la función la inicializo al momento de cargar el formulario, pero este se tarda algo de tiempo en mostrar el formulario, el combobox se carga con unos 1000 item, y quisiera saber si hay forma de acelerar la carga o si hay manera de que haga la carga de manera oculta para acelerar los procesos
Saludes

1 respuesta

Respuesta
1
Por lo general suelo hacerlo así:
Private Sub Form_Load()
Dim I As Integer
For I = 0 To 1000
   Combo1. AddItem tu_variable
DoEvents
Next
End Sub
En este caso tu_variable es el item a cargar, 1000 items es una cantidad muy baja para que se demore, ¿en mi caso es inmediato
como estas cargando el combo?
Gracias por tu respuesta, la forma en que yo hago la carga del combo es:
Public Sub CargarCombo()
Dim rs As ADODB.Recordset
Dim R As ADODB.Recordset
Dim t As ADODB.Recordset
If nc.State = adStateOpen Then
Set rs = nc.Execute("SELECT des_art from articulos order by des_art", dbOpenDynaset)
Set t = nc.Execute("SELECT descripcion from tarjetas ", dbOpenDynaset)
 Do While Not rs.EOF
 Set R = nc.Execute("SELECT * from articulos WHERE des_art='" & rs!des_art & "'", dbOpenDynaset)
  If R!exibicion < 1 Or IsNull(R!exibicion) = True Then
 rs.MoveNext
 Else
      Form_Detalle_Ventas.CmbDescripcion.AddItem rs.Fields(0)  'Primer campo
     rs.MoveNext
    End If
Loop
Do While Not t.EOF
Form_Detalle_Ventas.CmbDescripcion.AddItem t.Fields(0) 'Segundo Campo
t.MoveNext
Loop
End If
End Sub
Si observas estoy cargando datos de dos tablas distntas, los item son alrededor de 1600, y se tarda entre 5 y 7 segundos en mostrar el form, aun cuando solo carga 2 item, no se si debo cambiar la forma de abrir del recordset,
gracias
El código esta bien, es perfectamente funcional, ¿chequeaste la extensión de los campos utilizados en tabla?, me explico...
Por lo general al diseñar una base de datos, en algunas ocasiones se comete el error de asignar a un campo un largo mayor al largo máximo promedio de la cadena que alojara, por ejemplo para la tabla artículos la extensión de el campo des_art puede que sea de 255 caracteres, en función de que los datos alojados en ese campo sean no mayores a 100 por consigueinte si ese fuera el caso, y atendiendo al volumen de registros que deseas recuperar en el recordset, las consultas serian más lentas, creo que la lentitud no obecede al proceso de añadir datos al combo, cre que el retardo se puede dar en el recordset y no por la forma en que lo ejecutas, si no más bien, por lo antes ya expuesto.
Si un campo por de una tabla cualquiera esta diseñada para 200 caracteres y solo aloja una cadena de 80 caracteres, al realizar la consulta sql sobre esa tabla el recordset trendra la extensión de 200 carcateres y no 80 ( los 120 de diferencia serian para la consulta solom espacios vacíos).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas