Beitrag aus SmartTools Access Weekly
Access-Formular zur Bearbeitung oder Erfassung öffnen
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Ich habe ein Übersichtsformular mit einer Schaltfläche Bearbeiten, die mir per "DoCmd.OpenForm" ein Formular zur Bearbeitung des aktuellen Datensatzes öffnet. Ich möchte nun eine zweite Schaltfläche Erfassung einbauen, mit der das gleiche Formular, nur zur Erfassung neuer Datensätze geöffnet werden soll. Am Formular möchte ich aber keine Änderungen vornehmen, da es auch noch in anderen Bereichen eingesetzt wird.
H. Dreher
ANTWORT Wie sich das zu öffnende Formular verhält, können Sie über den Parameter "DataMode" bei "OpenForm" steuern:
DoCmd.OpenForm _
FormName:="Formularname", _
DataMode:=acFormAdd
"acFormAdd" öffnet das Formular "Formularname" so, dass nur neue Datensätze erfasst und bearbeitet werden können, der Zugriff auf andere, vorhandene Datensätze ist nicht möglich. Zur Bearbeitung öffnen Sie das Formular mit folgender Anweisung:
Dim strWhere As String
strWhere ="[PrimaryKey]=" & Me.PrimaryKey
DoCmd.OpenForm _
FormName:="Formularname", _
DataMode:=acFormPropertySettings, _
WhereCondition:= strWhere
In der Variablen "strWhere" wird zunächst ein Kriterium definiert, das den aktuellen Datensatz referenziert. "PrimaryKey" ersetzen Sie durch den Namen des Primarschlüssel-Feldes in Ihrem Formular. Handelt es sich dabei um ein Feld vom Datentyp "Text", sind einfache Hochkommas wie folgt zu verwenden:
strWhere ="[PrimaryKey]='" & Me.PrimaryKey & "'"
Dieses Kriterium wird über den Parameter "WhereCondition" an das Formular übergeben und sorgt dafür, dass nur der betreffende Datensatz angezeigt wird. Mit "DataMode:= acFormPropertySettings" legen Sie fest, dass die aktuellen Einstellungen des Formulars - zum Beispiel Bearbeiten und Hinzufügen - verwendet werden. Soll nur der vorhandene Datensatz bearbeitet und kein neuer angelegt werden können, verwenden Sie "DataMode:= acFormEdit".