Lege dazu alle Querys ... in ein Datenmodul. Auf dieses kannst Du dann von beiden Units aus zugreifen.
Gehen wir davon aus, dass Du über Unit1, Unit2 und Unit3 verfügst.
Unit1 und Unit2 hast Du bereits. Unit3 wird das DataModule1 enthalten.
Sowohl in Unit1, als auch in Unit2 musst Du Unit3 in die Uses-Klausel einfügen.
Nun könntest Du aus Unit2 die
Query sinngemäß im DataModule1 in dieser Form ansprechen:
Datamodule1.Query.SQL.Text := 'Ergebnis Deiner Zusammenstellung des SQLs.';
In Unit1 könntest Du diese
Query dann in der Art ansprechen:
Datamodule1.Query.Open;
Der DataSource im in Unit1, die mit dem DBGrid verbunden ist, müsstest Du bereits im Objektinspektor die
Query aus dem DataModule1 zuweisen können. Im Quelltext könnte das so gehen:
DataSource1.DataSet := DataModule1.Query;
Allerdings könntest Du beim Schließen der Suchmaske in etwa auch so vorgehen.
(Nur hingedaddelt und ungetestet)
Delphi-Quellcode:
procedure Form2.Button1Click(Sender : TObject);
begin
Datamodule1.Query.Close;
Datamodule1.Query.SQL.Text := 'Ergebnis Deiner Zusammenstellung des SQLs.';
Datamodule1.Query.Open;
Close;
end;
Damit musst Du dann nicht in beiden Formularen 'ne
Query vorhalten und Dich in beiden Formularen um die Handhabung der Abfragen kümmern.