Ich lese schon einige Zeit mit und das Forum hier hat mir schon tausende Fragen beantwortet - Danke dafür

Heute steh ich aber an einem Punkt wo ich einfach festhänge.
Folgendes Projekt:
Auf einem simplen Form werden verschiedene Frames abgerufen (das funktioniert einwandfrei) und bei bedarf wieder geschlossen (auch das klappt). In einem Frame habe ich einen Datenbankeditor entwickelt. Dieser funktioniert soweit auch bis auf ein kleines Problem. Ich habe verschiedene DBEdit-Felder die von mir mit einem OpenDialog gefüttert werden (allerdings nur der Dateiname, diesen habe ich mit simplen Stringoperations aus "FileName" extrahiert (-> überprüft und passt!). Wird der neue Dateinamen in das DBEdit-Feld gefügt wird dieser dort auch angezeigt. Schließe ich die Datenbank ist er weg und der alte steht wieder drinnen. Ist ja auch logisch schließlich wurde die Datenbank nicht aktualisiert (zur Gegenprüfung habe ich ein anderes Feld von hand geändert und dann mit DBNavigator und "post" die Daten aktualisiert. Folgender Ansatz zur Lösung:
MainDatabase.edit
DBEdit1.Field.AsString:= xyfile;
MainDatabase.post
Daraus entsteht das Problem das "MainDatabase" nicht gefunden wird, ist ja auch logisch die liegt auf der MainForm. Gebe ich also MainForm.MainDatabase ein wird auch nichts gefunden muss ja schließlich vorher MainForm in der usesklausel unterbringen. Tuhe ich das schimpft der Compiler:
dbeditorframe.pas(9,61) Fatal: Circular unit reference between dbeditorframe and mainmenu
Mir ist auch klar was das bedeuted ich kann nicht beide miteinander verbinden - wie soll ich aber sonst auf meine Datenbank im Mainform zugreifen?
Für hilfe wäre ich sehr dankbar.
ps.: wenn einer manchmal weiß wie man den Patch für progressive jpeg's anwendet kann ers mich gern wissen lassen.
Gruß