SQL ausführen mit Execute statt DoCmd.RunSQL

In unseren Audits mit unseren Kunden und Lesern untersuchen wir auch regelmäßig den VBA-Code in deren Access-Anwendungen. Dabei fallen uns immer wieder Programmiergewohnheiten auf, die irgendwann einmal eingeführt und seitdem nie wieder geändert wurden. Eine davon ist, SQL-Anweisungen wie INSERT INTO, UPDATE oder DELETE mit der Methode RunSQL der DoCmd-Klasse auszuführen. Das ist grundsätzlich nicht falsch, solange dies zum Ziel führt. Es gibt jedoch noch mindestens eine Alternative, insbesondere den Aufruf mit der Execute-Methode der Database-Klasse. Diese führt zwar auch nur die übergebene Aktionsabfrage aus, aber sie bietet dennoch einige Vorteile gegenüber DoCmd.RunSQL. Welche das sind und wie wir überhaupt die DoCmd.RunSQL-Methode durch die Execute-Methode ersetzen können, zeigen wir in diesem Beitrag.

Weiterlesen

Daten bearbeiten: Execute vs. Recordset in DAO

Es kommt regelmäßig vor, dass wir Daten in den Tabellen unserer Datenbank bearbeiten müssen. Normalerweise geschieht das über die Benutzeroberfläche. Aber es gibt auch Konstellationen, in denen wir automatisiert Daten zu einer Tabelle hinzufügen oder diese ändern wollen. Manchmal legen wir vollständige Hierarchien an inklusive Daten in verknüpften Tabellen, oder wir ändern auch nur den Wert eines einzelnen Feldes in einem Datensatz. Dazu können wir verschiedene Techniken nutzen, die wir in diesem Beitrag einmal vorstellen und vergleichen wollen. Dabei konzentrieren wir uns auf das Hinzufügen oder Bearbeiten von einzelnen Datensätzen und schauen uns zwei verschiedene Ansätze an: Das Anlegen oder Aktualisieren von Daten mit INSERT INTO oder UPDATE-Abfragen, die wir per VBA zusammenstellen und dann mit der Execute-Methode ausführen oder das Anlegen mit der Recordset-Methode AddNew/Update und das Bearbeiten mit der Edit-Methode.

Weiterlesen

Ordner und Dateien in Access-Tabellen einlesen

Es gibt verschiedene Gründe, warum man Ordner und Dateien aus dem Filesystem in eine entsprechende Datenstruktur einlesen sollte. Der Erste ist offensichtlich: Weil man die Laufwerke, Ordner und Dateien oder auch nur Teile davon innerhalb der Datenbank anzeigen möchte, beispielsweise um zu sehen, welche Dateien zu einem bestimmten Projekt oder Kunden gehören. Der erste Schritt auf dem Weg zu einer solchen Anzeige ist das Einlesen der gewünschten Struktur – unabhängig davon, ob man den kompletten Inhalt einer Festplatte in seinen Tabellen abbilden möchte oder auch nur den Inhalt eines Unterverzeichnisses. Zum Einlesen von Laufwerken, Ordnern und Dateien gibt es verschiedene Möglichkeiten auf beiden Seiten. Auf der Seite des Dateisystems können wir mit der Dir-Funktion oder alternativ mit dem FileSystemObject arbeiten, und beim Schreiben in die Tabellen der Datenbank bietet sich unter DAO das Schreiben mit AddNew/Update oder mit der Execute-Methode an. In diesem Artikel stellen wir die schnellsten Versionen vor, damit das Einlesen umfangreicher Verzeichnis- und Dateistrukturen nicht unnötig lange dauert.

Weiterlesen