Kurz gesagt mit
TADOTable kannst du deine Aufgabe nicht erfüllen; du brauchst dazu unbedingt
TADOQuery (oder TAdoDataset).
Ausserdem solltest du
Grundkenntnisse in SQL haben und wissen wie man mit Parametern in
SQL-Abfragen arbeitet.
Wenn du nur eine einzige Rechnung haben möchtest, dann brauchst du dafür eine
SQL-Abfrage:
Delphi-Quellcode:
ADOQueryRechnung.close;
ADOQueryRechnung.SQL.Text := 'SELECT * FROM Rechnungen WHERE IdRechnung=:IdRechnung';
ADOQueryRechnung.Parameters.ParamValues['IdRechnung'] := '4711'; // die gewünschte Rechnungsnummer
ADOQueryRechnung.Open;
// jetzt enthält die Abfrage genau einen Datensatz (oder keinen, falls Rechnungsnr nicht vorh.)
Zu der Rechnung gibt es jetzt genau einen Kunden:
Delphi-Quellcode:
ADOQueryKunde.close;
ADOQueryKunde.SQL.Text := 'SELECT * FROM Kunden WHERE IdKunde=:IdKunde';
ADOQueryKunde.Parameters.ParamValues['IdKunde'] := ADOQueryRechnung['Kundennummer'];
ADOQueryKunde.Open;
// jetzt enthält die Abfrage 'ADOQueryKunde' genau einen Datensatz
Die Verknüpfung zwischen Rechnung und Kunde habe ich hier manuell im Code hergestellt.
Man kann das aber auch automatisch über das Property
DataSource in der Komponente TAdoQuery veranlassen.