Sunday, April 3, 2022

Erstellen Sie ein benutzerdefiniertes Menüband in Access

Die Multifunktionsleiste – der Streifen am oberen Rand des Programmfensters, der Gruppen von Befehlen enthält – ist eine Komponente der Microsoft Office Fluent-Benutzeroberfläche. Die Office Fluent-Benutzeroberfläche bietet eine einzige Startseite für Befehle in Access.

Wenn Sie beginnen, erweiterte Anwendungen mit Access zu erstellen, entscheiden Sie sich möglicherweise dafür, das Office Fluent-Menüband anzupassen, um die Verwendung einer Anwendung zu vereinfachen. Sie können beispielsweise einige oder alle Standardregisterkarten ausblenden, sodass Benutzer bestimmte Befehle nicht verwenden können, und Sie können neue, benutzerdefinierte Registerkarten erstellen, die nur die Befehle enthalten, die verfügbar sein sollen.

In allen Microsoft Office-Programmen, die die Office Fluent-Benutzeroberfläche verwenden, verwenden Sie XML (Extensible Markup Language), um das Menüband anzupassen. Daher sind einige Grundkenntnisse in XML hilfreich. Dieser Artikel behandelt keine XML-Konzepte, bietet Ihnen jedoch ein grundlegendes Verfahren zur Anpassung der Multifunktionsleiste und einige Beispiel-XML, die Sie an Ihre Anforderungen anpassen können.

Dieser Artikel konzentriert sich darauf, wie Sie mithilfe von XML Ihre eigenen benutzerdefinierten Menübänder erstellen. Wenn Sie die integrierten Tools verwenden möchten, um die vorhandenen Menübänder zu ändern, finden Sie weitere Informationen unter Anpassen des Menübands in Office .

Was möchten Sie tun?

Verstehen Sie die Techniken zur Anpassung der Multifunktionsleiste

In Access passen Sie das Menüband an, indem Sie Anpassungs-XML erstellen und dann Code hinzufügen oder Datenbankeigenschaften festlegen, die Access anweisen, dieses XML beim Erstellen des Menübands zu verwenden. Sie können das XML verwenden, um vorhandene Registerkarten auszublenden und neue Registerkarten, Befehlsgruppen und Befehle hinzuzufügen. Die Verfahren in diesem Artikel zeigen Ihnen, wie Sie Befehle hinzufügen, die in Access integriert sind (z. B. Suchen, Sortieren und Speichern), und wie Sie Befehle hinzufügen, die Access-Makros ausführen, die Sie selbst geschrieben haben.

Es gibt mehrere Orte, an denen Sie das XML speichern können, aber eine der einfachsten Methoden besteht darin, es in einer Systemtabelle in der aktuellen Datenbank zu speichern. Der Prozess umfasst das Erstellen einer Systemtabelle mit dem Namen USysRibbons, das Hinzufügen Ihrer Multifunktionsleisten-XML und das anschließende Angeben, ob die benutzerdefinierte Multifunktionsleiste für die Datenbank als Ganzes oder für ein bestimmtes Formular oder einen bestimmten Bericht angezeigt wird. Sie können mehrere benutzerdefinierte Bänder definieren – eines für die gesamte Anwendung und zusätzliche Bänder für einzelne Formulare oder Berichte in der Datenbank.

Erstellen Sie ein benutzerdefiniertes Menüband und wenden Sie es an

Die folgenden Abschnitte enthalten Schritt-für-Schritt-Verfahren zum Erstellen und Anwenden einer benutzerdefinierten Multifunktionsleiste.

Bevor Sie beginnen

Systemtabellen im Navigationsbereich anzeigen Standardmäßig werden Systemtabellen nicht im Navigationsbereich angezeigt, daher müssen Sie zuerst eine Einstellung im Dialogfeld Navigationsoptionen ändern, damit Sie die USysRibbons- Tabelle sehen können, nachdem Sie sie erstellt haben. Verwenden Sie das folgende Verfahren:

  1. Klicken Sie bei geöffneter Datenbank in Access mit der rechten Maustaste auf die Navigationsleiste oben im Navigationsbereich, und klicken Sie dann im Kontextmenü auf Navigationsoptionen .

  2. Aktivieren Sie im Dialogfeld Navigationsoptionen unter Anzeigeoptionen das Kontrollkästchen Systemobjekte anzeigen und klicken Sie dann auf OK .

    Die Access-Systemtabellen werden im Navigationsbereich angezeigt.

