Hallo Wissende,
ich habe eine
Access-
DB, die aus mehreren Tabellen besteht. Meine sogenannte Haupttabelle heisst Medien.
Sie hat die Felder:
Index, Titel usw.
Die andere Tabelle heisst Filme
Sie unter anderem die Felder:
Index, MedienIndex, Titel, Sportart
Es gibt eine Beziehung zwischen beiden Tabellen - und zwar zwischen
Medien Feld(Index) und Filme Feld(MedienIndex)
Nun mein Problem. Der User muss in der MedienTabelle den Index neu vergeben. Dies klaptt ganz gut und so von mir realisiert.
Delphi-Quellcode:
DataModule1.ADOTable1.Edit;
DataModule1.ADOTable1.FieldByName('Index').Text:=ed_nr_ds.Text;
DataModule1.ADOTable1.FieldByName('Titel').Text:=ed_titel_ds.Text;
DataModule1.ADOTable1.Post;
Wenn ich nun auf das in dem
DB-Grid auf den geänderten Datensatz klicke, werden leider nicht mehr wie vorher in dem zweiten
DB-Grid die zum Medium gehörenden Filme angezeigt, zumindest nicht bei dem geänderten Medium. Starte ich das Programm neu, klappt es aber.
Muss ich nun nach jeder Änderung die Connection zur DB zurücksetzen und neu aufbauen, nur damit das funktioniert oder gibt es da eine einfachere Lösung?
Und wie kann ich nach dem Post, das geänderte Medium im DBGrid als aktuell setzen? Bisher habe ich das über die RecordNo gemacht. Da sich aber der index ändert, ändert sich auch die RecordNo.
Folgendes führe ich noch aus, wenn sich die MedienTabelle ändert...
Delphi-Quellcode:
if DataModule1.ADOTable1.RecordCount > 0 then
begin
DataModule1.ADOTable2.Filtered:=False;
DataModule1.ADOTable2.Filter:='MedienIndex ='+QuotedStr(DataModule1.ADOTable1.FieldByName('Index').AsString);
DataModule1.ADOTable2.Filtered:=True;
end;
Danke für nen Tipp...