Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
RibbonX-Workshop / Multifunktionsleiste schnell erstellt
zurück: Filter im Hauptfrm für Unterformular weiter: Alternative Dateneingabe mit Popup-Formularen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
mumpel
Fortgeschrittener


Verfasst am:
14. Okt 2008, 14:23
Rufname: René
Wohnort: Lindau (B)

RibbonX-Workshop / Multifunktionsleiste schnell erstellt - RibbonX-Workshop / Multifunktionsleiste schnell erstellt

Nach oben
       Version: Office 2007

Hier eine Zusammenstellung des RibbonX-Workshops.

RibbonX - Teil 1 - Einführung
RibbonX - Teil 2 - Schaltflächen (button)
RibbonX - Teil 3 - Umschaltflächen (ToggleButton)
RibbonX - Teil 4 - Checkboxen
RibbonX - Teil 5 - Auswahl- und Kombinationsfelder
RibbonX - Teil 6 -Eingebaute Steuerelemente
RibbonX - Teil 7 - Eingabefeld (Editbox)
RibbonX - Teil 8 - Menü
RibbonX - Teil 9 - SplitButton
RibbonX - Teil 10 - Command, QAT, Officemenü anpassen
RibbonX - Teil 11 - DialogboxLauncher
RibbonX - Teil 12 - Elemente gruppieren
RibbonX - Teil 13 - Kontext-Registerkarten
RibbonX - Teil 14 - Vorhandene Tabs anpassen
RibbonX - Teil 15 - Quickinfo anpassen
RibbonX - Teil 16 - Gallerie
RibbonX - Teil 17 - RibbonX in Access
RibbonX - Teil 18 - Individuelle Schnellzugriffleiste


Zuletzt bearbeitet von mumpel am 06. Dez 2008, 14:00, insgesamt einmal bearbeitet
Willi Wipp
Moderator


Verfasst am:
14. Okt 2008, 22:31
Rufname:
Wohnort: Raum Wiesbaden


Re: RibbonX-Workshop Zusammenstellung (auch fuer Access ;-)) - Re: RibbonX-Workshop Zusammenstellung (auch fuer Access ;-))

Nach oben
       Version: Office 2007

Hi mumpel,

danke fuer die Zusammenstellung. Habe den Tiltel mal mit einer kleinen Anmerkung versehen Very Happy

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)


Zuletzt bearbeitet von Willi Wipp am 23. Dez 2009, 05:16, insgesamt einmal bearbeitet
FlyingFire
Im Profil kannst Du frei den Rang ändern


Verfasst am:
17. Okt 2008, 09:30
Rufname:
Wohnort: Nähe Koblenz

AW: RibbonX-Workshop Zusammenstellung (auch fuer Access ;-)) - AW: RibbonX-Workshop Zusammenstellung (auch fuer Access ;-))

Nach oben
       Version: Office 2007

Hey toll!!!!

Sowas hab ich schon lange gesucht Smile
Werd es mir auf jeden Fall anschauen Smile

LG

_________________
„Es ist ein großer Vorteil im Leben, die Fehler, aus denen man lernen kann, möglichst früh zu begehen.“

Winston Churchill
mumpel
Fortgeschrittener


Verfasst am:
13. Aug 2009, 19:22
Rufname: René
Wohnort: Lindau (B)

AW: RibbonX-Workshop Zusammenstellung (auch fuer Access ;-)) - AW: RibbonX-Workshop Zusammenstellung (auch fuer Access ;-))

Nach oben
       Version: Office 2007

Workshop erweitert. Dieser bezieht sich überwiegend auf Office 2010. Er wird in den nächsten Monaten nochmals erweitert werden.

Office 2010 - benutzerdefinierte Schnellzugriffleiste
Office 2010 - Dateien mit eigener MuFu
RibbonX - Office 2010 - Einführung
astern
Datenmodell-Missionar


Verfasst am:
22. Dez 2009, 21:33
Rufname: Andreas
Wohnort: Rastede

Multifunktionsleiste ('Ribbon') schnell erstellt - Multifunktionsleiste ('Ribbon') schnell erstellt

Nach oben
       Version: Office 2007

