Von VBA zu C#: Steuerelement-Ereignisse

Wer unter VBA Ereignisprozeduren für Formulare, Berichte oder Steuerelemente erstellen wollte, hatte es leicht: Einfach in der Ereigniseigenschaft den Wert [Ereignisprozedur] auswählen, auf die Schaltfläche mit den drei Punkten klicken und schon konnte man die vorgefertigte Prozedur mit Anweisungen füllen. In manchen Fällen war das Implementieren von Ereignissen schon komplizierter, aber immer noch schnell machbar. Unter C# bekommt man dies auch meist mit wenigen Klicks hin, aber die notwendigen Handgriffe unterscheiden sich doch deutlich von denen unter VBA. Dieser Artikel zeigt, wie Sie gängige Varianten von Ereignisprozeduren anlegen.

Unter einem Ereignis verstehen wir dabei etwas, das durch eine bestimmte Aktion ausgelöst wird. Unter Access steht dies meist in Zusammenhang mit einem Formular oder einem Steuerelement, zum Beispiel das Öffnen oder Schließen des Formulars, das Anklicken einer Schaltfläche oder das Ändern des Inhalts eines Textfeldes.

Für die Implementierung einer Prozedur, die beim Eintreten des Ereignisses ausgelöst wird, sind dann zwei Schritte nötig: Erstens haben wir die entsprechende Ereigniseigenschaft aus dem Eigenschaftsfenster herausgesucht und dort den Wert [Ereignisprozedur] ausgewählt (siehe Bild 1).

Anlegen einer Ereignisprozedur

Bild 1: Anlegen einer Ereignisprozedur

Zweitens haben wir durch einen Klick auf die Schaltfläche mit den drei Punkten neben dem Eigenschaftswert die leere Prozedur angelegt, die dann wie in Bild 2 aussieht – die Ereignisprozedur. Wenn wir hier eine Anweisung wie MsgBox “Test” einfügen, in die Formularansicht wechseln und die Schaltfläche betätigen, wurde die Prozedur wie gewünscht ausgewählt.

Eine neue Ereignisprozedur unter VBA/Access

Bild 2: Eine neue Ereignisprozedur unter VBA/Access

Hier gibt es eine implizite Vereinbarung: Diese besagt, dass die Definition der Ereignisprozedur bestimmten Regeln entsprechen muss. Die erste bezieht sich auf den Namen, der aus dem Steuerelementnamen (oder Formular-/Berichtsnamen), einem Unterstrich sowie der englischen Version der Ereignisbezeichnung bestehen muss, hier beispielsweise cmdText_Click. Da es jedes Ereignis für jedes Objekt/Steuer-element nur einmal gibt, funktioniert dies sehr gut und man braucht für die Ereigniseigenschaft nur den Wert [Ereignisprozedur] anzugeben statt etwa des Prozedurnamens.

Andersherum können Sie Ereignisprozeduren auch über den VBA-Editor anlegen. Dazu wählen Sie im linken Kombinationsfeld den Namen des Objekts aus, das Sie mit dem Ereignis ausstatten wollen, und im linken das entsprechende Ereignis. Der VBA-Editor legt dann sowohl die leere Ereignisprozedur an als auch den Eintrag in der entsprechenden Ereigniseigenschaft.

Fenster- und Steuerelementereignisse unter WPF

Unter WPF läuft es ähnlich ab. Für die folgenden Beispiele verwenden wir ein C#/WPF-Projekt namens Ereignisse. Um für eine Schaltfläche eine Ereignisprozedur zu implementieren, die beim Anklicken der Schaltfläche ausgelöst wird, erstellen Sie zunächst eine neue Schaltfläche, in diesem Fall direkt im Hauptfenster der Anwendung namens MainWindow.

Wir benennen die Schaltfläche um, indem wir das Attribut name des button-Objekts im XAML-Bereich mit dem gewünschten Namen versehen:

Access, SQL und Cloud Automation

Unser exklusives Angebot für Dich!

VB-Entwickler
12,50 € im Monat*

(Gilt für den Abschluss eines Jahres-Abonnements.)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →