Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Luang Prabang am Mai 24, 2016, 11:53:40

Titel: Aufruf Formular mit fallabhängiger Datensatzneuanlage
Beitrag von: Luang Prabang am Mai 24, 2016, 11:53:40
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
Titel: Re: Aufruf Formular mit fallabhängiger Datensatzneuanlage
Beitrag von: MaggieMay am Mai 24, 2016, 13:04:54
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.
Titel: Re: Aufruf Formular mit fallabhängiger Datensatzneuanlage
Beitrag von: Luang Prabang am Mai 24, 2016, 14:45:00
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
Titel: Re: Aufruf Formular mit fallabhängiger Datensatzneuanlage
Beitrag von: MaggieMay am Mai 24, 2016, 14:51:55
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.
Titel: Re: Aufruf Formular mit fallabhängiger Datensatzneuanlage
Beitrag von: Luang Prabang am Mai 24, 2016, 15:03:06
OK. Vielen Dank.  ;)
Titel: Re: Aufruf Formular mit fallabhängiger Datensatzneuanlage
Beitrag von: Beaker s.a. am Mai 25, 2016, 10:55:48
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