Hallo!
Ich möchte hier einmal einen Weg zur Erstellung einer eigenen Multifunktionsleiste (MFL; auch "Ribbon" genannt) darstellen. Dafür gibt es zugegebenermaßen bereits mehrere sehr gute Anleitungen (z.B. Ribbons (Multifunktionsleisten) von Access) - ich möchte es hier aber noch einmal "kochrezeptartig" für den eher unerfahrenen Anwender wiederholen.

ACHTUNG: Die MFL gibt es erst ab Access 2007! Alles Weitere funktioniert also nicht mit früheren Versionen!

Also: Was ist zu tun?

Erstens: Wir müssen die Struktur einer MFL (die darin enthaltenen Befehle und Befehlsgruppen) definieren und diese Definition irgendwo ablegen.

Zweitens: Wir müssen Access zeigen, wo die Definition liegt und Access dazu bewegen, diese Definition einzulesen.

Drittens: Wir müssen Access dazu bringen, die MFL auch anzuzeigen.

Viertens: Wir müssen programmieren, was beim Click eines Nutzers auf einen Befehl in der MFL passieren soll.

zu Erstens: Definition der MFL

Sieh Dir mal die MFL von Access an: Es gibt darin mehrere Register (z.B. "Start"), innerhalb eines Registers gibt es mehrere Gruppen (z.B. "Sortieren und Filtern") und innerhalb einer Gruppe gibt es mehrere Befehle (z.B. "Filtern"). Das nennt man einen "hierarchischen Aufbau": Ein A besteht aus mehreren B, ein B besteht aus mehreren C und ein C besteht wieder aus mehreren D. Diesen Aufbau einer MFL müssen wir jetzt in einer geeigneten Form beschreiben. Dafür bietet sich das Datenformat XML an ("eXtensible Markup Language"). Das hört sich gefährlich an - aber keine Angst! Das ist ganz einfach!
XML hat nur zwei grundlegende Eigenschaften:

(1) Der Name einer hierarchischen Ebene wird in sog. Tags eingeschlossen, das sind Begriffe in dreieckigen Klammern. <group label="Sortieren und Filtern">...</group> bedeutet zum Beispiel: Es gibt eine hierarchische Ebene "group" mit dem Namen "Sortieren und Filtern" (Das Tag mit dem Schrägstrich nach der öffnenden dreieckigen Klammer ist das sog. "Ende-Tag"!)
(2) Die Tags werden ineinander geschachtelt.
Code:
<group label="Sortieren und Filtern">
   <button label="Filtern"/>
   <button label="Auswahl"/>
   <button label="Erweitert"/>
</group> 
bedeutet: In der Gruppe "Sortieren und Filtern" gibt es drei Buttons mit den Beschriftungen "Filtern", "Auswahl" und "Erweitert". Auf unterster hierarchischer Ebene kann das Ende-Tag entfallen. Stattdessen schreibt man das Zeichen dafür (den Schrägstrich) gleich ans Ende des Beginn-Tags!

So einfach ist das! Versuchen wir jetzt einmal, die Registerkarte "Start" von Access zu beschreiben:
Code:
<tabs>
   <tab label="Start">
      <group label="Ansichten">
         <button label="Ansicht"/>     
      </group>
      <group label="Zwischenablage">
         <button label="Einfügen"/>     
         <button label="Ausschneiden"/>     
         <button label="Kopieren"/>     
         <button label="Format übertragen"/>           
      </group>
      <group label="Schriftart">
         ... usw.     
      </group>
      ... usw.
   </tab>
   <tab label="Erstellen">
      ... usw.
   </tab>
   ... usw.
</tabs>
Ein <tab> ist eine Registerkarte, eine <group> ist eine Gruppe von Befehlen auf der Registerkarte und ein <button> ist ein einzelner Befehl in einer Gruppe.
Alles klar? In derselben Form kannst Du jetzt Deine eigene MFL definieren. Du denkst Dir Namen für die tabs, die groups und die buttons aus und schreibst eine entsprechende XML-Datei. Die muss dann noch ein ganz klein wenig komplizierter sein, als das einfache Prinzipbeispiel, das ich gerade gebracht habe. Eine Vorlage dafür findest Du in der Beispieldatenbank, die ich am Ende dieses Postings zum Download anbiete.
Dort siehst Du auch, dass ein Tag noch weitere Informationen enthält - z.B. diese:
<button id="kunden" label="Kunden" onAction="OnButtonClick"/>
"id" = Name ("Identifier") des Buttons
"label" = Beschriftung des Buttons
"onAction" = Name des Befehls, der ausgeführt werden soll, wenn der Nutzer auf diesen Button clickt
"label" kennst Du schon - auf "id" und "onAction" kommen wir unter Viertens zurück!

