Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

12.3.1 Ein einfaches Ribbon

12.3.2 Schaltfläche mit Funktion versehen

Bisher löst ein Klick auf die Beispielschaltfläche noch keine Funktion aus, aber das holen Sie nun nach. Erweitern Sie die Definition des button-Elements aus dem obigen Ribbon-XML-Dokument wie folgt:

< button id="btnBeispielschaltflaeche" label="Beispielschaltfläche" onAction="Beispielfunktion" />

Das onAction-Attribut enthält den Aufruf einer öffentlichen VBA-Routine - eine so genannte Callback-Funktion -, die Sie in einem Standardmodul anlegen. Erstellen Sie also ein neues Standardmodul namens mdlRibbon und fügen Sie die folgende Routine hinzu:

Public Function Beispielfunktion(ctl As IRibbonControl)
    MsgBox "Sie haben eine Ribbon-Schaltfläche angeklickt."
End Function

Listing 12.2: Diese Routine wird beim Klick auf die passende Schaltfläche ausgelöst

Die Funktion soll schlicht und einfach ein Meldungsfenster anzeigen, um die einwandfreie Funktion des Aufrufs zu bestätigen. Um dies zu testen, müssen Sie die Datenbankanwendung erneut schließen und wieder öffnen und dann auf die neue Schaltfläche klicken.

Möglicherweise erscheint nun eine Meldung wie »Der von Ihnen eingegebene Ausdruck enthält den Namen einer Funktion, die von Microsoft Office Access nicht gefunden werden kann«. Das bedeutet nicht, dass Sie etwas falsch gemacht haben, allerdings liefert diese Meldung auch nicht unbedingt hilfreiche Informationen.

Vermutlich verbieten die aktuellen Sicherheitseinstellungen für diese Datenbankanwendung das Ausführen von VBA-Code, was Sie ganz einfach durch einen Aufruf der soeben angelegten Funktion im Direktfenster testen können. Die Meldung »Die Makros in diesem Projekt sind deaktiviert. Informationen zum Aktivieren der Makros finden Sie in der Onlinehilfe oder der Dokumentation der Host-Anwendung.« würde diese Annahme bestätigen; Sie sollten daher zunächst die Sicherheitseinstellungen anpassen. Weitere Informationen hierzu finden Sie in Kapitel 18, Abschnitt 18.4, »Vertrauensstellungscenter«.

Abbildung 12.7: Auswahl eines benutzerdefinierten Ribbons im Dialog Access-Optionen

Wenn die Sicherheitseinstellungen für die aktuelle Datenbank entsprechend einstellt sind, sollte nun das in der Funktion angegebene Meldungsfenster erscheinen und die Funktionstüchtigkeit Ihrer ersten selbst angelegten Ribbon-Schaltfläche bestätigen.

Angeklickte Schaltfläche ermitteln

Vielleicht möchten Sie ja alle Funktionen für Schaltflächen in einer einzigen Routine unterbringen. Eine Ribbon-Schaltfläche liefert alles Notwendige dazu - nämlich die Möglichkeit, einen Verweis auf die betätigte Schaltfläche an die aufgerufene Routine zu übergeben. Dazu müssen Sie im Ribbon-XML-Dokument gar nichts ändern, sondern nur die Zielfunktion. Diese sieht im einfachsten Fall so aus:

Public Function Beispielfunktion(ctl As IRibbonControl)
    MsgBox "Sie haben die Schaltfläche '" & ctl.Id & "' angeklickt."
End Function

Listing 12.3: Ausgeben des Namens der angeklickten Schaltfläche

Etwas strukturierter darf es dann doch sein, also fügen Sie ein Select Case-Konstrukt in die Routine ein:

Public Function Beispielfunktion(ctl As IRibbonControl)
    Select Case ctl.Id
        Case "btnBeispielschaltflaeche1"
            'tu was
        Case "btnBeispielschaltflaeche2"
            'tu was anderes
        Case Else
            MsgBox "Unbekannte Schaltfläche!"
    End Select
    MsgBox "Sie haben die Schaltfläche '" & ctl.Id & "' angeklickt."
End Function

Listing 12.4: Auswerten des aufrufenden Steuerelements in einer Select Case-Anweisung

Nächster Abschnitt:

12.4 Fehler in Ribbon-XML-Dokumenten erkennen

© 2006-2008 André Minhorst Alle Rechte vorbehalten.