Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Optiplex am November 12, 2010, 14:51:21

Titel: Argumente beim öffnen eines Formulars übergeben
Beitrag von: Optiplex am November 12, 2010, 14:51:21
Hallo zusammen,
bei dem Formular Open Commando kann man doch Argumente mit übergeben, wie funktioniert das genau? Kann man auch mehrere Argumente übergeben und wie fragt man diese beim Öffnen des Formulars ab?

Danke und Gruß Dieter
Titel: Re: Argumente beim öffnen eines Formulars übergeben
Beitrag von: Shai am November 12, 2010, 15:10:11
Im aufrufenden Formular:

Dim stDocName As String
Dim stOpenArgs as String

stDocName = "frmTest"
stOpenArgs = "Wert1, Wert2"
DoCmd.OpenForm stDocName,acNormal, , , , , , stOpenArgs


im aufgerufenen Formular

Private Sub Form_Open(Cancel As Integer)
    Dim strOpenArgs as string
    Dim strWert1 as string
    Dim strWert2 as string
    Dim intPos as integer

    If Me.OpenArgs > "" Then
        strOpenArgs = Me.OpenArgs
        intPos = Instr(1,strOpenArgs,",",,vbTextCompare)
        ' Wert1 vor dem Komma
        ' Wert2 nach dem Komma
        strWert1 = left$(stOpenArgs, intpos -1)
        strWert2 = right$(strOpenArgs,len(strOpenArgs) - intPos -1)
   End If
End Sub


Die Werte werden in einer einzigen Variable übergeben, der Typ ist String.
Im aufgerufenen Formular kann man diesen Übergabestring aus Me.OpenArgs wieder entnehmen und ggf. auseinanderpflücken.
Titel: Re: Argumente beim öffnen eines Formulars übergeben
Beitrag von: Optiplex am November 13, 2010, 07:40:21
Danke Shai,
das heißt ich kann eigentlich so viele Argumente übergeben wie ich brauche, ich muss nur darauf Achten, dass Sie in einem String sind und ich die einzelnen Argumente durch ein Zeichen trenne damit ich diese wieder Splitten kann.

Danke auch für dein Codebeispiel.

Gruß Dieter