Hallo,
jetzt habe ich das Problem gelöst. Es funktioniert mit der normalen Master-Detail-Verbindung.
Folgende Komponenten konfiguriert:
Delphi-Quellcode:
...
MasterLookupBox.ListSource:= MasterSource;
DetailLookupBox.ListSource:= DetailSource;
MasterLookupBox.ListField:= '
ListFieldName'
DetailLookupBox.ListField:= '
ListFieldName';
MasterLookupBox.KeyField:= '
KeyName';
DetailLookupBox.KeyField:= '
KeyName';
...
procedure LookupBoxOnEnter(Sender: TObject);
begin
SetMasterDetail(TDBLookupComboBox(Sender));
end;
procedure SetMasterDetail(...)
begin
...
// Query der LookupBox
DetailQuery.DataSource:= MasterLookupBox.ListSource;
Tablename:= GetTableName;
KeyName:= MasterLookupBox.ListSource.KeyName;
DetailQuery:= GetQuery(TableName);
// Parameter einfügen
DetailQuery.Close;
DetailQuery.SQL.Clear;
DetailQuery.SQL.Add('
SELECT * ');
DetailQuery.SQL.Add('
FROM '+Tablename);
DetailQuery.SQL.Add('
WHERE '+KeyName+'
=:'+KeyName);
DetailQuery.Open;
end;
Das in Kurzform. Für weitere Fragen stehe ich gern zur Verfügung.
Woran es jetzt gelegen hat vermag ich nicht zu sagen. Wahrscheinlich lag es am Zeitpunkt des Setzens der Master-Detail-Beziehung. So geht es auf jeden Fall.
Nochmals Danke an alle.