| |
|
Was ist ein Klassenmodul und was habe ich darunter
zu verstehen? |
| Kurzinfo: |
 |
Erklärung und Definition eines Klassenmoduls |
| Access-Version(en): |
|
Access 97, 2000 und XP |
| Autor: |
 |
Manuela Kulpa |
| Homepage: |
 |
http://www.kulpa-online.de |
|
| | | | 
|
Auf der AP-Access-Tools Vol.1 finden Sie weitere 320
Tipps & Tricks sowie 250 Access-Beispiel/Anwendungen mit offenen Quellcode!
Die Access-Tools-CD mit über 400 MByte Inhalt - für Access- und VB-Entwickler
256 Access-Beispiele mit offenem Code
45 Add-Ins und ActiveX-Komponenten (Freeware)
16 VB-Projekt inkl. Source
321 Tipps & Tricks für Access und VB
Plus 11 Entwicklerversionen (9 davon mit Source!)
Plus 3 Vollversionen und
Plus riesiger Datenpool
Holen Sie sich jetzt Ihre AP-Access-Tools-CD zum Superpreis von nur EUR 24,95! | | | | |
|
Eine Klasse ist eine Definition für ein Objekt. Sie enthält Informationen dazu, wie sich ein Objekt verhalten sollte, einschließlich des Namens, der Methode, Eigenschaften und Ereignisse. Sie ist eigentlich nicht selbst ein Objekt, da sie nicht im Speicher vorhanden ist. Wenn Codeanweisungen durchgeführt werden, die sich auf eine Klasse beziehen, wird eine neue Instanz der Klasse, ein Objekt, im Speicher erstellt. Obwohl es nur eine Klasse gibt, können mehrere Objekte desselben Typs durch diese Klasse im Speicher erstellt werden.
Du kannst dir eine Klasse wie ein Objekt auf dem Papier vorstellen,
d.h. es liefert die Blaupause für ein Objekt, ist allerdings im
Speicher selbst nicht vorhanden. Du kannst mit dieser Blaupause
beliebig viele Objekte erstellen. Eine hilfreiche Analogie besteht
vielleicht darin, eine Klasse mit einer Ausstechform und die Objekte
mit Keksen zu vergleichen. Jeder Keks kann geringfügig abweichende
Merkmale haben, aber für alle wurde dieselbe Ausstechform verwendet.
Ähnlich wird auch jedes Objekt aus einer Klasse erstellt, die dieselben
Elemente aufweist: Eigenschaften, Methoden und Ereignisse. Aber
jedes Objekt verhält sich wie eine eigenständige Einheit. Die Eigenschaften
eines Objektes können z.B. auf andere Werte festgelegt sein als
die eines anderen Objekts vom selben Typ.
Ein VBA-Projekt kann zwei verschiedene Arten von Klassenmodule enthalten:
Basisklassenmodule, denen keine Benutzeroberfläche zugeordnet
sind, und Klassenmodule, die zu einem Formular oder einer anderen
Komponente gehören. Klassenmodule, die z.B. einem Formular zugeordnet
sind, das einem Basisklassenmodul entspricht, setzten voraus, dass
sie nur dann im Speicher existieren, wenn auch das Formular im Speicher
vorhanden ist. Beispiele für Objekte, die Klassenmodulen zugeordnet
sind, sind Access-Formular und Berichte.
Ein kleines Beispiel:
| Code: | ' Beispiel: MeineKlasse.cls
' MeineEigenschaft ist für Werte geeignet
Private Eigenschaft
' Eigenschaft lesen
Property Get MeineEigenschaft()
MeineEigenschaft = Eigenschaft
End Property
' Eigenschaft verändern
Property Let MeineEigenschaft(Einstellung)
Eigenschaft = Einstellung
End Property
' ShowCopyright-Methode
Public Sub ShowCopyright()
Dim s As String
s = "Beispielklasse: MeineKlasse" & Chr$(13) _
& "Copyright Lisa Meyer - 2003"
MsgBox s, vbInformation, "Info"
End Sub
|
Aufruf z.B. in einem Modul
| Code: | Public Sub TestEigenschaft()
' MeineKlasse initialisieren
Dim c As New MeineKlasse
' Aufruf von Let MeineEigenschaft
c.MeineEigenschaft = 3
' Aufruf von Get MeineEigenschaft
MsgBox "Du hast folgendes angegeben: " & c.MeineEigenschaft
' Aufruf ShowCopyright-Methode
c.ShowCopyright
' MeineKlasse zerstören
If Not c Is Nothing Then Set c = Nothing
End Sub
|
Ok, das Beispiel ist nicht unbedingt sehr anspruchsvoll - es zeigt aber eines der Grundprinzipien einer Klasse, die Nutzung von Eigenschaften (Properties) und Methoden.
Ein weiterer Unterschied zu normalen Modulen sind die Eigenschaften
Private Sub Class_Initialize() und
Private Sub Class_Terminate(). Sobald eine Klassenvariable
initialisiert wird, erfolgt automatisch der Aufruf von Class_Initialize.
Wird diese Referenz wieder "zerstört" (z.B. durch Set c = Nothing),
erfolgt automatisch der Aufruf von Class_Terminate.
Es gibt sicherlich Unmengen von Beispielen zu diesem Thema - ich empfehle
daher einen Blick in die Microsoft Access Visual Basic Referenz-Onlinehilfe:
Stichwort Klassenmodule bzw. den erweiterten Zugriff auf die
MSDN, z.B. MSDN
- Microsoft Office XP Developer - What Is a Class?.
Copyright 2000-2003 Microsys
Kramer– Alle Rechte vorbehalten - Der Download von Tipps und
Programmen von den Seiten www.access-paradies.de erfolgt auf eigene
Gefahr. Microsys Kramer haftet nicht für Schäden, die
aus der Installation oder der Nutzung von Tipps oder Software aus
dem Download-Bereich erfolgen. Trotz aktueller Virenprüfung
ist eine Haftung für Schäden und Beeinträchtigungen
durch Computerviren ausgeschlossen. Schadenersatzansprüche,
aus welchem Rechtsgrund auch immer, sind ausgeschlossen, wenn Microsys
Kramer nicht Vorsatz oder grobe Fahrlässigkeit zu vertreten
hat. Dies gilt auch für Ansprüche auf Ersatz von Folgeschäden
wie Datenverlust. |