FAQ (Access 2007/2010/2013)
|
Nur Access 2010/2013 - FAQ |
Öffen Sie den Dialog "Symbolleiste für den
Schnellzugriff anpassen" .Sie dieses über den "Office Button" / Button
"Access Optionen" / "Anpassen".
In
dem Dialog wählen Sie unter "Befehle auswählen" den gewünschten Bereich
und fahren mit der Maus über den gewünschten Befehl. In dem Tooltip der
darufhin erscheint sehen Sie in Klammern die entsprechende idMSO für
den Befehl und für das zugeordnete Icon.
In der 3. Beispieldatenbank
finden Sie in Tab "IconGallerie" in der Group "Office Icons" alle
möglichen "Icons" die verwendet werden können. Mit einem Klick auf ein
gewünschtes Icon aus dieser Group öffnet sich ein Formular in dem Sie
die "imageMso" herauskopieren können.
In der Linkliste finden sie auch einen Link auf die ControlID Liste. In dieser finden Sie alle idMso von Office 2007.
#CMSimple hide#
Application.CommandBars.ExecuteMso ("idMSO")
Beispiel: Schließen der aktuellen Datenbank ("Office Button" / "Datenbank schließen")
Application.CommandBars.ExecuteMso ("FileCloseDatabase")
#CMSimple hide#
Setzen Sie einen Haken unter (Access 2007) "Office Button" / Button "Access-Optionen" / "Erweitert" / "Allgemein" / "Fehler in Benutzeroberflächen in Add-Ins anzeigen"
Für Access 2010 und Access 2013: Tab "Datei" / Button "Optionen" / "Clienteinstellungen" / "Allgemein" / "Fehler in Benutzeroberflächen in Add-Ins anzeigen"
Mit dieser Option werden Fehler welche durch das Ribbon XML File ausgelößt werden angezeigt.
(Zum vergrößern bitte anklicken)
#CMSimple hide#
Benutzerdefinierte Ribbons in A2007 funktionieren nur mit einen Verweis auf die "Microsoft Office 12.0 Object Library",
für Office 2010 müssen Sie "Microsoft Office 14.0 Object Library" verwenden,
für Office 2013 müssen Sie "Microsoft Office 15.0 Object Library" verwenden
und ab Office 2016 und höher die "Microsoft Office 16.0 Object Library" verwenden.
Um diesen Verweis zu setzen öffnen Sie ein beliebiges Modul. Menüleiste "Extras" / "Verweise", setzten Sie einen Haken bei der "Microsoft Office 1x.0 Objekt Library". Bestätigen Sie den Verweisdialog mit "OK".
(Zum vergrößern bitte anklicken)
#CMSimple hide#
Sie können alle Einträge aus dem Office Menü entfernen (Anleitung). Der Office Button selber kann nicht entfernt werden.
#CMSimple hide#
Halten Sie beim Start der Datenbank die [Shift]-Taste gedrückt.
Wollen
Sie in der aktuellen Datenbank permanent das laden eines Ribbons
verhindern so löschen Sie den Ribbonnamen aus "Office Button" / Button
"Access-Optionen" / "Aktuelle Datenbank" / "Multifunktionsleisten- und
Symbolleistenoptionen" / "Name der Multifunktionsleiste".
#CMSimple hide#
A2003: "Extras" / "Start" / "Eingebaute Symbolleisten zulassen"
unter "Menüleiste" wählen Sie Ihre Menüleiste aus.
A2007: "Office Button" / Button "Access-Optionen" / "Aktuelle
Datenbank" / "Multifunktionsleisten- und Symbolleistenoptionen" / "Integrierte Symbolleisten zulassen"
unter "Menüleiste" wählen Sie Ihre Menüleiste aus.
Wenn Sie die Datenbank so öffnen erscheinen keine Ribbons und nur die eigene Menüleiste:
#CMSimple hide#
Legen Sie in der Datenbank eine "USysRibbon" Tabelle an (Anleitung) mit folgendem Ribbon XML:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab idMso="TabHomeAccess" visible="false" /> <tab idMso="TabAddIns" label="My Ribbon Tab" /> </tabs> </ribbon> </customUI>
Hinweis: Der Gruppennamen "Benutzerdefinierte Symbolleisten" kann nicht umbenannt werden :-(
#CMSimple hide#
Nein. Die Access Ribbons können nicht bzw. nur sehr begrenzt manipuliert werden.
Sie können aber in einem Access Tab eine eigene Gruppe erstellen, in dieser können Sie Ihre eigenen Buttons / Controls erstellen.
Legen Sie in der Datenbank eine "USysRibbon" Tabelle an (Anleitung) mit folgendem Ribbon XML:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab idMso="TabHomeAccess"> <group id="myGroup" label="My Group" insertBeforeMso="GroupViews"> <button id="myButton" label="My Button" imageMso="HappyFace"/> </group> </tab> </tabs> </ribbon> </customUI>
Für die Office Ribbon Anpassung hat Patrick Schmid ein AddIn geschrieben. Informationen und Erwerb unter: http://pschmid.net/office2007/ribboncustomizer/index.php
#CMSimple hide#
Nein. Bisher ist mir kein Weg bekannt wie dieser Text in eigenen Screentips / Supertips zu entfernen ist.
Über die Optionen können die Screentips ganz ausgeschaltet werden.
Link zu Microsoft
#CMSimple hide#
Speicherns Sie die gewünschten Bilder binär in einer Tabelle ab und laden diese mit den Callback "getImage" in das Ribbon. Sie finden dazu in den Downloads die Beispieldatenbank IconInRibbon.
#CMSimple hide#
Es reicht in der Regel nicht die Datenbank neu zu starten. Um die Schnellstartleiste angezeigt zu bekommen müssen Sie Access beenden und anschließend neu starten. Nun können Sie die Datenbank laden und Ihre Schnellstartleiste wird angezeigt.
Legen Sie in der Datenbank ein "Dummy" Formular an, welches Sie Bei "OnRibbonLoad" starten und gleich wieder schließen.
Sub OnRibbonLoad(ribbon As IRibbonUI) ' Callbackname in XML File "onLoad" DoCmd.OpenForm "frmDummy" DoCmd.Close acForm, "frmDummy" End Sub
Ihr Ribbon XML muss diese Funktion aufrufen:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnRibbonLoad"> </customUI>
Starten Sie Ihre Datenbank nicht mit einem Doppelklick aus dem Explorer.
Sie finden in den Downloads dazu eine Beispiel Datenbank.
#CMSimple hide#
Nein.
Sie können aber den Button deaktivieren. Legen Sie dazu in Ihrem XML folgende Commands Zeilen wie im Beispiel gezeigt hinzu:
Beispiel XML:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <!-- An dieser Stelle einfügen--> <commands> <command idMso="Help" enabled="false"/> </commands> <!-- Hier folgt Ihr weiterer XML Code --> <ribbon startFromScratch="false"> <tabs> <tab idMso="TabHomeAccess"> <group id="myGroup" label="My Group" insertBeforeMso="GroupViews"> <button id="myButton" label="My Button" imageMso="HappyFace"/> </group> <tab> </tabs> </ribbon> </customUI>
#CMSimple hide#
Ja
Verwenden Sie dazu folgenden Starttag:
<!--
und folgenden Endtag:
-->
Beispiel XML:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <!-- Das ist ein Kommentar --> <ribbon startFromScratch="false"> <tabs> <tab idMso="TabHomeAccess"> <!-- Das ist ein weiterer Kommentar --> <group id="myGroup" label="My Group" insertBeforeMso="GroupViews"> <button id="myButton" label="My Button" imageMso="HappyFace"/> </group> <tab> </tabs> </ribbon> </customUI>
#CMSimple hide#
Ja.
Legen Sie dazu folgendes Ribbon XML an:
Beispiel XML:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <commands> <command idMso= "ApplicationOptionsDialog" onAction="OnActionOptionsButton"/> </commands> <ribbon startFromScratch="false"> <!-- Ihr weiterer Ribbon XML Code --> </ribbon> </customUI>
Legen sie folgenden Callback Funktion in einem Standardmodul an:
Public Sub OnActionOptionsButton(control As IRibbonControl, ByRef cancelDefault) DoCmd.OpenForm "frmIhrFormular", , , , , acDialog End Sub
Siehe auch Beipiel Datenbank "Access-Optionen" #CMSimple hide#
Legen Sie dazu folgendes Ribbon XML in einer USysRibbons Tabelle an:
Ribbon XML:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="true"> </ribbon> </customUI>
#CMSimple hide#
Mit folgendem Code kann das Ribbon komplett (incl. Office Menü) ausgeblendet werden:
DoCmd.ShowToolbar "Ribbon", acToolbarNo
Einblenden mit:
DoCmd.ShowToolbar "Ribbon", acToolbarYes
#CMSimple hide#
Mit folgendem Code stellen Sie den Status des Ribbons fest:
Function RibbonState() As Long 'Status des Ribbon; Result: 0=normal, -1=minimiert RibbonState = (CommandBars("Ribbon").Controls(1).Height < 100) End Function
Vielen Dank dafür an Sascha Trowitzsch:http://www.mosstools.de/
Die Informationen über den Ribbon State sind auch in der Registry zu finden:
[HKEY_CURRENT_USER]\Software\Microsoft\Office\1x.0\Common\Toolbars\Access
Value Name: QuickAccessToolbarStyle
Value Data: 0 (Ribbon = normal)
Value Data: 4 (Ribbon = minimiert)
In den Downloads finden Sie eine Beispiel Datenbank welche demonstriert, wie Sie die Anzeigegröße des Ribbons per Code festlegen können.
In Access 2010 können Sie den Ribbon mittels
CommandBars.ExecuteMso "MinimizeRibbon"
minimieren bzw. normal anzeigen
#CMSimple hide#
Geben Sie im Direktfenster (STRG + G) folgenden Code ein
CommandBars("MeineMenüleiste").Delete
oder rufen Sie das Kontextmenü mit einem rechten Mausklick auf die zu löschende Symbolleiste auf und wählen Sie den Eintrag: "Benutzerdefinierte Symbolleiste löschen"
#CMSimple hide#
Kann Late Binding verwendet werden um auf den Office Verweis verzichten zu können?
Für Access 2007:
- Nein, In Office 2007 wird der Office Verweis zwingend benötigt.
Für Access 2010:
- Ja, unter Access 2010 können Sie auf Late Binding umstellen und den Office Verweis aus der Datenbank entfernen.
1. Ersetzen Sie in Ihren Modulen alle vorkommen von:
IRibbonUI und IRibbonControl
durch
Object
2. Löschen Sie den Verweis auf die "Microsoft Office 14.0 Object Library"in Ihrer Datenbank.
Hinweis: IntelliSense steht Ihnen für diese Objekte nicht mehr zur Verfügung.
#CMSimple hide#
Kann ich in einer Datenbank für beide Access Versionen (2007 und 2010) unterschiedliche Application Ribbons verwenden?
Ja.
Erstellen Sie zunächst in der USysRibbons Tabelle die jeweils benötigten Ribbon XMLs.
Stellen Sie in den Optionen unter "Name der Multifunktionsleiste" für A2007 bzw. "Name des Menübandes" für A2010 einen Namen welcher nicht in der USysRibbonstabelle verwendnung findet ein, z.B. "DBRibbon".
Fügen Sie folgenden Code in ein Standardmodul ein:
Option Compare Database Public Function fnc_LoadRibbon() Dim strProcName As String strProcName = "fnc_LoadRibbon" On Error GoTo fnc_LoadRibbon_Err Application.LoadCustomUI "DBRibbon", fnc_GetRibbon(Left(Application.Version, 2)) fnc_LoadRibbon_Exit: Exit Function fnc_LoadRibbon_Err: Select Case Err 'Case IhreFehlernummer 'Resume fnc_LoadRibbon_Exit Case Else MsgBox "Es ist ein Fehler aufgetreten." & vbCrLf & vbCrLf & _ "In Function:" & vbTab & strProcName & vbCrLf & _ "Fehlernummer: " & vbTab & Err.Number & vbCrLf & _ "Beschreibung: " & vbTab & Err.description, vbCritical, _ "Fehler in " & Chr$(34) & strProcName & Chr$(34) Resume fnc_LoadRibbon_Exit End Select End Function Function fnc_GetRibbon(lngVersion As Long) As String ' ************************************************************ ' Erstellt von : avenius ' Parameter : ' Rückgabe : String ' Erstellungsdatum : Mittwoch, 1 Aug 2012 ' Bemerkungen : ' Änderungen : ' ' **************** Created by IDBE Tools 2010 **************** Dim strProcName As String strProcName = "fnc_GetRibbon" On Error GoTo fnc_GetRibbon_Err Dim dbs As DAO.Database Dim rst As DAO.Recordset Set dbs = CurrentDb() Select Case lngVersion Case 12 ' Read A2007 Ribbon Set rst = dbs.OpenRecordset("SELECT * FROM USysRibbons WHERE RibbonName='A2007'", dbOpenDynaset) Case 14 ' Read A2010 Ribbon Set rst = dbs.OpenRecordset("SELECT * FROM USysRibbons WHERE RibbonName='A2010'", dbOpenDynaset) Case Else ' Read default Ribbon Set rst = dbs.OpenRecordset("SELECT * FROM USysRibbons WHERE RibbonName='Default'", dbOpenDynaset) End Select rst.MoveFirst fnc_GetRibbon = rst.Fields("RibbonXml") fnc_GetRibbon_Exit: rst.Close Set rst = Nothing Set dbs = Nothing Exit Function fnc_GetRibbon_Err: Select Case Err 'Case IhreFehlernummer 'Resume fnc_GetRibbon_Exit Case Else MsgBox "Es ist ein Fehler aufgetreten." & vbCrLf & vbCrLf & _ "In Function:" & vbTab & strProcName & vbCrLf & _ "Fehlernummer: " & vbTab & Err.Number & vbCrLf & _ "Beschreibung: " & vbTab & Err.description, vbCritical, _ "Fehler in " & Chr$(34) & strProcName & Chr$(34) Resume fnc_GetRibbon_Exit End Select End Function
Stellen Sie sicher das die Function "fnc_LoadRibbon" über ein Autoexec Makro aufgerufen wird.
Sie finden unter den Downloads ein Beispiel Datei zum herunterladen.
Danke an A. Kallal und Graham Mandeno für die Anregung.
#CMSimple hide#