Wenn du 30.000 Datensätze hast, dann darfst du den Initialisierungsvorgang für die Combo bzw. StringListe nicht vergessen. Ein Scrollen über einen Datensatz und ein anschliessendes Suchen in deiner 2. Datenmenge würde evtl. gleich schnell sein.
Du könntest beispielsweise über die Eigenschaft Values der Klasse TStringliste zugreifen und darüber die korr. Werte ermitteln.
ShowMessage('Der Wert für 4711=Test: '+Liste.Values['4711']);
Ich kann nicht beurteilen, woher die Werte für die ComboBox resp. die StringListe kommen. Wenn diese aus einer anderen Tabelle wie deine erste Tabelle kommen würden und der Grid ist nur zum blättern/scrollen verwendet, dann würde sich ein
Query anbieten mit einem Join von Tabelle1 zu Tabelle2 über die ID-Nummer:
Delphi-Quellcode:
[...]
// FQuery ist beispielsweise ein im Formular angegebener Query a la FQuery : TQuery;
// Dann könnte eine für die Initialisierung in etwa so aussehen
with FQuery
do begin
Close;
SQL.Clear;
SQL.Add('
Select Tabelle1.ID, Tabelle2.Personalname');
SQL.Add('
from Tabelle1');
SQL.Add('
join Tabelle2 on (Tabelle2.ID=Tabelle1.ID)');
// wenn es nicht notwendigerweise einen Personalnamen zum Hauptdatensatz gibt,
// diesen 2. Teil verwenden
// SQL.Add(' left join Tabelle2 on (Tabelle2.ID=Tabelle1.ID)');
try
Open;
except
// Eventuelles Fehlerhandling hier einbauen
end;
end;