News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

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".