Öffnungsinfos via Argumente (Access 97, 2000)

Veröffentlicht am 30.12.2003

In vielen Fällen ist es erforderlich, einem Formular beim Öffnen bestimmte Informationen zu übergeben.
So kann es bei einem Adressenformular beispielsweise erforderlich sein, direkt nach dem Öffnen einen bestimmten Adressendatensatz oder den neuen leeren Datensatz anzuzeigen. Ein einfacher Weg ist hierbei die Verwendung globaler Variablen, die vor dem Öffnen mit Werten (z.B. der Nummer der anzuzeigenden Adresse) versehen werden. Innerhalb der BeimÖffnen-Ereignisprozedur des Formulars können diese Variableninhalte nun ausgewertet werden.

Eine bessere Möglichkeit zur Übergabe von Informationen an Formulare stellen die so genannten Öffnungsargumente zur Verfügung.

Der Nachteil dieser Vorgehensweise ist allerdings, dass Sie das Formular zwecks Wiederverwendung nicht ohne weiteres in eine andere Datenbank kopieren können. Hierbei müssen Sie nämlich darauf achten, daß Sie die Definition der globalen Variablen ebenfalls kopieren.

Die OpenForm-Aktion besitzt einen Parameter mit dem Namen OpenArgs, mit dessen Hilfe dem zu öffnenden Formular Daten in Form eines Variant-Ausdrucks übergeben werden können.

Der folgende Ausdruck übergibt dem Formular Adressen beispielsweise die Adressennummer 3:

DoCmd.OpenForm FormName:="Adressen", OpenArgs:=3

Innerhalb der BeimÖffnen-Ereignisprozedur des Adressenformulars kann das Öffnungsargument nun ausgewertet werden. Zu diesem Zweck stellen alle Formulare die Eigenschaft OpenArgs zur Verfügung, die den Zugriff auf die übergebenen Daten erlaubt.

Die folgende Prozedur liest die Datensatznummer aus dem Öffnungsargument aus und positioniert den aktuellen Datensatz auf die passende Adresse:

Private Sub Form_Open(Cancel As Integer) 
'Wenn kein Öffnungsargument angegeben wurde, 
'soll das Formular normal geöffnet werden 
    If Not IsNull(Me.OpenArgs) Then
Select Case Me.OpenArgs Case "Neu" 
'Auf den neuen Datensatz positionieren 
DoCmd.GoToRecord Record:=acNewRec 
Case Else 
'Primärschlüsselfeld aktivieren 
Me!AdresseNr.SetFocus 
'Nach Adressennummer suchen 
DoCmd.FindRecord Me.OpenArgs 
End Select 
    End If 
End Sub

Sollte das Öffnungsargument den Text Neu enthalten, positioniert die Prozedur automatisch auf den neuen Datensatz. 

Obwohl der Datentyp des Öffnungsarguments Variant ist, können einem Formular keine Informationen in Form eines Variant-Arrays übergeben werden. 

Wenn Sie trotzdem mehrere Informationen übergeben möchten, müssen Sie diese hintereinander in der OpenArgs-Zeichenkette anordnen, beispielsweise mit einem Hochkomma als Trennzeichen, und nachher wieder voneinander trennen.

Unsere Dienstleistungen

Als starker Partner an Ihrer Seite unterstützen wir Sie in folgenden Breichen:

Access-Programmierung

Benötigen Sie Unterstützung bei der Programmierung von Access-Anwendungen? Wir bieten die gesamte Bandbreite von der Access-Programmierung auf Stundenbasis bis zur Durchführung eines Software-Projektes als Auftragsarbeit an. Kontaktieren Sie uns für ein kostenloses Erstgespräch.

JETZT KONTAKTIEREN

Software-Beratung

Haben Sie ein Software-Projekt und Sie wissen nicht, ob Access die richtige Plattform ist? Wir haben über 20 Jahre Erfahrung beim Erstellen von Windows-, Web und mobilen Anwendungen. Kontaktieren Sie uns für eine kostenlose Erstberatung.

JETZT KONTAKTIEREN