Aktivieren der Anzeige von Fehlermeldungen der Add-In-Benutzeroberfläche Fehlermeldungen sind eine wertvolle Informationsquelle beim Erstellen und Beheben von Problemen mit der Anpassung von XML-Menübändern, daher ist es eine gute Idee, sie von Access anzeigen zu lassen. Verwenden Sie das folgende Verfahren:

  1. Klicken Sie auf Datei > Optionen .

  2. Klicken Sie auf Client-Einstellungen .

  3. Aktivieren Sie unter Allgemein das Kontrollkästchen Add-In-Benutzeroberflächenfehler anzeigen und klicken Sie dann auf OK .

Erstellen Sie die Systemtabelle USysRibbons

Verwenden Sie dieses Verfahren, um die Systemtabelle USysRibbons zu erstellen. Später werden Sie diese Tabelle verwenden, um Ihre Multifunktionsleisten-Anpassungs-XML zu speichern.

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Tabellen auf Tabellenentwurf .

  2. Fügen Sie der Tabelle die folgenden Felder hinzu. Achten Sie darauf, die Feldnamen genau wie gezeigt einzugeben.

    Feldname

    Art

    Feldgröße

    ICH WÜRDE

    Auto Nummer

    Lange Ganzzahl

    RibbonName

    Text

    255

    RibbonXml

    Memo

  3. Wenn Sie möchten, können Sie dieser Tabelle weitere Felder hinzufügen, z. B. ein Kommentarfeld, um die Funktion der Multifunktionsleisten-XML zu beschreiben.

  4. Wählen Sie das ID -Feld aus. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Tools auf Primärschlüssel .

  5. Klicken Sie auf der Symbolleiste für den Schnellzugriff auf Speichern oder drücken Sie STRG +S. Benennen Sie die neue Tabelle USysRibbons .

Fügen Sie der USysRibbons-Tabelle XML für die Anpassung der Multifunktionsleiste hinzu

Nehmen Sie für dieses Beispiel an, dass Sie die Benutzer Ihrer Datenbank daran hindern möchten, eines der Tools auf der Registerkarte „ Erstellen " zu verwenden. Außerdem möchten Sie eine neue Registerkarte mit dem Namen „ Benutzerdefinierte Registerkarte " erstellen, auf der sich nur der Befehl „Einfügen" befindet, wie in der folgenden Abbildung gezeigt.

Registerkarte „Benutzerdefinierte Multifunktionsleiste

Das XML im folgenden Verfahren erstellt diese Konfiguration.

  1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf die Tabelle USysRibbons , und klicken Sie dann im Kontextmenü auf Datenblattansicht .

  2. Fügen Sie der Tabelle die folgenden Daten hinzu. Sie können das XML-Beispiel aus diesem Artikel kopieren und direkt in die Tabelle einfügen.

    ICH WÜRDE

    RibbonName

    RibbonXML

    (Auto Nummer)

    Mein Tab

      <customUI xmlns="http://schemas.microsoft.com  /office/2006/01/customui">    <Band startFromScratch="false">      <Tabs>        <tab idMso="TabCreate" sichtbar="false" />        <tab id="dbCustomTab" label="Ein benutzerdefinierter Tab" visible="true">          <group id="dbCustomGroup" label="Eine benutzerdefinierte Gruppe">            <control idMso="Paste" label="Integriertes Einfügen" enabled="true"/>          </Gruppe>        </tab>      </tabs>    </Band>  </customUI>  
  3. Dieses XML weist Access zunächst an, nicht „von vorne zu beginnen" – das heißt, es gibt an, dass Access die Standardregisterkarten des Menübands anzeigen soll. Dann weist es Access an, nur eine der Standardregisterkarten (die Registerkarte " Erstellen ") auszublenden. Schließlich erstellt es eine neue Multifunktionsleisten-Registerkarte mit dem Namen „Eine benutzerdefinierte Registerkarte", fügt der Registerkarte eine Befehlsgruppe mit dem Namen „Eine benutzerdefinierte Gruppe" hinzu und fügt der Gruppe den Befehl „Einfügen" hinzu. Weitere Informationen zu diesem Beispiel und dazu, wie Sie es an Ihre Anforderungen anpassen können, finden Sie im Abschnitt Grundlegendes zum XML-Beispiel .

  4. Schließen Sie die Tabelle USysRibbons, schließen Sie die Datenbank und öffnen Sie sie erneut.

