Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Haupt- und Unterformular synchronisieren

Begonnen von Sebastian5, Oktober 08, 2025, 15:50:15

⏪ vorheriges - nächstes ⏩

Sebastian5

Hallo zusammen,

nach langer Zeit bin ich wieder dazu gekommen an meiner Datenbank zu arbeiten. Folgendes Problem konnte ich bisher nicht lösen:

Die Datenbank enthält eine Tabelle "tblAuftraggeber" deren Feld "Institution" seine Werte aus der Tabelle "tblInstitutionen" zieht. Nun habe ich ein Formular zur Dateneingabe erstellt. Die Quelle Des Hauptformulars ist tblAuftraggeber und die des zugehörigen Unterformulars tblInstitutionen. Im Hauptformular habe ich ein Listenfeld "Institution". Wenn hier in der Dropdownliste noch nicht der passende Wert vorhanden ist, soll im Unterformular ein neuer Datensatz angelegt werden.
Bis hier funktioniert alles.
Nur leider wird im Hauptformular nach speichern eines neuen Datensatzes des Unterformulars dieser im Listenfeld "Institution" nicht angezeigt. Den neu angelegten Datensatz kann ich erst auswählen, wenn das Hauptformular geschlossen und wieder geöffnet wurde. Diese Lösung ist jedoch etwas umständlich.

Kann mir hier jemand bitte weiterhelfen?

Viele Grüße Sebastian

Sorry, mir fällt gerade auf, dass dieser Beitrag eigentlich zum Thema "Formulare" gehört hätte! Hoffentlich findet ihr trotzdem eine Lösung.

werner budde

Ohne die genauen Umstände zu kennen:
Im Hauptformular nach Manipulation des Datenstandes:

me.Unterformular.form.requeryoder bzw. zusätzlich:
me.Unterformular.Listenfeld.requery
Achtung: Der Name Unterformular ist zu ersetzen durch den Namen des STEUERELEMNTES zum Ufo, nicht dem Namen des Ufos selbst
Gruß Werner

Sebastian5

Guten Morgen Werner,

vielen Dank für Deine schnelle Rückmeldung. Ich habe beide Codes ausprobiert und das Problem bleibt leider bestehen. Habe auch schon Lösungen aus ähnlichen Beiträgen des Forums ausprobiert, z.B."refresh" statt "requery" funktioniert auch nicht.

Gruß Sebastian

Knobbi38

Hallo Sebastian,

du möchtest ja eigentlich nicht das Hauptformulare synchronisieren, sondern die Listbox im HF. Dazu sind im zwei Schritte notwendig:
  • da sich die Datenbasis geändert hat, müssen die Daten neu in die Listbox geladen werden. Dafür kennt die Listbox die Methode Requery().
     
  • Anschließend möchtest du den neu erfassten Wert auswählen. Dieser neue Wert kann aus dem UF ausgelesen oder vom UF an das HF per Event übermittelt werden. Alternativ könnte man annehmen, dass der neu erfasste DS die höchste ID bekommen hat (was jetzt nicht so "sauber" ist). Diese könnte man mit DMax ermitteln und dann der Listbox zuweisen.
 
Da du sowieso einen Mechanismus finden mußt, das HF bzw. die Listbox zu aktualisieren, bietet sich eine Eventlösung an, wo du gleich die neu angelegte ID aus dem UF an das HF per Event mit übergibst.
Ein passendes Beispiel habe mal in diesem Thread hochgeladen:
https://www.access-o-mania.de/forum/index.php?topic=27927.0

Knobbi38

Sebastian5

Hallo Knobbi38,

danke für die guten Tipps. Ich werde mir Dein Beispiel mal sehr genau anschauen und Rückmeldung geben, ob es auch bei meinem Problem geholfen hat. Die nächsten Tage habe ich leider nur wenig Zeit für die Datenbank, kann daher bei einem Access-Neuling wie mir etwas dauern.

Gruß Sebastian