Wenn Sie mit Access ein neues Bild zu einem Formular hinzufügen oder dieses für eine Schaltfläche hinterlegen, speichert Access dieses in einer Tabelle namens MSysResources. Das Hinzufügen ist recht einfach und lässt sich per Ribbonbefehl und anschließender Auswahl per Datei öffnen-Dialog realisieren. Allerdings kann man auf diese Weise immer nur ein Bild gleichzeitig zur Anwendung hinzufügen. Wenn man einer Schaltfläche schnell ein Icon zuweisen möchte, wäre es praktisch, wenn alle üblicherweise benötigten Bilder bereits verfügbar sind. Daher schauen wir uns in diesem Beitrag an, wie wir mehrere Bilder auf einen Schlag zur Tabelle MSysResources hinzufügen können.
Wo landen die Bilder für Schaltflächen und Co.?
Bevor wir uns ansehen, wie wir schnell viele Bilder zur Anwendung hinzufügen, werfen wir einen Blick auf den Speicherort dieser Bilddateien.
Gemeint sind solche Bilder, die wir beispielsweise im Entwurf eines Formulars oder Berichts hinzufügen. Dazu gehen wir normalerweise wie folgt vor:
- Wir öffnen das Zielformular in der Entwurfsansicht.
- Dann klicken wir im Ribbon auf den Befehl Bild einfügen|Durchsuchen im Bereich Steuerelemente (siehe Bild 1).
- Bewegen wir den Mauszeiger dann über den Formularentwurf, befindet sich der Mauszeiger im Modus zum Einfügen eines Bild-Steuerelements (siehe Bild 2).
- Nach dem Anklicken des Zielpunktes für das Steuerelement öffnet sich der Dialog Grafik einfügen. Hier wählen wir die gewünschte Bilddatei, zum Beispiel mit dem Format .png.
- Nach der Auswahl erscheint das Bild-Steuerelement mit dem gewünschten Icon im Formularentwurf (siehe Bild 3).
Bild 1: Bild zu einem Formular hinzufügen
Bild 2: Bildsteuerelement einfügen
Bild 3: Das eingefügte Bild-Steuerelement
Wo ist das Bild nun gelandet? Ist es eingebettet? Oder verknüpft? Nun: Es gibt noch einen dritten Zustand, den wir sehen, wenn wir in den Eigenschaften des Bild-Steuerelements auf der Seite Format die Eigenschaft Bildtyp betrachten.
Diese hat den Wert Freigegeben (siehe Bild 4).
Bild 4: Eigenschaften des Bild-Steuerelements
Was heißt das? Das bedeutet, dass die Bilddatei an zentraler Stelle gespeichert wurde und auch für die Verwendung in anderen Steuerelementen in anderen Formularen und Berichten geeignet ist. Um das nachzuweisen, fügen wir dem Formular eine neue Schaltfläche hinzu. Für diese können wir nun auch das Bild brain auswählen (siehe Bild 5).
Bild 5: Gleiches Bild für eine Schaltfläche auswählen
Schließlich finden wir auch noch im Ribbon das bereits hinzugefügte Bild als Auswahl für neu anzulegende Bildsteuerelemente – siehe Bild 6.
Bild 6: Das selektierte Bild erscheint im Ausklappmenü.
Speicherort der „freigegebenen“ Bilddateien
Wo aber werden diese Bilder gespeichert? Diese landen in einer Systemtabelle, die üblicherweise nicht im Navigationsbereich angezeigt wird. Um diese sichtbar zu machen, klickt man mit der rechten Maustaste auf den Titel des Navigationsbereichs und wählt aus dem Kontextmenü den Befehl Navigationsoptionen… aus. Im nun erscheinenden Dialog wählt man im Bereich Anzeigeoptionen die beiden Optionen Ausgeblendete Objekte anzeigen und Systemobjekte anzeigen aus.
Danach sehen wir im Navigationsbereich die Tabelle MSysResources, die in der Datenblattansicht nach dem Öffnen wie in Bild 7 aussieht.
Bild 7: Bilddatei in der Tabelle MSysResources
Zwischenstand
Wir wissen also nun, dass von uns zu Schaltflächen oder Bild-Steuerelementen hinzugefügte Bilder in der Tabelle MSysResources landen. Wenn wir eine speziellen Sammlung an Bildern vorab in diese Tabelle laden wollen, damit wir beim Entwerfen von Formularen und Berichten aus diesem Fundus schöpfen können, müssen wir jedes Bild einzeln zur Anwendung und damit zur Tabelle MSysResources hinzufügen.
Bilder schnell hinzufügen per VBA
Ich hatte mal ein Add-In entwickelt, mit dem dies schneller ging, aber dieses hat aufwendige Prozeduren verwendet, um dies zu realisieren.
Zwischendurch hat Microsoft aber still und heimlich einen Befehl zur Klasse CurrentProject hinzugefügt (ich bin mir zumindest sicher, dass dieser früher noch nicht vorhanden war).
Diese Methode erwartet zwei Parameter:
- Name des Bildes, wie er in der Liste erscheinen soll
- Pfad zur Bilddatei, die importiert werden soll
[
Im Direktbereich kann man diese Methode wie in Bild 8 aufrufen.
Bild 8: Die Methode AddSharedImage der CurrentProject-Klasse
Wir haben einige .png-Dateien direkt im Verzeichnis der Datenbank gespeichert und für den ersten Versuch die Methode wie folgt aufgerufen:
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo