Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Aufruf Formular mit fallabhängiger Datensatzneuanlage

Begonnen von Luang Prabang, Mai 24, 2016, 11:53:40

⏪ vorheriges - nächstes ⏩

Luang Prabang

Guten Tag,

aus einem bestehenden Formular möchte ich per Schaltfläche ein zweites Formular aufrufen. Die den beiden Formularen zu Grunde liegenden Tabellen sind über eine 1 zu 1 Beziehung verbunden. Ich habe bei der Erstellung der Schaltfläche die Formularoperation "Formular öffnen" ausgewählt und im Anschluss "Das Formular öffnen und bestimmte Daten suchen und anzeigen". Im Dialog bez. der übereinstimmenden Felder habe ich Primärschlüssel von Tabelle 1 dem entsprechenden Fremdschlüsselfeld in Tabelle 2 zugeordnet. Soweit so gut, sofern zu einem Datensatz in Tabelle 1 (=Formular 1) ein entsprechender DS in Tabelle 2 existiert wird dieser angezeigt. Ist dies jedoch nicht der Fall soll das zweite Formular (=Tabelle 2) für den Datensatz aus Formular 1 automatisch einen neuen Datensatz anlegen. Bis jetzt bekomme ich eine leere Maske und ich muss den richtigen Datensatz (Primärschlüssel) manuell raussuchen und eintragen. Was kann man tun?

Viele Grüße
Klaus

MaggieMay

Hallo,

es gibt verschiedene Möglichkeiten, zum einen könntest du die ID beim Öffnen von Formular-2 als OpenArgs-Parameter übergeben, oder du holst die ID aus dem weiterhin geöffneten Formular-1. Auslösendes Ereignis könnte in beiden Fällen das Formularereignis "Beim Anzeigen" sein. Über die Formulareigenschaft "NewRecord" kannst du prüfen, ob du auf einem neuen, leeren Datensatz stehst und entsprechend aktiv werden.

Beispiel:
Private Sub Form_Current()
    If Me.NewRecord Then
        Me.ID = Me.OpenArgs
        ' oder
        Me.ID = Forms!Formular1!ID
    End If
End Sub


Anstelle von ID setzt du natürlich die passenden Feldnamen ein.
Freundliche Grüße
MaggieMay

Luang Prabang

Hallo MaggieMay,

die Variante mit ID aus Formular 1 holen hat prima funktioniert. Vielen Dank fuer die schnelle Hilfe. Wo bzw wie wuerde man OpenArgs definieren, in der Schaltflaeche oder in Formular 2? Die Schaltflaeche ist Stand heute ein Makro.

LG
Klaus

MaggieMay

Beim Öffnen des Formulars mit dem VBA-Befehl OpenForm können diverse Parameter mitgegeben werden, u.a. auch die sogen. "OpenArgs". Genaue Syntax siehe Access-Hilfe.
Freundliche Grüße
MaggieMay


Beaker s.a.

Hallo,
Wozu das Ganze?
Wenn du eine 1:1 Beziehung hast, kannst du Form1 doch gleich an eine
Abfrage über die beiden Tabellen binden, oder Tabelle2 als UFo darstellen.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)