VBA-Programmierung mit Klassen

Mit Klassen lässt es sich einfacher programmieren

Von: Lorenz Hölscher
Stand: 11. April 2011
4
(1)
Beitrag bewerten
Anmelden um Kommentare zu schreiben

Downloads zu diesem Beitrag

Über den Autor: Lorenz Hölscher

bild80517

Lorenz Hölscher ist freiberuflicher Dozent, Berater und Programmierer mit Schwerpunkt Anwendungs-Programmierung. Vorrangig widmet er sich Access, Word und Excel sowie begleitenden grafischen Arbeiten. Er legt viel Wert auf benutzerfreundliche Oberflächen und ordentliches Design in Optik und Programmierung. Zu Hilfe kommen ihm da seine langjährigen "branchenfremden" Erfahrungen als Architekt, Layouter und Designer.

Lorenz Hölscher bietet eigene Hilfeseiten an und hat bei Microsoft Press mehrere Bücher veröffentlicht zu Access 2007, Access 2007 VBA, Word 2007 VBA und Access 2010.

Beiträge des Autors als Atom-Feed Atom-Feed: Neues von akademie.de

Die Programmierung mit Klassen gilt als schwierig. Oft wird darauf ganz verzichtet, weil es auch irgendwie ohne geht. Das funktioniert zwar, aber es geht auch besser: Mit Klassen lässt es sich einfacher programmieren und so schwierig ist das im Grunde genommen gar nicht. Sie werden sehen, in der Klassenprogrammierung wird auch nur "mit Wasser gekocht".

Die Beispiele werden innerhalb einer Access-Datenbank ausgeführt. Sie funktionieren mit minimalen Änderungen auch in Word oder Excel.

Möchten Sie den ganzen Beitrag lesen?

Werden Sie Probemitglied - kostenlos.

Ohne finanzielles Risiko haben Sie Zugriff auf alle Inhalte auf akademie.de, außer Downloads. Die Anmeldung dauert drei Minuten. Sie können während der ersten 14 Tage ohne Angabe von Gründen stornieren. Eine E-Mail genügt.

Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.

Ich bin bereits Mitglied
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein

Beitrag bewerten

Ihre Wertung:

 

Kommentar-Darstellungsoptionen

Wählen Sie hier Ihre bevorzugte Anzeigeart für Kommentare aus und klicken Sie auf „Einstellungen speichern“ um die Änderungen zu übernehmen.

Hallo,

ich habe den Code von der clsPersons nicht gefunden

Bitte helfen Sie mir weiter.

Der Code von clsPersons (Plural!) steht direkt ohne Download auf http://www.akademie.de/direkt?pid=50805 und derjenige von clsPerson (Singular!) auf http://www.akademie.de/direkt?pid=50769 . Sie können ihn dort jeweils markieren und über die Zwischenablage in Ihre (Klassen-!)Module einfügen.

Mit freundlichen Grüßen, Lorenz Hölscher

Ich habe gehofft, dass ich bessere Informationen bekomme.
Doch leider weit gefehlt.
Wie muß ich die m_frm Variablen Modul Veröffentlichen.
"Beachten Sie vor allem, dass die beiden m_frm...-Variablen Modul-öffentlich sind."
Das Beispiel bring ich leider nicht zum Laufen.

Hallo,

es tut mir leid, wenn es nicht gut genug beschrieben war. Ich versuche es mal so:

Auf dem Testformular "frmMehrfachaufruf" der Seite http://www.akademie.de/direkt?pid=50808 müssen Sie lediglich eine Schaltfläche anlegen, deren BeimKlicken-Eigenschaft Sie auf [Ereignisprozedur] stellen und dann mit den drei Pünktchen rechts daneben in den Code wechseln. Damit haben Sie das erledigt, was im Text als "Damit das Formular als Klasse erkannt wird..." beschrieben ist. Eine echte Funktionalität braucht die Schaltfläche gar nicht.

Den folgenden Code aus dem Text müssen Sie in ein Standard-Modul kopieren, also gerade nicht in den Code, der zu einem Formular/Bericht gehört. Sie können im Datenbank-Fenster das Menü Einfügen/Modul aufrufen, das ist dann ein Standard-Modul. Wenn Sie den Code dort hinein kopieren, sind die beiden Variablen "m_frmEins" und "m_frmZwei" bereits Modul-öffentlich.

Fehlerhaft wäre jedoch der folgende Code:

Option Explicit

Sub Formularzwilling()
Dim m_frmEins As Form_frmMehrfachaufruf 'hier falsch!
Dim m_frmZwei As Form_frmMehrfachaufruf 'hier falsch!

Set m_frmEins = New Form_frmMehrfachaufruf
Set m_frmZwei = New Form_frmMehrfachaufruf

m_frmEins.Visible = True
m_frmZwei.Visible = True
End Sub

Dabei wären die beiden Variablen nicht öffentlich, sondern nur lokal deklariert und die Formulare sofort wieder verschwunden. Davor sollte die von Ihnen zitierte Bemerkung warnen.

Um das Beispiel zum Laufen zu bringen, stellen Sie den Cursor in diese Prozedur "Formularzwilling" und drücken die F5-Taste. Beachten Sie bitte die im Text folgende Anmerkung, dass diese Formulare nun deckungsgleich aufeinander liegen, so dass "gefühlt" nur ein Formular vorhanden ist.

Ich hoffe, dass Ihnen das so weiterhilft.

Mit freundlichen Grüßen,
Lorenz Hölscher