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
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.
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
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.
OK. Vielen Dank. ;)
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