Ein Filterformular für alle Fälle: Die Programmierung

Im ersten Teil dieser Beitragsreihe haben wir gezeigt, wie das Filterformular in eine eigene Datenbank eingebaut und bedient wird. In diesem zweiten Teil werfen wir einen Blick hinter die Kulissen: Wie ist das Filterformular aufgebaut, wie erkennt es den Feldtyp aus dem Recordset, wie baut es den SQL-WHERE-String zusammen, wie funktioniert die dynamische Höhenanpassung – und welche technischen Besonderheiten mussten gelöst werden. Einige dieser Lösungen sind nicht auf den ersten Blick offensichtlich, liefern aber wertvolle Denkanstöße für eigene Projekte.

Weiterlesen

Filterformular für alle Fälle: Einbau und Bedienung

Access bietet von Haus aus komfortable Möglichkeiten zum Filtern von Datensätzen – über das Ribbon, über das Dropdown-Menü im Spaltenkopf des Datenblatts oder über eigene Filtereigenschaften des Formulars. Diese Lösungen stoßen jedoch schnell an ihre Grenzen, sobald man komplexere Filterbedingungen kombinieren möchte oder dem Benutzer eine moderne, übersichtliche Filteroberfläche bieten will. Wir stellen in dieser zweiteiligen Beitragsreihe ein universell einsetzbares Filterformular vor, das sich mit wenigen Handgriffen in jedes bestehende Formular einbauen lässt. Im ersten Teil zeigen wir, wie das Filterformular eingebaut und bedient wird. Der zweite Teil beleuchtet die Programmierung hinter den Kulissen.

Weiterlesen

Filtern und Sortieren von Formularen mit Recordset

Im ersten Teil dieser Beitragsreihe („Detailformular und Datenblatt mit ADODB-Recordset“, www.access-im-unternehmen.de/1601) haben wir gezeigt, wie man ein Formular per VBA-Code an ein ADODB-Recordset bindet. Dabei sind wir auf ein grundlegendes Problem gestoßen: Die eingebauten Sortier- und Filterfunktionen von Access – sowohl im Ribbon als auch im Dropdown-Menü des Datenblatt-Spaltenkopfes – funktionieren bei ADODB-gebundenen Formularen nicht. In diesem Beitrag zeigen wir, wie wir diese Funktionen mit eigenen Mitteln vollständig nachbauen.

Weiterlesen

Detailformular und Datenblatt mit ADODB-Recordset

Access bietet von Haus aus eine komfortable Datenbindung für Formulare: Man trägt eine Tabelle oder Abfrage als Datensatzquelle ein, bindet die Steuerelemente über ihren Steuerelementinhalt an Felder – und Access erledigt den Rest. Wer jedoch sicherstellen möchte, dass seine Tabellen nicht von außen ausgelesen werden können, darf keine Tabellen oder Tabellenverknüpfungen mehr im Frontend haben. Wir müssen uns also nach einer Alternative umsehen. Dazu entfernen wir alle kritischen Elemente aus dem Frontend und bauen die Formulare um. Aber wie greifen wir auf die Daten zu? Dazu nutzen wir die Recordset-Eigenschaft von Formularen und Steuerelementen. Diese können ein per VBA zusammengestelltes Recordset nutzen. In diesem ersten Teil zeigen wir, wie das mit einfachen Detailformularen und in der Datenblattansicht funktioniert. Danach bauen wir unser Wissen aus und beschäftigen uns mit Haupt- und Unterformularen und Steuerelementen wie dem Kombinations- und dem Listenfeld.

Weiterlesen

Die DBEngine-Klasse der DAO-Bibliothek

Wer in Access per VBA auf Datenbanken zugreift, nutzt meist die DAO-Bibliothek – oft ohne zu wissen, dass am Anfang der gesamten Objekthierarchie die „DBEngine“ steht. Sie repräsentiert die Datenbank-Engine selbst und bietet Zugriff auf Arbeitsbereiche, Verbindungen und globale Einstellungen. Dieser Beitrag stellt die wichtigsten Eigenschaften und Methoden der DBEngine-Klasse vor und zeigt anhand praktischer Beispiele, wie Sie diese gewinnbringend einsetzen.