Wo speichern wir jetzt die XML-Definition unserer MFL? Nun - Datenbanken speichern ihre Daten in Tabellen. Da bietet es sich an, auch die XML-Definition der MFL in einer Tabelle zu speichern! Wir legen also eine Tabelle MFL_DEFINITION an mit den Spalten mfl_id (Datentyp: Autowert), mfl_name (Datentyp: Text) und mfl_code (Datentyp: Memo). In der ersten (und einzigen) Zeile dieser Tabelle schreiben wir in die Spalte mfl_name: "eigene_MFL". In die Spalte mfl_code kopieren wir unsere XML-Datei hinein (bitte in der Beispieldatenbank ansehen!).

Damit haben wir Schritt 1 abgehakt: Wir haben unsere MFL definiert und die Definition so abgelegt, dass Access sie finden kann.

zu Zweitens: Laden der MFL

Dafür gibt es einen ganz bestimmten VBA-Befehl ("Application.LoadCustomUI") und wir müssen nur dafür sorgen, dass dieser Befehl beim Öffnen der Accessdatei ausgeführt wird. Deshalb schreiben wir zunächst ein kleines Programm:

- bei geöffneter Datenbank Alt-F11 drücken
- es öffnet sich das VBA-Fenster
- links (im sog. "Projekt-Explorer") mit der rechten Maustaste ganz oben auf den Namen der Datenbank clicken
- im sich öffnenden Kontextmenü "Einfügen -> Modul" wählen
- rechts (im Code-Fenster) folgendes eingeben:
Code:
Public Function eigene_MFL_laden()
    Application.LoadCustomUI "Eigene_MFL" _
                           , DLookup("mfl_code", "MFL_DEFINITION" _
                                   , "mfl_name='eigene_MFL'")
End Function
Jetzt müssen wir noch mit Hilfe des Autoexec-Makros dafür sorgen, dass diese Funktion beim Öffnen der Access-Datei automatisch ausgeführt wird:

- im Access-Fenster (NICHT im VBA-Fenster!): Erstellen / Andere / Makro
- es öffnet sich der Makro-Editor
- unter "Aktion" wählen wir "AusführenCode"
- Click in das Textfeld rechts neben "Funktionsname" (unten)
- Click auf den Button mit den drei Punkten
- es öffnet sich der Ausdrucks-Generator
- Doppelclick auf "Funktionen"
- Click auf den Namen der Access-Datei
- im mittleren unteren Fenster des Ausdrucks-Generator erscheinen die Namen der Module
- dort denjenigen auswählen, in dem unsere Funktion "eigene_MFL_laden" enthalten ist
- "eigene_MFL_laden" erscheint im rechten unteren Fenster des Ausdrucks-Generators
- Doppelclick auf "eigene_MFL_laden" und Click auf "Ok"
- der Ausdrucks-Generator schließt sich

- das Makro-Fenster schließen
- Speichern = Ja
- Name = "Autoexec"

Das war's! Jetzt wird die MFL bei Öffnen der Access-Datei automatisch geladen - aber noch nicht angezeigt!

Damit der Befehl "Application.LoadCustomUI" funktioniert, ist noch folgendes zu tun:

- im VBA-Fenster: Extras / Verweise
- das Verweis-Fenster öffnet sich
- herunterscrollen und den Eintrag "Microsoft Office 12.0 Object Library" suchen
- ein Häkchen davor setzen
- "OK" clicken
- nochmal: Extras / Verweise
- der Eintrag "Microsoft Office 12.0 Object Library" steht jetzt weiter oben
- den Eintrag anclicken (-> blauer Hintergrund)
- rechts neben der Liste ist ein Button mit einem Pfeil nach oben ("Priorität")
- diesen Button wiederholt clicken, bis der Eintrag "Microsoft Office 12.0 Object Library" nicht mehr weiter nach oben rückt
- "OK"

