Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Funktionen mit mehreren Rckgabewerten, Teil III

Im dritten Teil dieser Beitragsreihe erfahren Sie, wie Sie eine neue Variablenklasse fr die Rckgabe mehrere Werte mit einer Funktion verwenden. Die per Type-Anweisung deklarierte Klasse kann Variablen unterschiedlichsten Datentyps enthalten.

Funktionsergebnis per Variablenklasse

Die Vorgehensweise ist sehr einfach, wenn man sich einmal damit angefreundet hat, dass man statt einer Variablen beziehungsweise eines Arrays eher mit einer Art Objekt arbeitet, dessen einzelne Bestandteile wie Eigenschaften abgerufen werden knnen.

Angenommen, Sie mchten eine Funktion verwenden, um Vorname, Nachname und Geburtsdatum einer Person aus einer Personaltabelle ermitteln, die eine bestimmte Personal-ID hat. Dann deklarieren Sie zunchst die Variablenklasse zur Speicherung der gewnschten Eigenschaften:

Public Type Mitarbeiter

    Vorname As String

    Nachname As String

    Geburtsdatum As Date

End Type

Der Rckgabewert der folgenden Funktion hat nun genau diesen Typ, und auch die darin verwendete temporre Variable verwendet ihn:

Public Function MitarbeiterEinlesen(PersonalID As Integer) As Mitarbeiter

    Dim db As DAO.Database

    Dim rst As DAO.Recordset

    Dim MitarbeiterTemp As Mitarbeiter

    Set db = CurrentDb

    Set rst = db.OpenRecordset("SELECT * FROM Personal " _

        & "WHERE [Personal-Nr] = " & PersonalID, dbOpenDynaset)

    Do While Not rst.EOF

        MitarbeiterTemp.Vorname = rst!Vorname

        MitarbeiterTemp.Nachname = rst!Nachname

        MitarbeiterTemp.Geburtsdatum = rst!Geburtsdatum

        rst.MoveNext

    Loop

    rst.Close

    Set rst = Nothing

    Set db = Nothing

    MitarbeiterEinlesen = MitarbeiterTemp

End Function

Die Funktion erstellt eine Datensatzgruppe mit dem gewnschten Datensatz und weist den Eigenschaften der Variablen MitarbeiterTemp den Inhalt der Felder Vorname, Nachname und Geburtsdatum zu.

Die folgende Prozedur stellt ein einfaches Beispiel fr den Aufruf der Funktion und die Ausgabe des Ergebnisses dar:

Public Sub MitarbeiterAusgeben(PersonalID As Integer)

    Dim m As Mitarbeiter

    m = MitarbeiterEinlesen(PersonalID)

    Debug.Print m.Vorname, m.Nachname, m.Geburtsdatum

End Sub

 

© 2003-2015 André Minhorst Alle Rechte vorbehalten.