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.9.1 Dynamisches Aktualisieren des Ribbons

12.9.2 Beispiel: Abhängige Kontrollkästchen

Die beiden Kontrollkästchen des folgenden Beispiels für die InvalidateControl-Methode sollen eine Abhängigkeit aufweisen, bei der das zweite Kontrollkästchen bei markiertem ersten Kontrollkästchen aktiv ist und umgekehrt (siehe Abbildung 12.37).

Abbildung 12.37: Das untere Kontrollkästchen ist aktiviert, wenn das obere Kontrollkästchen markiert ist und umgekehrt

Dazu ist zunächst eine passende XML-Definition des Ribbons erforderlich:

onLoad="OnLoad">

    
          visible="true">
                label="Abhängige Kontrollkästchen">
        

         onAction="chk1_OnAction" getPressed="chk1_GetPressed"/>
                  getEnabled="chk2_GetEnabled"/>
        
    
    

Listing 12.31: Ribbon-XML-Dokument für abhängige Kombinationsfelder

Zunächst muss das customUI-Element die Ereigniseigenschaft onLoad aufweisen und damit die Routine aus folgendem Listing aufrufen.

Sub OnLoad(ribbon As IRibbonUI)
    Set objRibbon = ribbon
    boolChk1 = True
End Sub

Listing 12.32: Setzen eines Objektverweises auf das Ribbon

Die beiden dort gefüllten Variablen objRibbon zum Speichern eines Verweises auf das Ribbon sowie boolChk1 zum Speichern des Anfangswerts des ersten Kontrollkästchens legen Sie der Einfachheit halber als öffentliche Variablen an:

Public objRibbon As IRibbonUI
Public boolChk1 As Boolean

Beim Anlegen des Ribbons ruft Access auch sämtliche in get...-Attributen angegebenen Routinen auf.

Hier sorgt ein getPressed-Attribut dafür, dem ersten Kontrollkästchen den in der Variablen boolChk1 gespeicherten Wert zuzuweisen und ein getEnabled-Attribut aktiviert oder deaktiviert das zweite Kontrollkästchen je nach dem Inhalt von boolChk1:

Sub chk1_GetPressed(control As IRibbonControl, ByRef pressed)
    pressed = boolChk1
End Sub

Listing 12.33: Diese Routine setzt in Abhängigkeit von boolChk1 einen Haken in das erste Kontrollkästchen

Sub chk2_GetEnabled(control As IRibbonControl, ByRef enabled)
    enabled = boolChk1
End Sub

Listing 12.34: Aktivieren oder deaktivieren des zweiten Kontrollkästchens in Abhängigkeit von boolChk1

Schließlich fehlt noch ein wenig Aktion - und dafür sorgt die Routine, die beim Anklicken des ersten Kontrollkästchens ausgelöst wird. Sie sorgt dafür, dass boolChk1 den Wert des ersten Kontrollkästchens erhält und das zweite Kontrollkästchen aktualisiert wird - indem es mit der Methode InvalidateControl für den erneuten Aufruf der Methode GetEnabled sorgt.

Sub chk1_OnAction(control As IRibbonControl, pressed As Boolean)
    boolChk1 = pressed
    objRibbon.InvalidateControl "chk2"
End Sub

Listing 12.35: Beim Klick auf das erste Kontrollkästchen werden der Inhalt von boolChk1 und das Steuerelement chk2 aktualisiert

Wenn Sie diese Technik verwenden, müssen Sie sicherstellen, dass die Objektvariable objRibbon ihren Inhalt nie verliert. Das kann aber der Fall sein, sobald es an beliebiger Stelle des VBA-Projekts zu einem unbehandelten Fehler kommt. Folglich müssen Sie den VBA-Code Ihrer Anwendung für einen reibungslosen Betrieb mit objRibbon komplett mit Fehlerbehandlungen ausstatten.

Nächster Abschnitt:

12.10 Menü- und Symbolleisten aus bestehenden Access 2003-Anwendungen

© 2006-2008 André Minhorst Alle Rechte vorbehalten.