Schaltflächen-Matrix per VBA erzeugen

Manchmal benötigt man viele gleichartige Steuerelemente. Ein bekanntes Beispiel ist eine Kalenderansicht, wo man mehrere Wochen mit jeweils sieben Tagen über Schaltflächen anzeigen möchte. Ein aktuelles Beispiel aus dieser Ausgabe ist die Iconverwaltung aus dem Artikel „Icons in der Datenbank verwalten“. Hier wollen wir für die zu erzeugenden Schaltflächen die verfügbaren Icons in drei Reihen mit je 15 Icons anzeigen, damit der Benutzer schnell das gewünschte Icon auswählen kann. In diesem Beitrag zeigen wir, wie man solche Schaltflächen schnell zu einem Formular in der Entwurfsansicht hinzufügen kann.

Weiterlesen

Tabellen und Abfragen im Unterformular anzeigen

Unterformulare für die Datenblattansicht nutzen wir normalerweise, wenn wir die Daten einer festen Datenquelle passend zu den Daten im Hauptformular anzeigen wollen – zum Beispiel für Kunden im Hauptformular und ihre Bestellungen im Unterformulare. Manchmal möchte man aber auch einfach mal schnell Daten aus beliebigen Tabellen einsehen. Warum dann nicht einfach die Tabelle oder Abfrage in der Datenblattansicht anzeigen? Weil wir dann im Gegensatz zum Haupt-/Unterformular viel weniger Möglichkeiten haben, was den zum Beispiel den Einsatz von VBA angeht. Wenn wir uns etwa die Lösung aus dem Beitrag Markierte Datensätze aus dem Datenblatt einlesen (www.access-im-unternehmen.de/1548) anschauen, können wir dort per VBA die aktuell markierten Datensätze auslesen. Das ist bei Tabellen oder Abfragen, die wir alleinstehend öffnen, nicht möglich. Deshalb zeigen wir in diesem Beitrag zunächst, wie wir beliebige Tabellen oder Abfragen komfortabel per über ein Kombinationsfeld auswählen und dann im Unterformular einblenden können. Anschließend bauen wir noch die Lösung aus dem oben genannten Beitrag ein.

Weiterlesen

Formular-Timer in Access mit VBA

Formular-Timer in Access können ganz unterschiedliche Aufgaben übernehmen. Die beiden Hauptkategorien sind Benutzerinteraktion und das Umgehen von Einschränkungen durch das System. Bei der Benutzerinteraktion geht es darum, in den gewünschten Zeitintervallen Meldungen anzuzeigen, Informationen abzufragen et cetera. Bei den Systemeinschränkungen haben wir es mit Herausforderungen zu tun, bei denen wir zuerst eine asynchrone Aktion auslösen, die Daten für eine weitere Aktion liefern soll. Diese wird dann aber zu schnell ausgeführt, als dass die Daten bereits vorhanden sind. In diesem Fall können wir mit der asynchronen Aktion einen Formular-Timer starten, der die folgende Aktion erst nach einem ausreichend großen Zeitintervall auslöst, sodass alle Aktionen die notwendigen Daten zur Verfügung haben. In diesem Artikel zeigen wir, wie ein Formular-Timer genau mit VBA programmiert wird: Wie wir das Zeitintervall festlegen, wie wir diesen starten und auch, wie wir ihn nach der Erledigung wieder ausschalten.

Weiterlesen

Spaltenbreiten und -position in ACCDE speichern

Wenn Sie eine Datenbank an die Benutzer weitergeben, verwenden Sie je nach Zielgruppe eine .accde-Datenbank, also eine Datenbank, in welcher der Entwurf von Tabellen, Abfragen, Formularen, Berichten und VBA nicht mehr möglich ist. Damit schützen wir auch den wertvollen VBA-Code vor den Blicken anderer Menschen. Es bringt aber auch mit sich, dass Änderungen an Eigenschaften wie Spaltenbreiten, Spaltenreihenfolge oder die Sichtbarkeit der Spalten nicht gespeichert werden können, da es sich dabei um Änderungen am Design des Formulars in der Datenblattansicht handelt. Gerade wenn Benutzer die Datenblätter nach ihren eigenen Vorlieben umgestalten und dies bei jedem Öffnen eines Formular erneut erledigen müssen, macht sich schnell Frustration breit. Daher zeigen wir in diesem Beitrag, wie Sie eine Funktion zum Speichern und Wiederherstellen der Spalteneigenschaften von Formularen in der Datenblattansicht programmieren können.

Weiterlesen

Markierte Datensätze aus dem Datenblatt einlesen