Wenden Sie das benutzerdefinierte Menüband an

Nachdem die benutzerdefinierte Multifunktionsleisten-XML in einer Tabelle gespeichert wurde, führen Sie einen der folgenden Schritte aus – je nachdem, ob Sie die Multifunktionsleiste auf die gesamte Datenbank oder auf ein bestimmtes Formular oder einen bestimmten Bericht anwenden möchten.

  • Wenden Sie das benutzerdefinierte Menüband auf die gesamte Datenbank an

    1. Klicken Sie auf Datei > Optionen .

    2. Klicken Sie auf Aktuelle Datenbank , wählen Sie dann unter Menüband- und Symbolleistenoptionen die Liste Name des Menübands aus und klicken Sie dann auf das gewünschte Menüband – in diesem Fall My Tab .

    3. Klicken Sie auf OK .

  • Wenden Sie das benutzerdefinierte Menüband auf ein bestimmtes Formular oder einen bestimmten Bericht an

    1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf das Formular oder den Bericht, auf das Sie das benutzerdefinierte Menüband anwenden möchten, und klicken Sie dann im Kontextmenü auf Entwurfsansicht .

    2. Wenn das Eigenschaftenblatt noch nicht angezeigt wird, drücken Sie F4, um es anzuzeigen.

    3. Stellen Sie oben im Eigenschaftenblatt unter Auswahltyp sicher, dass der Objekttyp ( Formular oder Bericht ) in der Liste ausgewählt ist.

    4. Klicken Sie auf der Registerkarte „ Andere " des Eigenschaftenblatts auf die Liste „ Name des Menübands", und klicken Sie dann auf das Menüband, das beim Öffnen des Formulars oder Berichts angezeigt werden soll (in diesem Fall „ Meine Registerkarte ").

    5. Klicken Sie auf der Symbolleiste für den Schnellzugriff auf Speichern oder drücken Sie STRG +S.

    6. Schließen Sie das Formular oder den Bericht, und doppelklicken Sie dann im Navigationsbereich darauf, um es erneut zu öffnen.

      Die ausgewählte Multifunktionsleiste wird angezeigt.

Nachdem Sie überprüft haben, dass Ihr benutzerdefiniertes Menüband ordnungsgemäß funktioniert, können Sie die Systemtabellen wie folgt wieder ausblenden:

  1. Klicken Sie mit der rechten Maustaste auf die Navigationsleiste oben im Navigationsbereich, und klicken Sie dann im Kontextmenü auf Navigationsoptionen .

  2. Deaktivieren Sie im Dialogfeld Navigationsoptionen unter Anzeigeoptionen das Kontrollkästchen Systemobjekte anzeigen und klicken Sie dann auf OK .

Seitenanfang

Stellen Sie das Standardband wieder her

Um die Verwendung einer benutzerdefinierten Multifunktionsleiste zu beenden und die Standard-Multifunktionsleiste wiederherzustellen, verwenden Sie eines der folgenden Verfahren, je nachdem, ob die benutzerdefinierte Multifunktionsleiste von der gesamten Anwendung oder von einem bestimmten Formular oder Bericht verwendet wird.

Stellen Sie das standardmäßige Menüband auf Anwendungsebene wieder her

  1. Klicken Sie auf Datei > Optionen .

  2. Klicken Sie auf Aktuelle Datenbank und löschen Sie dann unter Multifunktionsleisten- und Symbolleistenoptionen den Inhalt des Felds Multifunktionsleistenname .

  3. Schließen Sie die Datenbank und öffnen Sie sie erneut.

Access zeigt seine Standard-Ribbon-Registerkarten an. Die Multifunktionsleisten-XML bleibt in der USysRibbons -Tabelle, bis Sie sie löschen. Wenn Sie also die benutzerdefinierte Multifunktionsleiste wiederherstellen möchten, können Sie dies tun, indem Sie die Option „Multifunktionsleistenname" auf den zuvor enthaltenen Wert zurücksetzen.

Stellen Sie die Standard-Multifunktionsleiste für ein Formular oder einen Bericht wieder her

  1. Öffnen Sie das Formular oder den Bericht in der Entwurfsansicht.

  2. Wenn das Eigenschaftenblatt noch nicht angezeigt wird, drücken Sie F4, um es anzuzeigen.

  3. Stellen Sie oben im Eigenschaftenblatt unter Auswahltyp sicher, dass der Objekttyp ( Formular oder Bericht ) in der Liste ausgewählt ist.

  4. Löschen Sie auf der Registerkarte „ Andere " des Eigenschaftenblatts den Inhalt des Eigenschaftenfelds „ Name des Menübands ".

  5. Speichern, schließen und öffnen Sie das Formular oder den Bericht erneut.

Die Multifunktionsleisten-XML bleibt in der USysRibbons -Tabelle, bis Sie sie löschen. Wenn Sie also die benutzerdefinierte Multifunktionsleiste wiederherstellen möchten, können Sie dies tun, indem Sie den Wert in der Eigenschaft Multifunktionsleistenname auf den zuvor enthaltenen Wert zurücksetzen.

Seitenanfang

Verstehen Sie das XML-Beispiel

Hier ist das XML-Beispiel, das zuvor in diesem Artikel verwendet wurde, und eine Illustration des benutzerdefinierten Menübands, das es erstellt hat.

  <customUI xmlns="http://schemas.microsoft.com  /office/2006/01/customui">    <Band startFromScratch="false">      <Tabs>        <tab idMso="TabCreate" sichtbar="false" />        <tab id="dbCustomTab" label="Ein benutzerdefinierter Tab" visible="true">          <group id="dbCustomGroup" label="Eine benutzerdefinierte Gruppe">            <control idMso="Paste" label="Integriertes Einfügen" enabled="true"/>          </Gruppe>        </tab>      </tabs>    </Band>  </customUI>  

Registerkarte „Benutzerdefinierte Multifunktionsleiste

In diesem Beispiel legt die zweite XML-Zeile das Attribut startFromScratch auf False fest. Durch Festlegen des Werts auf False wird sichergestellt, dass Access alle vorhandenen Registerkarten intakt lässt und alle neuen Registerkarten rechts neben den vorhandenen hinzufügt. Wenn Sie dieses Attribut auf True setzen, werden alle vorhandenen Registerkarten entfernt und nur die angezeigt, die Sie in Ihrem XML erstellen. Auch wenn Sie das Attribut startFromScratch auf False setzen, können Sie dennoch einzelne Registerkarten ausblenden. Dies wird durch die vierte XML-Zeile demonstriert, die die integrierte Registerkarte „Erstellen " verbirgt. Die verbleibenden Zeilen erstellen eine benutzerdefinierte Registerkarte und eine benutzerdefinierte Gruppe und fügen dann den integrierten Einfügebefehl zur Gruppe hinzu, indem Sie die folgende XML-Zeile verwenden.

<control idMso="Paste" label="Integriertes Einfügen" enabled="true"/>

Hinzufügen zusätzlicher Gruppen oder Steuerelemente zu Ihrem benutzerdefinierten Menüband Sie können Ihrem Menüband weitere Gruppen und Steuerelemente hinzufügen, indem Sie ähnliche XML-Zeilen hinzufügen und unterschiedliche idMso- und Bezeichnungswerte ersetzen. Um beispielsweise ein Steuerelement zu erstellen, das das aktuell ausgewählte Objekt nach Excel exportiert, verwenden Sie das folgende XML.

<control idMso="ExportExcel" label="Nach Excel exportieren" enabled="true"/>

Um das Steuerelement derselben Gruppe wie der Befehl „ Einfügen " hinzuzufügen, fügen Sie die neue XML-Zeile unmittelbar vor oder nach der Zeile ein, die den Befehl „ Einfügen " erstellt. Um eine neue Gruppe zu erstellen, können Sie den XML-Code kopieren, einfügen und ändern, der die Gruppe „ A Custom Group " oben erstellt. Das folgende Beispiel veranschaulicht den XML-Code, der die beiden Steuerelemente zur benutzerdefinierten Gruppe hinzufügt.

  <customUI xmlns="http://schemas.microsoft.com  /office/2006/01/customui">    <Band startFromScratch="false">      <Tabs>        <tab idMso="TabCreate" sichtbar="false" />        <tab id="dbCustomTab" label="Ein benutzerdefinierter Tab" visible="true">          <group id="dbCustomGroup" label="Eine benutzerdefinierte Gruppe">            <control idMso="Paste" label="Integriertes Einfügen" enabled="true"/>          </Gruppe>          <group id="dbCustomGroup2" label="Eine andere benutzerdefinierte Gruppe">            <control idMso="ImportExcel" label="Aus Excel importieren" enabled="true"/>            <control idMso="ExportExcel" label="Nach Excel exportieren" enabled="true"/>          </Gruppe>        </tab>      </tabs>    </Band>  </customUI>  

Dieses XML fügt A Custom Tab eine weitere Gruppe hinzu. Wie in der folgenden Abbildung gezeigt, enthält die neue Gruppe zwei Steuerelemente – eines, das einen Importvorgang aus Excel initiiert, und eines, das einen Exportvorgang nach Excel initiiert.

Benutzerdefinierte Multifunktionsleisten-Registerkarte mit zwei Gruppen

Hinweis: Jeder Gruppen-ID- und Registerkarten-ID -Wert in einem benutzerdefinierten Menüband muss eindeutig sein.

Erfahren Sie den idMso-Wert eines Befehls Um den idMso-Wert eines integrierten Befehls zu erfahren, gehen Sie wie folgt vor:

  1. Klicken Sie auf Datei > Optionen .

  2. Klicken Sie auf Multifunktionsleiste oder Symbolleiste für den Schnellzugriff anpassen .

  3. Bewegen Sie den Mauszeiger über das Element, zu dem Sie Informationen wünschen. Access zeigt den idMso-Wert des Steuerelements in einer QuickInfo in Klammern an.

Hinzufügen eines Befehls zum Ausführen eines Access-Makros Sie können Ihr benutzerdefiniertes Menüband noch flexibler gestalten, indem Sie Befehle hinzufügen, die Access-Makros ausführen. Angenommen, Sie haben ein Makro namens MyMacro erstellt . Um Ihrer Multifunktionsleiste einen Befehl hinzuzufügen, der das Makro ausführt, fügen Sie Ihrem XML die folgende Zeile hinzu.

<button id="RunMyMacro" label="Mein Makro ausführen" onAction="MyMacro"/>

Um das Steuerelement derselben Gruppe wie der Befehl Paste im vorherigen Beispiel hinzuzufügen, fügen Sie die neue XML-Zeile unmittelbar vor oder nach der Zeile ein, die den Befehl Paste erstellt. Das folgende Beispiel veranschaulicht das XML, das den Befehl hinzufügt.

  <customUI xmlns="http://schemas.microsoft.com  /office/2006/01/customui">    <Band startFromScratch="false">      <Tabs>        <tab idMso="TabCreate" sichtbar="false" />        <tab id="dbCustomTab" label="Ein benutzerdefinierter Tab" visible="true">          <group id="dbCustomGroup" label="Eine benutzerdefinierte Gruppe">            <control idMso="Paste" label="Integriertes Einfügen" enabled="true"/>           <button id="RunMyMacro" label="Mein Makro ausführen" onAction="MyMacro"/>          </Gruppe>          <group id="dbCustomGroup2" label="Eine andere benutzerdefinierte Gruppe">            <control idMso="ImportExcel" label="Aus Excel importieren" enabled="true"/>            <control idMso="ExportExcel" label="Nach Excel exportieren" enabled="true"/>          </Gruppe>        </tab>      </tabs>    </Band>  </customUI>  

Seitenanfang

No comments:

Post a Comment