Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Eine Datenbank mit Access 2013 richtig entwickeln

Überblick über die Menüband-Programmierung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Mit XML-Beschreibung, der Speicherung in einer vorgegebenen Tabelle und sogenannter Callback-Programmierung werden Menübänder erzeugt.

Transkript

Die Steuerung einer Datenbank erfolgt über das Ribbon beziehungsweise das Menüband. Das ist einerseits perfekt. Es bietet unglaublich viele Möglichkeiten, von denen Sie sogar im Access selber gar nicht alle sehen. Man darf es nicht verschweigen: Es ist nicht ganz einfach. Aber das ist es auch wert. Wenn Sie sich in diese Programmierart, die unterscheidet sich nämlich ein bisschen von dem, wie man normalerweise arbeitet, wenn Sie sich in diese Art der Programmierung eingearbeitet haben und das Grundgerüst steht, das wir hier auch erarbeiten werden, dann brauchen Sie nur noch kleine Änderungen zu machen, und dann wird es plötzlich ganz einfach. Es ist deswegen andersrum, weil es sogenannte Callback-Funktionen sind. Sie rufen sie nicht gezielt auf, sondern Sie stupsen jemanden an, zum Beispiel eine Schaltfläche im Ribbon, und die guckt dann nach, wen sie aufrufen möchte. Das ist sozusagen umgekehrt. Normalerweise rufen Sie jemanden auf. In dem Fall müssen Sie jemanden bitten, sie aufzurufen. Es geht dabei erstens um den Hinweg, ein Ribbon nämlich anzuzeigen, und später dann auch andersherum dessen Benutzung. Beides wird unter anderem mit XML gelöst. XML ist ja die "Extensible Markup Language", eine Sprache, die HTML durchaus ähnelt. Das heißt, Sie finden hier die typischen Tags in spitzen Klammern, die Attribut-Wert-Paare, so wie hier, und das in einer zwiebelartigen Struktur, wo also immer eine Gruppe um das Äußere das Innere umfasst. Allerdings ist XML sehr pingelig im Vergleich zu HTML. Es geht darum, dass diese Zwiebelstrukturen korrekt sind. Sie müssen exakt auf die Groß- und Kleinschreibung achten. Zum Beispiel sind eigentlich alle Wörter klein geschrieben, "ribbon", "tabs", "customUI", aber Sie sehen es schon an zusammengesetzten Wörtern, "customUI", "startFromScratch", die haben jeweils den Anfangsbuchstaben groß, außer dem ersten. Da ist XML pingelig, beziehungsweise der Interpreter. Eigentlich dürften Sie auch keine Umlaute benutzen. XML selber schließt das aus. Access ist dort sehr, sehr entgegenkommend, und Sie dürften dort zumindest für die Inhalte der Texte Umlaute benutzen. Für die Namen der Attribute stellt sich die Frage nicht, weil die vorgegeben sind. Dieses ist übrigens eine XML-Datei ab Access 2010. Das sehen Sie daran, dass da oben in der ersten Zeile "office/2009/07" steht. Wenn Sie in einer älteren Version arbeiten, können Sie das im Prinzip genauso benutzen, nur steht dort eine andere Versionsnummer, nämlich "office/2006/01". Das ist die einzige Änderung. Ich habe hier keine Befehle benutzt, die nicht auch in Access 2007 funktionieren würden. Das ist so eine Art Versionsnummer da oben. Sie haben es also mit XML zu tun und diese Beschreibung, dieser Text hier, das ist ja eine reine Textdatei, und Sie sehen schon, ich habe das in einem Editor hier zwischengespeichert, die wird allerdings nicht in der Textdatei bleiben, sondern in einer Tabelle, nämlich hier drin, in diesem Feld, gespeichert. Der Tabellenname ist vorgeschrieben. Der muss "USysRibbons" heißen. Und "USys", User-System, bedeutet unter anderem auch, dass diese normalerweise ausgeblendet sind. Und sowohl die Struktur der Tabelle als auch die jeweiligen Feldnamen sind vorgeschrieben. Da gibt es eine ID, einen eindeutigen Ribbon-Name und dann den eigentlichen Inhalt. Und daran sehen Sie schon: Es kann nicht nur ein einziges Menüband enthalten sein, sondern Sie können mehrere speichern, nämlich hier zum Beispiel das allgemeine Menüband, das grundsätzlich zu sehen ist, und hierfür spezielle Formulare. Ich nenne die dann auch einfach direkt so wie das Formular. Und das, was hier beschrieben ist, wird dann aufgerufen, mit allerdings noch ein bisschen VBA-Programmierung dazu, und sieht dann zum Beispiel so aus. Jeder Eintrag in dieser XML- Struktur, jede Zeile sozusagen, erzeugt entweder einen Inhalt, mit VBA-Hilfe noch ein Bild, mit VBA-Hilfe einen wechselnden Eintrag und Ähnliches. Es ist also ein Zusammenspiel aus erstens einem XML-Code, zweitens dessen Speicherung in der Tabelle "USysRibbons" und drittens der Erkenntnis, dass mehrere Ribbons in dieser Tabelle enthalten sein können, also jedes Formular, und übrigens auch jeder Bericht, sein eigenes Ribbon haben kann. Das wird dann mit dem Allgemeinen zusammen gemischt. Und damit klar ist, wer wen benutzt, wählt eine jeweilige Eigenschaft, nämlich der gesamten Datenbank, des Formular oder des Berichts, aus, welches von diesen Ribbons nun gemeint ist. Und Sie ahnen es schon: Da sind eine Menge Fehlerquellen möglich. Aber wir werden uns herantasten, das wird schon. Das war der Hinweg. Jetzt kommt sozusagen der Rückweg. Das Ribbon ist da und ich will es benutzen. Was passiert dann eigentlich? Also nehmen wir mal einfach an: Dieses Standard-Ribbon, so ähnlich werden wir das hier auch erstellen, ist da. Der Benutzer geht hin und klickt jetzt hier drauf. Dann meldet das Ribbon intern, davon merken Sie gar nichts, zurück, ich bin angeklickt worden, und gucke nach in dieser Struktur, und kann jetzt feststellen, das "btnLogo" ist angeklickt worden. Für den ist eine OnAction-Prozedur hinterlegt, die auch zufällig fast genauso heißt, also "OnActionButton". Und jetzt wird nämlich der Callback gesucht: Wo steht diese Prozedur? Und irgendwo in Ihrem VBA muss es jetzt eine Prozedur geben, die genauso heißt, und auch deren Signatur vorgegeben ist, also Anzahl und Datentyp der Parameter. Und innerhalb der Prozedur, das ist hier jetzt bei mir so vereinbart, das ist auch üblich, suche ich jetzt, das ist wieder die Freiheit meiner Programmierung, ob ich zufällig von dem "btnLogo" angeklickt worden bin, oder "aufgerufen" müsste ich genauer sagen, und dann löse ich hier so eine MessageBox aus. Das heißt, Sie werden nicht aktiv irgendeine Prozedur aufrufen, sondern irgendwer, nämlich das Ribbon, löst Ihre Prozedur aus, und dann dürfen Sie reagieren. Das ist das, woran man sich gewöhnen muss. Es beginnt mit einem Button-Anklicken. Das Ribbon sucht intern dann, was für "OnAction" hinterlegt ist, nämlich in diesem Fall die OnActionButton-Prozedur, und dann wird diese sogenannte Callback-Prozedur ausgeführt. Und möglicherweise ist darin sogar noch enthalten, dass Sie ein "Invalidate" aufrufen. Sprich, Sie fordern das Ribbon, per VBA-Code nämlich, auf, sich mit "Invalidate" sozusagen zu entwerten, und wieder neu auszulesen. Dann werden alle Kontrollelemente in dem Ribbon sich wieder selbst organisieren und prüfen, muss ich vielleicht "disabled", "enabled", "false", werden, muss ich vielleicht unsichtbar werden, muss ich mein Bild ändern und so was alles. Also, die Gewöhnung besteht darin, dass Sie das Ribbon anstoßen, Ihre Prozeduren aufzurufen. Aber das ist nicht so kompliziert, wie es sich im Moment vielleicht anhört. Es ist einfach nur eine Menge hintereinander weg und es funktioniert ein kleines bisschen anders als Ihr normaler VBA-Code.

Eine Datenbank mit Access 2013 richtig entwickeln

Sehen Sie einem erfahrenen Datenbankentwickler über die Schulter und lernen Sie dabei, wie Sie in Access 2013 optimale und perfekt skalierbare Datenbank anlegen und pflegen.

5 Std. 18 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!