Objektorientiertes Programmieren mit Klassen

Werbung
Access-Know-how
Objektorientiertes Programmieren mit Klassen
Objektorientiertes Programmieren mit Klassen
André Minhorst, Duisburg
VBA wird im Allgemeinen die Eigenschaft abgesprochen, eine objektorientierte Programmiersprache zu sein. Um diese Aussage zu untersuchen,
müsste man erst einmal festlegen, ab wann eine
Sprache objektorientiert ist und welche Eigenschaften für diese Bezeichnung vorhanden sein
müssen. Lässt man einmal außen vor, dass Vererbung und Polymorphie im VBA-Sprachgebrauch
Inhalt
1
2
3
4
Eingebaute Objekttypen in Access.........202
Eigene Objekttypen – warum? .................202
Klassenmodule ...............................................203
Datenzugriff kapseln per
Klassenmodul .................................................208
5 Formulare als Objektoberfläche...............210
6 Zusammenfassung und Ausblick..............212
Fremdwörter sind, kann man VBA sicher als objektorientierte Sprache auffassen. Wie auch immer – im vorliegenden Beitrag erfahren Sie, wie Sie sich die
objektorientierten Eigenschaften von VBA zu Nutze machen.
1
Eingebaute Objekttypen in
Access
Wer mit Access arbeitet und dabei VBA für die
Entwicklung von Datenbankanwendungen verwendet, kann vermutlich mit Objekten verschiedenen Typs umgehen – wenn er auch vielleicht
noch nie einen eigenen Objekttyp erstellt hat.
Sicher hat jeder schon einmal ein Recordset via
VBA geöffnet und auf die darin enthaltenen
Public Sub OpenRecordset()
Methoden wie Open, MoveNext, AddNew, Update oder Close zugegriffen oder Informationen
aus Eigenschaften wie RecordCount, EOF oder
Filter verwendet. Beispiele dafür zeigt die Routine aus Quellcode 1, die eine auf der Tabelle
tblKontakte basierende Datensatzgruppe öffnet
und den Inhalt der einzelnen Datensätze ausgibt.
Mit diesem Code erzeugt man unter anderem
eine Instanz des Objekttyps Recordset, legt einige seiner Eigenschaften wie beispielsweise die
Datenherkunft und die zugrunde liegende Verbindung fest und greift anschließend auf die so verfügbar
gemachten Daten zu.
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "tblKontakte", cnn, adOpenKeyset, _
adLockPessimistic
Do While Not rst.EOF
Debug.Print rst!KontaktID, rst!Vorname, _
rst!Nachname
rst.MoveNext
Eine weitere, ganz offensichtliche Objektart ist beispielsweise
ein Formular – wie für ein
Objekt üblich, verfügt es über
Methoden, Eigenschaften und
Ereignisse. Ein Formularobjekt
kann wiederum Steuerelemente enthalten, die ebenfalls
Objekttypen repräsentieren.
Loop
rst.Close
Set rst = Nothing
Set cnn = Nothing
End Sub
Quellcode 1
202
Access, SQL & .NET
2
Eigene Objekttypen
– warum?
Mit den in Access vorhandenen
Objekttypen lässt sich jede
computer.haufe.de
Herunterladen