Visual Basic - COMBOS Y LISTAS

Life is soft - evento anual de software empresarial
 
Vista:

COMBOS Y LISTAS

Publicado por isma (96 intervenciones) el 10/02/2003 08:56:21
Hola, quizá sea una consulta tonta pero por si acaso yo la hago. Cuando hago una select a una tabla y con los registros devueltos lleno un combobox o un listbox. En este proceso de llenar el combo o la lista tarda mucho, ¿hay alguna forma de minimizar este tiempo o es algo que no tiene arreglo?
GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:COMBOS Y LISTAS

Publicado por Flake (20 intervenciones) el 10/02/2003 18:58:34
Habria que ver como haces el proceso de llenado,podria optimizarse
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMBOS Y LISTAS

Publicado por ISMA (96 intervenciones) el 11/02/2003 10:14:25
Hola Flake, el proceso consiste en hacer una select a una tabla y con los registros recogidos llamar a una función general que está en un módulo para llenar el combo o lista. Ej.:

Private Sub sub_LlenarComboEstado()
Dim rsComboEstado As ADODB.Recordset
Dim lngRegistros As Long

strSql = "SELECT DISTINCT TES_DESESTIN, TES_CODESTIN "
strSql = strSql & "FROM ZSALESTADOLLA "
strSql = strSql & "ORDER BY TES_DESESTIN"

Set rsComboEstado = New ADODB.Recordset
rsComboEstado.CursorLocation = adUseClient
rsComboEstado.Open strSql, cntDbSAL, , adLockOptimistic, adCmdText
lngRegistros = rsComboEstado.RecordCount

Call Mod_ControlFichas.sub_LlenarComboGeneral(cmbRegEstado, rsComboEstado, lngRegistros, False, enComboVacio)
End Sub

-Función general-
Public Sub sub_LlenarComboGeneral(cmbCombo As ComboBox, rsCombo As ADODB.Recordset, lngReg As Long, blnFicha As Boolean, encComboFicha As enuCombo)
Dim lngIndice As Long

cmbCombo.Clear ' Vaciar la combo siempre antes de llenarla
For lngIndice = 0 To lngReg - 1
cmbCombo.AddItem (Trim(rsCombo.Fields(0))) ' Se muestra la descripción
cmbCombo.ItemData(cmbCombo.ListCount - 1) = Trim(rsCombo.Fields(1)) ' Se guarda el código para las búsquedas
rsCombo.MoveNext
DoEvents
Next
rsCombo.Close
Set rsCombo = Nothing
cmbCombo.ListIndex = -1
End Sub

Si se te ocurre algo para optimizarlo sería una gran ayuda.
GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar