RSS
StartseiteKnowledge LibraryTop 10Impressum

2.22 Wie stelle ich fest, ob ein Key in einer Collection vorhanden ist?

VB5-VB6

Von: Thorsten Dörfler

Auflistungen begegnen einem bei der täglichen Arbeit mit Visual Basic ständig. Sei es beim ListView, TreeView oder bei Verwendung von benutzerdefinierten Auflistungen mit Hilfe des Collection-Objekts. Einträge legt man in diesen Auflistungen nach Möglichkeit mit einem eindeutigen Schlüssel (Key) ab, um so auf einen bestimmten Eintrag jederzeit schnell zugreifen zu können.

Aber keine dieser Auflistungen bietet eine Exists-Methode an, mit der sich überprüfen ließe, ob ein bestimmter Schlüssel bereits vergeben wurde. Man kann nur sein Glück versuchen und einen eventuell auftretenden Fehler abfangen. Dieses Vorgehen ist auch Basis für folgende universelle Funktion, die angibt, ob ein Schlüssel bereits in einer beliebigen Auflistung vorhanden ist:

Public Function KeyExists(ByRef Collection As Object, _
                          ByRef Key As Variant)
  Dim lDummy As Long

  On Error Resume Next
  lDummy = VarType(Collection.Item(Key))

  KeyExists = CBool(Err.Number = 0)

  Err.Clear
End Function
Beispiel: Collection-Objekt
Dim lCol As Collection
Set lCol = New Collection
  
lCol.Add "Hallo Welt", "HW"
  
Debug.Print KeyExists(lCol, "HW")
Beispiel: ListView ListItems-Auflistung
ListView1.ListItems.Add , "Item1", "Eintrag 1"
  
Debug.Print KeyExists(ListView1.ListItems, "Item1")