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

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

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

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

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

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

Datum schnell einstellen mit Klasse

Im Beitrag „Datum schnell per Tastatur einstellen“ (www.access-im-unternehmen.de/1590) haben wir eine Lösung vorgestellt, mit der wir allein über die Tasten „Nach oben“, „Nach unten“, „Nach links“ und „Nach rechts“ das Datum in einem Textfeld einstellen können. Diese Lösung haben wir in diesem Beitrag speziell für ein Textfeld programmiert. Noch effizienter wäre die Lösung, wenn wir die Funktionalität in einer Klasse unterbringen, die man mit wenigen Codezeilen schnell zu einem Datums-Textfeld hinzufügen könnte. Genau das erledigen wir im vorliegenden Beitrag.

Weiterlesen

Steuerelement-Wizards programmieren

Access bietet im Formular- und Berichtsentwurf die Möglichkeit, Steuerelemente mithilfe von Steuerelement-Assistenten zu erstellen. Das ist für Einsteiger eine Erleichterung, führt aber auch dazu, dass sie schnell Ergebnisse erzielen, deren Zustandekommen sie anschließend nicht mehr nachvollziehen können. Sie helfen nicht, die zum Anlegen von Steuerelementen und ihren Funktionen nötigen Schritte zu verstehen. Wenn man jedoch genau weiß, wie man Steuerelemente erstellt und programmiert, gelangt man schnell zu dem Punkt, dass man die gleichen Schritte immer wieder manuell durchführen muss. Und hier kommt ein spannendes Feature von Microsoft Access ins Spiel: Wir können auch selbst Steuerelement-Wizards programmieren, mit denen wir Steuerelemente genau nach unseren Wünschen anlegen können. Dabei sparen wir wertvolle Zeit, weil wir diese so gestalten können, dass nur noch wenige Eingaben nötig sind, um die gewünschten Steuerelemente zu erhalten. In diesem Beitrag zeigen wir, welche Steuerelement-Assistenten es schon gibt und wie wir eigene grundsätzlich hinzufügen können.

Weiterlesen