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

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

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, 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

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

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

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

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

Mit Ordnern und Dateien im TreeView arbeiten, Teil 1

Im Artikel „Ordner und Dateien in Access-Tabellen einlesen“ (www.access-im-unternehmen.de/1583) haben wir gezeigt, wie wir schnell Ordner und Dateien in Tabellen speichern, in „Dateien schnell im TreeView-Steuerelement anzeigen“ (www.access-im-unternehmen.de/1584) haben wir Techniken vorgestellt, mit denen wir die Daten dieser Tabellen performant in einem TreeView-Steuerelement präsentieren. Im vorliegenden Artikel schauen wir uns nun an, wie man in diesem TreeView-Steuerelement mit den Ordnern und Dateien arbeiten kann: Wie zeigen wir einen Ordner direkt im Windows-Explorer an? Wie öffnen wir eine Datei direkt per Doppelklick? Wie können wir Kopieren, Ausschneiden und Einfügen im TreeView nutzen? Wie benennen wir Ordner und Dateien um? Und schließlich: Wie übertragen wir diese Änderungen direkt auf das Dateisystem?

Weiterlesen

Datum schnell per Tastatur einstellen

Die Eingabe von Datumsangaben ist erstens manchmal unkomfortabel und zweitens passiert es oft, dass Benutzer das Datum im falschen Format eingeben. Dem wollen wir mit der Lösung aus diesem Beitrag vorbeugen, indem wir die Eingabe vollständig über die Tasten „Nach oben“, „Nach unten“, „Nach rechts“ und „Nach links“ ermöglichen. Sobald der Benutzer den Fokus auf ein Datumsfeld setzt, wird das aktuelle Datum eingesetzt, sofern das Feld noch leer ist. Dann kann er mit „Nach links“ und „Nach rechts“ zwischen den einzelnen Datumsbestandteilen Tag, Monat und Jahr wechseln und mit den Tasten „Nach oben“ und „Nach unten“ stellt er schrittweise den gewünschten Wert ein. Die Funktionalität bilden wir anschließend auch noch in einer Klasse ab, sodass die Funktion einfach mit zwei Zeilen Code zu einem Datums-Textfeld hinzugefügt werden kann.

Weiterlesen

Schnelle Schaltflächen mit Stil

Je schneller ich Ergebnisse beim Programmieren erhalten möchte, desto ungeduldiger werde ich, wenn mich kleinteilige, sich ständig wiederholende Aufgaben aufhalten. In diesem Fall ist vom Anlegen von Schaltflächen die Rede. Ich hätte gern so schnell wie möglich Schaltflächen, welche die von mir gewünschte Beschriftung, einen passenden Namen und je nach Situation ein Icon enthalten. Diese Icons sollen nach meinen Wünschen gestaltet sein – also beispielsweise mit transparentem Hintergrund und ohne Rahmen, sodass nur das Icon und die Beschriftung erscheinen und die Schriftfarbe und Schriftbreite diese als Schaltfläche von den Beschriftungen abhebt. Schließlich sollte auch noch direkt der VBA-Editor mit der passenden Ereignisprozedur geöffnet werden. Das alles umfasst einige Schritte, und auch wenn man eine Schaltfläche einmal formatiert hat und diese dann kopiert und als Vorlage für eine neue Schaltfläche verwendet, muss man noch einige Aspekte selbst hinzufügen. In diesem Beitrag stelle ich daher einen Assistenten vor, mit dem wir Schaltflächen wesentlich schneller und komfortabler anlegen können.

Weiterlesen