Weiterlesen

Mit Ordnern und Dateien im TreeView arbeiten, Teil 2

Im ersten Teil dieses Beitrags haben wir die Grundlagen für die Arbeit mit Ordnern und Dateien im TreeView-Steuerelement gelegt: Ordner und Dateien im Explorer anzeigen und öffnen, das Ermitteln des Pfades über die Tabellen-IDs, Kontextmenüs für Ordner- und Datei-Elemente sowie die vollständige Implementierung der Ordner-Operationen Kopieren, Ausschneiden, Einfügen, Umbenennen und Löschen. Im vorliegenden zweiten Teil ergänzen wir die noch fehlenden Datei-Operationen und erörtern die Funktionen im Modul „mdlDateisystem“, welche die TreeView-Änderungen tatsächlich auf das Dateisystem übertragen.

Weiterlesen

Button-Wizard programmieren

Im Beitrag „Schnelle Schaltflächen mit Stil“ (www.access-im-unternehmen.de/1563) haben wir ein Formular vorgestellt, mit dem wir komfortabel Schaltflächen anlegen können – mit Icon, Beschriftung, passendem Namen und Ereignisprozedur. Dieses Formular lässt sich in dieser Lösung allerdings nur nutzen, wenn es in der gleichen Anwendung enthalten ist, deren Formulare wir damit anpassen wollen. Um dies praktischer zu gestalten, wollen wir die Lösung in einen Assistenten umwandeln, der beim Hinzufügen eines Buttons zu einem Formular automatisch angezeigt wird. Die dazu notwendigen Schritte beschreiben wir in diesem Beitrag.

Weiterlesen

Berechnete Felder in Tabellen oder besser in Abfragen?

Seit Access 2010 können Tabellenfelder einen berechneten Ausdruck enthalten – etwa die Verknüpfung von Vor- und Nachname oder das Produkt aus Menge und Preis. Die Funktion klingt praktisch, hat aber erhebliche Einschränkungen: Viele Funktionen stehen nicht zur Verfügung, das Ergebnis ist schreibgeschützt, und berechnete Felder lassen sich weder indizieren noch in Verknüpfungen verwenden. Dieser Beitrag zeigt, was geht, was nicht geht – und warum berechnete Spalten in Abfragen fast immer die bessere Wahl sind.

Weiterlesen

ListView aus Tabellen oder Abfragen füllen, Teil 2

Im ersten Teil dieser Beitragsreihe haben wir ein ListView-Steuerelement mit den Daten aus einer Mitarbeitertabelle gefüllt, Icons hinzugefügt und eine Sortierfunktion implementiert. Im vorliegenden Beitrag bauen wir dieses Beispiel weiter aus: Wir zeigen, wie man dem ListView-Steuerelement neue Einträge hinzufügen und bestehende Einträge bearbeiten oder löschen kann. Außerdem erklären wir, wie man die Elemente auch nach numerischen Daten oder nach Datumsfeldern korrekt sortiert. Schließlich fügen wir noch ein Kontextmenü hinzu, mit dem man den Status der Mitarbeiter anpassen kann.

Weiterlesen

Form und Subform in der Datenblattansicht per Wizard

Eine immer wiederkehrende Aufgabe in meinem Programmieralltag ist das Erstellen von Formularen, die ein Unterformular mit Daten in der Datenblattansicht enthalten. Das umfasst einige Schritte, die ich immer wieder manuell durchgeführt habe. Bis ich die Lösung für diesen Beitrag programmiert habe. Einen Assistenten, den ich starte, statt im Ribbon den Befehl zum Erstellen eines neuen, leeren Formulars in der Entwurfsansicht aufzurufen. Und der lediglich eine Information benötigt: Welche Tabelle oder Abfrage soll die Daten für das Unterformular bereitstellen? Das Ganze in einem Assistenten verpackt, der in jeder geöffneten Access-Datenbank per Mausklick gestartet werden kann. Nachfolgend finden Sie die Anleitung, wie ich diesen Assistenten erstellt habe und wie er funktioniert.

Weiterlesen