codice:
    ' Così la chiave è il numero di matricola
    ' Devi essere sicuro che nella tabella non vi siano
    ' duplicati
    ' Per recuperare il numero di matricola ti basta 
    ' nMat = Coll_Matricole("" & <unnumerodimatricola>)
    ' Ma in questo caso non ha senso perchè cerchi quello
    ' che sai già. Se però nella collection salvi un oggetto
    ' allora ha senso perchè ricaveresti l'oggetto tramite :
    ' Set oOperaio =  Coll_Matricole("" & <unnumerodimatricola>)
    ' Hai una classe cOperaio, con le property Nome, Assunzione,
    ' Livello ...
    ' Sul tuo DB hai questi valori che ti estrai con la select
    ......  
    Dim oOperaio as cOperaio  
    Do While Not Rs.EOF
       Set oOperaio = Nothing
       Set oOperaio = New cOperaio
       With oOperaio
           .Nome = Rs(1)
           .Assunzione = Rs(2)
           .Livello = Rs(3)  
       End With 
       Coll_Matricole.Add oOperaio, "" & Rs(0)
    Loop

    ' ------- 
    ' ricerca
    ' --------
    Set oOperaio = Nothing
    Set oOperaio =  Coll_Matricole("" & <unnumerodimatricola>)
    If oOperaio Is Nothing Then ' Non c'è nella collection 
        ....
    Endi If



    ' Così la chiave è un valore sequenziale, e se ne può fare
    ' a meno. Quando ricerchi un elemento cicli sulla collection.
    Dim oOperaio as cOperaio  
    Do While Not Rs.EOF
       Set oOperaio = Nothing
       Set oOperaio = New cOperaio
       With oOperaio
           .Matricola = Rs(0)
           .Nome = Rs(1)
           .Assunzione = Rs(2)
           .Livello = Rs(3)  
       End With 
       Coll_Matricole.Add oOperaio, "matr" & Coll_Matricole.Count + 1 
       Rs(0).MoveNext  
    Loop

    ' ------- 
    ' ricerca
    ' --------
    For Each oOperaio In  Coll_Matricole
        If oOperaio.Matricola = <ilnumerodimatricolachecerchi> Then
            ....
            Exit For
        Endif
    Next oOperaio

Ciao,