Access stellt ausreichend Bordmittel zur Programmierung von Datenbankanwendungen zur Verfügung. Dazu gehören die Benutzerschnittstellen zur Gestaltung der Datenbankobjekte wie Tabellen, Abfragen, Formulare und Berichte sowie die Möglichkeit, Abläufe ereignisgesteuert per Makro oder VBA zu automatisieren. Manchmal reichen die vorhandenen Befehle aber nicht aus. In dem Fall greifen Sie auf die Prozeduren der Windows-API (Application Programming Interface) zu. Mit API-Prozeduren können Sie Ihre Anwendungen alles machen lassen, was Windows auch kann.
Es gibt eine ganze Reihe von Verzeichnissen, die es auf jedem Rechner gibt. Manche davon sollten eigentlich immer gleich lauten, aber durch die Installation von Windows oder Software auf Laufwerken mit anderen Laufwerkbuchstaben als C: gibt es hier gelegentlich Unterschiede. In manchen Fällen sorgt auch die Betriebssystemversion für Unterschiede, beispielsweise bei 32bit- gegenüber 64bit-Systemen. Und ganz sicher unterscheiden sich die Verzeichnisse, die dem jeweiligen Benutzer gehören. Dennoch wollen Sie früher oder später einmal dynamisch auf ein bestimmtes Verzeichnis zugreifen wie etwa das Verzeichnis der eigenen Dateien eines Benutzers oder das Add-In-Verzeichnis von Access. Dieser Beitrag zeigt, wie Sie solche Verzeichnisse ermitteln.
Wenn Sie Outlook mit automatischen Funktionen ausstatten, die einen Zugriff auf eine Datenbankanwendung erfordern (in unserem Fall meist auf eine Access-Datenbank), dann müssen Sie irgendwo den Pfad der Datenbankdatei hinterlegen. Dies könnte man vorübergehend statisch in einem Code-Modul erledigen, aber für professionelle Anwendungszwecke sollte dieser Pfad nicht nur geändert werden können, sondern auch an einem anderen Ort gespeichert werden.
Die Datenblatt-Ansicht und das Endlosformular sind gute Helfer, wenn es um die Anzeige mehrerer Datensätze einer Tabelle oder Abfrage geht. Allerdings haben beide einen gravierenden Nachteil: Sie zeigen alle Datensätze immer in der gleichen Höhe an. Wenn also ein Datensatz etwa eine Notiz enthält, die nur eine Zeile lang ist, eine andere aber zehn Zeilen, müssen Sie die Formularhöhe nach dem längsten Inhalt auslegen. Dadurch verlieren Sie wiederum eine Menge Platz, da die Höhe ja auch für kurze Inhalte beansprucht wird. Dieser Beitrag zeigt, wie Sie das Problem mithilfe von HTML und dem Webbrowser-Steuerelement beheben.
Es geschieht gelegentlich, dass Sie einen Standardwert aus mehreren Werten festlegen müssen – beispielsweise, wenn ein Benutzer mehrere E-Mail-Adressen hat, Sie aber eine davon als Standardadresse für ausgehende Mails definieren möchten. Wenn die E-Mail-Adressen in einem Unterformular in der Datenblattansicht angezeigt werden, bietet sich die bedingte Formatierung an, um die jeweils aktive E-Mail-Adresse zu markieren. Wie dies aussehen kann, zeigt der vorliegende Beitrag.
Das Ribbon und seine Programmierung enthält immer noch viele Geheimnisse für uns Access-Entwickler. Dieser Beitrag zeigt einige Techniken, mit denen Sie oft angefragte Konstellationen erhalten – beispielsweise das Ein- und Ausblenden zusätzlicher Ribbon-Elemente mit der Anzeige bestimmter Formulare oder auch das Aktivieren und Deaktivieren von Steuerelementen oder kompletter Ribbon-Bereiche in Abhängigkeit vom Vorhandensein bestimmter Elemente der Benutzeroberfläche.
Berichte haben verschiedene Bereiche, in die Sie die anzuzeigenden Daten einordnen können. Dazu gehört natürlich der Detailbereich, der für jeden Datensatz der Datenherkunft einmal angezeigt wird, der Berichtskopf und der Berichtsfuß sowie der Seitenkopf und der Seitenfuß. Schließlich kommen noch die entsprechenden Kopf- und Fußbereiche eventuell eingerichteter Gruppierungen hinzu. Dieser Beitrag zeigt, was Sie mit den einzelnen Bereichen anstellen können.
In der Datenblattansicht lassen sich ja bereits eine Menge Dinge erledigen – Daten einfügen, löschen, bearbeiten, kopieren, ausschneiden ... Sie können sogar komplette Bereiche kopieren und in andere Bereiche einfügen, sofern diese Bereiche zueinander kompatibel sind, und Access ist hier recht tolerant. Was aber fehlt, ist die Markierung eines Zielbereichs, dessen Felder dann alle mit dem gleichen Wert gefüllt werden. Wenn Sie also etwa für alle Datensätze ein Ja/Nein-Feld anhaken möchten, müssen Sie dies immer noch manuell erledigen. Dieser Beitrag zeigt eine passende Lösung für Datenblätter in Formularen und Unterformularen.
Mit dem Einsatz von Klassen können Sie Ihren Programmcode übersichtlich gestalten. Wenn Sie konkrete Aufgaben mittels wiederverwendbaren Klassen umsetzen, erhalten Sie zusätzlich eine Code-Sammlung, die die Code-Qualität erhöht, weil Sie Korrekturen im Code nur noch an einer Stelle umsetzen müssen. Die in diesem Beitrag beschriebenen Klassen sind wiederverwendbare Klassen für die Erstellung eines Filterausdrucks, die Sie ohne Änderung in Ihre Anwendung importieren und nutzen können.
In Access-Formularen wird regelmäßig Code zum dynamischen Erzeugen eines Filterausdrucks eingebaut. Wie Sie diesen Code übersichtlich gestalten, steht im Beitrag "SQL-Text für Filterbedingungen". Damit die Filter-Klassen aus diesem Beitrag genutzt werden können, ist Code im Formular erforderlich. Mit diesem Code wird die Filterung ausgelöst und der Filterausdruck erzeugt. Außerdem müssen Sie die Klassen in ihre Anwendung einfügen. Diese Aufgaben nimmt Ihnen der ACLib-FilterForm-Wizard ab.
Im Beitrag »Mehrere Datensätze pro Spalte in Formularen« haben wir gezeigt, wie Sie mehrere Unterformulare in einem Formular mit jeweils einem Datensatz füllen, sodass der Eindruck erscheint, die Datensätze wären innerhalb des Formulars in Spalten und Zeilen arrangiert. Im vorliegenden Beitrag zeigen wir ein Beispiel für den praktischen Einsatz dieser Lösung. Dabei wollen wir die Daten einer Kundendatenbank wie in der Kontakte-Ansicht von Outlook als Visitenkarten darstellen – mit der zusätzlichen Optionen, einen Kontakt direkt von der Übersicht aus löschen zu können.
Im Beitrag »Projektzeiterfassung mit Outlook und Access« haben wir Outlook um Funktionen erweitert, die eine einfache Erfassung von Projektzeiten und deren Speicherung in eine Access-Datenbank ermöglichen. Wenn Sie auf diese Weise einige Stunden mit Ihren Projekten erfasst haben, wollen Sie die gespeicherten Daten vermutlich für verschiedene Auswertungen nutzen – beispielsweise, um die bei einem Projekt aufgelaufenen Stunden zu ermitteln. Dieser Beitrag zeigt, wie Sie dies auf einfache Weise erledigen.