Die Datenblattansicht ist sehr hilfreich, wenn man die Daten aus Tabellen oder Abfragen in tabellarischer Form darstellen möchte. Sie bietet außerdem Funktionen zum Anpassen der Spalten, der Sortierung und auch der Filter. Zusätzlich können wir damit nicht nur einen Datensatz markieren, sondern gleich mehrere. Wir erhalten zwar nicht den Komfort wie im Listenfeld, wo wir nicht nur zusammenhängende, sondern auch einzelne Einträge selektieren können, aber immerhin ist es grundsätzlich möglich, bei gedrückter Maustaste mehr als einen Eintrag auszuwählen. Die Frage ist nur: Was machen wir mit diesem selektierten Bereich? Das Listenfeld bietet eigene Eigenschaften, mit denen wir auf die markierten Elemente zugreifen können. Das ist in der Datenblattansicht nicht der Fall. Das soll uns jedoch nicht davon abhalten, die gewünschten Daten weiterzuverarbeiten.

Weiterlesen

Platzhalter für Textfelder in Formularen

Textfelder kommen standardmäßig mit Bezeichnungsfeldern. Das reicht eigentlich aus, damit der Benutzer weiß, welche Informationen er in die Textfelder eintragen soll. Moderne Benutzeroberflächen kommen aber teilweise vollständig ohne diese Bezeichnungsfelder aus und zeigen einfach solange, bis der Benutzer etwas eingibt, einen Platzhalter im Textfeld an, der den einzufügenden Wert beschreibt. Das liegt möglicherweise am geringeren Platzbedarf, was gerade auf Smartphones ein Vorteil ist. Es gibt aber noch andere Gründe, warum man Textfelder mit Platzhaltertexten ausstatten sollte. Welche das sind und wie die Anzeige von Platzhaltern realisiert werden kann, zeigen wir in diesem Beitrag.

Weiterlesen

Access-Formulare per Tastenkombination wechseln

In modernen Browsern wie Chrome oder Edge ist es längst selbstverständlich: Mit Tastenkombinationen wie Alt + 1, Alt + 2, Alt + 3 kann man blitzschnell zwischen geöffneten Tabs springen. Hat man diesen Shortcut einmal verinnerlicht, will man nicht mehr ohne arbeiten. Die Tastenkombinationen sind viel schneller, als wenn man mit der Maus auf den jeweiligen Reiter klickt. Man könnte zwar auch per Strg + Tab zwischen den Seiten wechseln, aber warum nicht direkt zur gesuchten Information springen? Da wir auch in Access standardmäßig eine Ansicht vorfinden, die über entsprechende Reiter angesteuert werden kann, stellt sich die Frage: Können wir nicht auch hier solche Tastenkombinationen nutzen? Genau das untersuchen wir in diesem Beitrag.

Weiterlesen

Formular für den Mailversand

Im Beitrag „Outlook.com mit Access und VBA: Vorbereitungen“ und weiteren Beiträgen haben wir gezeigt, wie wir eine E-Mail über die Microsoft Graph API versenden. Da dies möglicherweise in der Zukunft die Alternative dazu sein wird, E-Mails einfach über die Fernsteuerung von Outlook zu verwenden, wollen wir gleich noch zeigen, wie unsere neue E-Mail-Funktion von einem Formular aus verwaltet und aufgerufen werden kann. Dabei wollen wir gleich auf Access-Seite die versendeten E-Mails speichern, wozu wir direkt noch ein kleines Datenmodell erstellen.

Weiterlesen

Prüfen, ob ein Formular geöffnet ist

Immer wieder taucht die Anforderung auf, dass wir prüfen müssen, ob ein Formular geöffnet ist. Das ist zum Beispiel der Fall, wenn man von einem anderen Formular oder Modul aus auf die Inhalte des fraglichen Formulars zugreifen möchte. Es gibt verschiedene Möglichkeiten, zu prüfen, ob das Formular geöffnet ist. In diesem Beitrag schauen wir uns die verschiedenen Möglichkeiten an.

Weiterlesen

Referenzieren von Formularen und Steuerelementen

Wenn man mit VBA programmiert, kommt man nicht um das Referenzieren von Formularen und Steuerelementen herum. Dabei gibt es verschiedene Schreibweisen, verschiedene Ziele und auch noch verschiedene Ausgangspunkte. Bei den Schreibweisen scheiden sich die Geister, ob man Punkte oder Ausrufezeichen verwendet und wie detailliert oder kurz es sein soll. Die Ziele sind Formulare, Unterformulare und die darin enthaltenen Steuerelemente mit oder ohne Datenbindung. Und warum gibt es verschiedene Ausgangspunkte? Weil man einerseits vom Klassenmodul eines Formulars selbst auf die enthaltenen Steuerelemente zugreifen möchte, andererseits aber auch von Formularen auf die Elemente anderer Formulare oder auch von Prozeduren aus Standardmodulen. Wie all dies zusammenhängt und wie die Ausdrücke für die verschiedenen Konstellationen formuliert werden müssen, zeigen wir in diesem Beitrag.

Weiterlesen