Ovviamente se il numero di Oggetti inseriti in Collection è basso, si può aggiungere l'utilizzo della KEY che, nonostante renda la Collection più lenta nel Ciclo For...Each(in questi casi la considerazione è inutile avendo pochi Items), ne velocizza l'estrazione del singolo Item... se serve, ma serve ragionare sul come deve essere utilizzata.
In alcuni casi infatti è conveniente addirittura creare più collection, anche se con gli stessi Items, ed usare quella più adatta in relazione al tipo di esigenza, Velocità Estrazione/Ciclo.
Ad esempio, l'uso della KEY in questo caso avendo pochissimi Items potrebbe essere utile:
Option Compare Database
Option Explicit
Dim mCCombo As Collection
Private Sub Form_Load()
Set mCCombo = New Collection
With mCCombo
.Add Me!Combo1, Me!Combo1.Name
.Add Me!Combo2, Me!Combo2.Name
.Add Me!Combo3, Me!Combo3.Name
.Add Me!Combo4, Me!Combo4.Name
End With
End Sub
In questo caso l'estrazione dell'Item singolo è fattibile usando la KEY, quindi per recuperare l'oggetto chiamato "Combo1":
Set mCBO1 As Access.Combobox
Set mCBO1=mCCombo.Item("Combo1")
Senza usare la KEY avremmo dovuto cilare la collection così:
Dim mCbo As Access.Combo
For Each mCbo In mCCombo
If mCbo.Name="Combo1" then
...
End if
Next
Tutti questi ragionamenti sono estremamente importanti SOLO quando si gestiscono collection corpose con diverse centinaia di oggetti, o addirittura Collection di Classi gerarchiche, nelle quali i livelli di profondità sia a salire che a scendere amplificano i tempi di accesso nelle scansioni, e si deve ottenere una velocità di iterazione o di estrazione quanto più elevata possibile.
Quindi anche se può sembrare poco utile il tutto, se si supera questa specifica esigenza per la quale queste considerazioni sono veramente poco sensate avendo 4 Items, queste 2 particolarità della collection:
- Collection con KEY rapido accesso al singolo ITEM, ma minor velocità nel ciclo
- Collection senza KEY velocità di scansione ciclo
rendono questo oggetto estremamente importante ed importante è il loro modo di essere usate anche insieme quando si lavora con Classi e Collection molto voluminose.