?
Hallo Oliver,
woher kommen die Daten in der ListBox denn? Hast Du mal die Objekte überprüft? Ist bei denen jeder Name nur einmal vorhanden?
Was mir so auffällt, ist das Du jede Query und jede Verbindung neu erzeugst (und dann noch nicht mal wieder freigibst, sonder dass der App. überläßt). Du brauchst nur eine TADOConnection und eine TADOQuery. Bei der Query bräuchtest Du nicht mal den SQL zu ändern, wenn Du Parameter verwenden würdest. Diese beiden Änderungen verringern schon mal die potentiellen Fehlerquellen. Weiterhin findet keinlerlei Überprüfung statt, ob die Abfrage nur EIN Ergebnis, oder überhaupt eins liefert... Außerdem sollte bei Access-Dabenbank die CursorLocation auf clUseServer gesetzt werden (Standard dürfte clUseClient sein).
Weiterhin ist Access ein bißchen komisch, was den SQL-Code angeht (bilde ich mir zumindest ein). Das Semikolon am Ende ist m.E. überflüssig, statt dessen, solltest Du mal alles nach dem WHERE bis zum Ende der Zeile in Klammer setzen.