Bonjour,

Je dois initialiser une combox à partir des enregistrements contenuent dans une table (80 000 enregistrements :/ ) . Mon code fonctionne mais alors c'est HYPER long a charger, sachant que j'appel souvent le procédure pour remplir ces listes box, j'aimerais avoir vottre avis sur mon code (optimiser la rapdité de traitement) ou alors si vous connaissez une ptite astuce pour charger cette box le plus vite possible..

Merci,

MA sub :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
 
Public Sub InitCmbPiece(Frm As Form)
 
        Call OpenCnx
        cmd.ActiveConnection = cnx
        rs.CursorLocation = adUseClient
        rs.CursorType = adOpenForwardOnly
        rs.LockType = adLockOptimistic
 
        sql = "Select * "
        sql = sql & "From T_PIECE "
        sql = sql & "ORDER BY idPiece"
 
        cmd.CommandText = sql
        rs.Open cmd
 
        If rs.RecordCount <> 0 Then
            rs.MoveFirst
            Frm.cmbPiece.Clear
            'Boucle qui remplit
            While Not rs.EOF
                Frm.cmbPiece.AddItem rs.Fields!idPiece
                rs.MoveNext
            Wend
 
        End If
 
        rs.Close
        Set cmd = Nothing
        Set cnx = Nothing
 
        Call CloseCnx