August 17, 2022, 16:37:25

Neuigkeiten:

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


Eingabeformular für zwei Tabellen mit Stolperstein

Begonnen von Mero, April 29, 2022, 03:35:35

⏪ vorheriges - nächstes ⏩

Mero

Hallo zusammen,

in einer Tabelle (tblHaus) haben wir Informationen über Häuser inkl. PLZ und Ort. In einer zweiten Tabelle (tblStrHNr) stehen Strasse und Hausnummer. Die Trennung der Informationen war notwendig, da einige Häuser mehrere Straßen und Hausnummern haben.

Im alten Eingabeformular hab ich die neuen Daten über SQL Insert in eine Tabelle geschrieben.

Jetzt bastel ich an einem neuen Eingabeformular und komm nicht weiter.

Ich hab ein Formular erstellt, in dem sich zwei Unterformaulare für die Tabellen befinden.

Problem hier:
Ich gebe die Daten im ersten Unterformular für die Hausstammdaten ein. Wenn ich jetzt ins andere Unterformualar (für Straße/NHr) wechsle, werden die eingegebenen Daten des ersten Formulars in die Tabelle geschrieben, ein neuer Primärkey wird erstellt.

Man kann jetzt also den Vorgang jetzt nicht mehr abbrechen. Das kann dann notwendig sein, wenn es sich um eine Doppeleingabe handelt (was erst beim Eingeben der Staße/HNR ersichtlich wird).

Frage:
Wie gekomme ich das Formular dazu, erst dann die Daten zu schreiben, wenn alle Eingaben gemacht sind? Oder anderst formuliert: Wie verhindere ich beim Wechseln ins zweite Formular das Schreiben der Daten des ersten Formulars?

Falls ich auf SQL ausweichen muss sehe ich die Hürde mit dem Key. Beim Schreiben der Straße und Hausnummer in die zweite Tabelle wird der gerade in der ersten Tabelle erstelle Key benötigt.

Seltsamerweise habe ich zu diesem Thema nichts im Netz gefunden. Muss wohl die falschen Suchbegriffe  benutzt haben.

Ich hoffe auf euren Input.

Viele Grüße

ebs17

Deine Formularkonstruktion ist unlogisch und komplizierend.
Verwende ein (Haupt)Formular für die Primärtabelle (tblHaus) und ein eingebettetes Unterformular für die Sekundärtabelle, Schlüssel verknüpfen.
Mit freundlichem Glück Auf!

Eberhard

Mero

Hallo Eberhard,

das hab ich natürlich auch versucht, da werden ebenfalls die Daten in die Tabelle geschrieben, sobald ich ins Unterformualr wechsle.

Wie gesagt, mir geht es darum, dass die Daten erst geschrieben werden, wenn der Check für Doppeleinträge gelaufen ist und der Speichern-Button gedrückt wird.

VG Stefan

MzKlMu

Hallo,
ZitatIch gebe die Daten im ersten Unterformular für die Hausstammdaten ein.
Für die Hausstammdaten braucht es doch kein Ufo. Das gehört in ein Hauptformular. Und dort prüft man im Formularereignis "Vor Aktualisierung" auf Doppelungen. Das Ereignis kann dann abgebrochen werden (Cancel=True). Damit wird das Hafo erst gar nicht verlassen und man kann bei einer Doppeleingabe erst gar nicht ins Ufo wechseln
Gruß
Klaus

Mero

April 29, 2022, 15:32:47 #4 Letzte Bearbeitung: April 29, 2022, 15:39:31 von Mero Grund: was vergessen
Hallo Klaus,

der Doppel-Check kann erst laufen, wenn wenigstens eine Straße und Hausnummer eingegben sind.

Mit Hfo und Ufo hab ich natürlich zuerst gemacht. Bei der Aktion mit zwei Ufos wollte ich sehen, ob sich die Formulare genauso verhalten und wollte noch checken, wie man zwei Ufos miteinander synchronisiert.

VG Stefan

Beaker s.a.

Hallo,
Also HFo/UFo halte ich bei einer 1:n/n:m-Beziehung schon für den richtigen
Ansatz.
Das Problem ist die Pflichteingabe eines DS im UFo. Das kann man im HFo
Before_Update nicht validieren.
Ich hatte das Problem bei einer Artikelverwaltung, wo zwingend mind. ein
Lieferant zugeordnet werden musste. Meine Lösung war dann ein ungebundenes
Eingabeformular. Da kann ich alle notwendigen Prüfungen auf die Felder
beider (oder sogar weiterer) Tabellen durchführen und per INSERT speichern.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

Mero

Hallo Ekkehard,

siehe letzten Teil meines Eingangsposts.
SQL INSERT muss man ja dann zweimal aufrufen, einmal für das Hfo und dann für das Ufo. Wie gebe ich nun dem Ufo den gerade erstellten Key mit auf den Weg?
Meine Idee ist, nach dem letzten Key mit "Max" zu suchen.

Hast du einen besseren Weg?

Gruß Stefan