Quella di caricare i combobox con i dati di un DB è una prassi che evito il più possibile, la uso solo se sono pochissimi dati per combo (15-20).Originariamente inviato da Folcus
In un form ho alcune combobox che si riempiono all'avvio del form stesso...solo che questa procedura ci impiega circa 1minuto...e non mi piace proprio l'idea di lanciare il form e dover aspettare perchè si apra. Avevo pensato ad un evento temporizzato. Ossia, dopo 5secondi da quando è attivo il form parte il riempimento delle combobox. Penso con il comando Timer, ma non so proprio come si il codice.
oppure, c'è un modo per fare il riempimento delle combo in background? mantenendo finchè non è finito la combobox non attiva...
Considerando poi che raramente i dati nei combobox sono utilizzati tutti, o tutti insieme.
E se ci impiega un minuto, allora sicuramente è un implementazione da rivedere, troppo tempo.
A parte questo, puoi tentare di 'alleviare' un po' il caricamento caricando prima il form, mostrandolo e poi caricare i combo.
Devi mettere il codice di caricamento in una routine Public del form:
Quando devi caricare il form fai cosìcodice:Public Sub CaricaCombo() Rem ---------------------------- Rem codice che popola i combo Rem ---------------------------- End Sub
Ricorda anche di aprire i recordset indicando solo il comando SQL e la connessione:codice:Dim fDati As frmDati Set fDati = New frmDati Load fDati With fDati .Show .Enabled = False ' per evitare che l'utente smanetti .CaricaCombo .Enabled = True Set fDati = Nothing End Wiht
Questo è il modo più veloce di ottenre i dati.codice:rs.Open sStringaSQL, CN
Però io rimango dell'idea che va riveduta l'implementazione
Ciao![]()

Rispondi quotando