ACHTUNG:
Diese Einstellung ist in dem Access, das Du benutzt, evtl. noch nicht gemacht worden. Dann kommt auch eine Fehlermeldung, wenn Du meine Beispieldatenbank öffnest ("Fehler beim Kompilieren dieser Funktion."). Du musst dann auf "Alle Makros anhalten" clicken, die o.g. Einstellung für die "Microsoft Office 12.0 Object Library" vornehmen, Access beenden und neu starten. Danach sollte alles bestens funktionieren.

zu Drittens: Anzeigen der MFL

Jetzt musst Du die Access-Datei erst einmal schließen und wieder öffnen, damit die MFL geladen wird (was ja bekanntlich beim Öffnen der Datei geschieht!).
Anschließend:

- Click auf den Office-Button
- Access-Optionen / Aktuelle Datenbank / Name der Multifunktionsleiste (rechts, direkt unter dem dritten blauen Querbalken!)
- Wenn Du jetzt das Kombinationsfeld rechts daneben öffnest, erscheint darin "Eigene_MFL"
- Das wählen wir aus und clicken auf "Ok"
- Abschließend die Access-Datei nochmal schließen und wieder öffnen.

Traraaa! Die MFL wird angezeigt! Aber sie funktioniert noch nicht ... Darum ...

zu Viertens: Funktion der MFL

Wir kommen jetzt auf den Eintrag onAction="OnButtonClick" in unserer XML-Datei zurück. Damit ist gemeint: Wenn der Nutzer auf den Button clickt (="onAction"), führe das Programm "OnButtonClick" aus. Bestimmt hast Du Dich schon gewundert, warum bei ALLEN Clicks des Nutzers immer EIN UND DASSELBE Programm ausgeführt werden soll. Das kann doch nicht richtig sein!?
Doch, das geht! Jetzt kommt nämlich der dritte Eintrag id="kunde" ins Spiel! Daran wird unser Programm erkennen, WELCHER Button angeclickt wurde.
Wir wollen das Programm jetzt eingeben:

- bei geöffneter Datenbank Alt-F11 drücken
- es öffnet sich das VBA-Fenster
- links (im sog. "Projekt-Explorer") den Namen des Moduls anclicken, in den wir schon unter Zweitens unseren kleinen Dreizeiler geschrieben haben.
- rechts (im Code-Fenster) folgendes eingeben:
Code:
Sub OnButtonClick(control As IRibbonControl)
' ACHTUNG: Unter VBA / Extras / Verweise muss die
' Microsoft Office 12.0 Object Library aktiviert sein!!
    Select Case control.Id
      Case "hauptformular"
        DoCmd.OpenForm "frmHauptformular"
      Case "beenden"
        If MsgBox("Wollen Sie wirklich Ihre Arbeit beenden?", _
                  vbYesNo + vbDefaultButton2, "TRAXS") = vbYes Then DoCmd.Quit
      Case "kunden"
        DoCmd.OpenForm "frmKunden"
      Case "subunternehmer"
        DoCmd.OpenForm "frmSubunternehmer"
      Case "zugmaschinen"
        DoCmd.OpenForm "frmZugmaschinen"
    '...
      Case Else
        MsgBox "OnButtonClick: Unbekannter Formularname!"
    End Select
End Sub
Das bedeutet: "Sieh Dir den id-Wert an (Select Case control.id). Wenn darin "kunden" steht (Case "kunden") dann öffne das Formular "frmKunden" (DoCmd.OpenForm "frmKunden"), wenn darin "subunternehmer" steht (Case "subunternehmer") dann öffne das Formular "frmSubunternehmer" (DoCmd.OpenForm "frmSubunternehmer"), ... usw.
Für Deine eigene Access-Datenbank musst Du natürlich die label und die id's anders nennen - nämlich entsprechend den Formularen, die Du mit den Clicks in die MFL öffnen willst!

Das war's schon!
Sieh Dir das alles nochmal in meiner Beispieldatenbank an und dann:
Viel Erfolg beim Basteln Deiner ersten eigenen Multifunktionsleiste!!

MfG
A*

PS: Einen Wermutstropfen zum Schluss: Sollte die XML-Datei zur Beschreibung der MFL falsch geschrieben worden sein, so bringt Access keine Fehlermeldung! Es passiert einfach gar nichts! Du solltest daher mit einer definitiv funktionierenden XML-Datei beginnen (z.B. mit meiner) und diese schrittweise abändern, bis sie Deinen Bedürfnissen entspricht.

_________________
1. Access-Gebot: Du sollst lange und gründlich über Dein Datenmodell nachdenken!
2. Access-Gebot: Du sollst keine Formulare erstellen ohne gutes Datenmodell!



traxs-v09.zip
 Beschreibung:
Die Beispieldatenbank (2007er Format)

Download
 Dateiname:  traxs-v09.zip
 Dateigröße:  174.58 KB
 Heruntergeladen:  229 mal

mumpel
Fortgeschrittener


Verfasst am:
18. Jan 2012, 19:33
Rufname: René
Wohnort: Lindau (B)


AW: RibbonX-Workshop / Multifunktionsleiste schnell erstellt - AW: RibbonX-Workshop / Multifunktionsleiste schnell erstellt

Nach oben
       Version: Office 2007

Workshop erweitert. Offlineversion hinzugefügt.

RibbonX - Workshop - Offlineversion

_________________
Ich lade generell keine Beispieldateien herunter, die bei Filehostern abgelegt sind.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Formulare: Start Form öffnet zu schnell für Controls 4 Thomas30 92 06. Jun 2013, 10:04
Thomas30 Start Form öffnet zu schnell für Controls
Keine neuen Beiträge Access Programmierung / VBA: Navigationsleiste und Multifunktionsleiste ausblenden 5 FlyingFire 17181 19. Jan 2011, 13:58
Tom_hh Navigationsleiste und Multifunktionsleiste ausblenden
Keine neuen Beiträge Access Programmierung / VBA: HILFE!!! Access erstellt keine Steuerelemente mehr ... 3 Eddy Ed 288 30. Aug 2010, 12:26
DBKlempner HILFE!!! Access erstellt keine Steuerelemente mehr ...
Keine neuen Beiträge Access Programmierung / VBA: Tabelle gelöscht + neu erstellt, ODBC-String unverändert 10 sthm 805 26. Apr 2010, 17:24
sthm Tabelle gelöscht + neu erstellt, ODBC-String unverändert
Keine neuen Beiträge Access Programmierung / VBA: Text möglichst schnell in Array laden 1 NoobiNoob 490 26. März 2009, 20:20
steffen0815 Text möglichst schnell in Array laden
Keine neuen Beiträge Access Programmierung / VBA: Filter kann nicht über Code erstellt werden 2 Sepp10 286 12. Jan 2009, 20:55
Sepp10 Filter kann nicht über Code erstellt werden
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage erstellt neue Tabelle 1 twobe 400 19. Nov 2008, 18:26
JörgG Abfrage erstellt neue Tabelle
Keine neuen Beiträge Access Formulare: VBA Code erstellt in Access 2002 kompatibel zu Access 2007 5 benni_b 3028 05. Okt 2008, 21:03
derArb VBA Code erstellt in Access 2002 kompatibel zu Access 2007
Keine neuen Beiträge Access Programmierung / VBA: Suchformular in 10 Minuten erstellt Zeitintervall 0 Markus_Y 395 08. Sep 2008, 15:28
Markus_Y Suchformular in 10 Minuten erstellt Zeitintervall
Keine neuen Beiträge Access Tabellen & Abfragen: Änderungsabfrage Alle Daten schnell ändern? 2 Muschimaus 3748 30. Jul 2008, 10:33
Muschimaus Änderungsabfrage Alle Daten schnell ändern?
Keine neuen Beiträge Access Berichte: Psyeudo-Berichte werden erstellt 1 Zulu 904 16. Nov 2007, 01:02
KlausMz Psyeudo-Berichte werden erstellt
Keine neuen Beiträge Access Programmierung / VBA: will Anzahl Datensätze, jedoch txtanzahl zu schnell berechne 1 Lisa-Marie 791 30. Okt 2007, 10:03
PetraS will Anzahl Datensätze, jedoch txtanzahl zu schnell berechne
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Dreamweaver Forum