ADODB: Connections und Connectionstrings

Wer auf die Inhalte von Datenbanken wie Access, SQL Server und anderen zugreifen möchte, benötigt eine spezielle Datenzugriffstechnologie. Unter VB6, VBA und twinBASIC verwendet man dazu in der Regel die DAO-Bibliothek, in Office “Microsoft Office 16.0 Access database engine Object Library” genannt, oder die ADODB-Bibliothek (“Microsoft ActiveX Data Objects 6.1 Library”). Geschichtlich wurde mal die eine, mal die andere von Microsoft als die zu bevorzugende Datenzugriffstechnik bezeichnet. Derzeit verwendet man meist DAO, vor allem in Verbindung mit Access-Datenbanken, aber beim Zugriff auf SQL Server-Datenbanken bietet ADODB einige Features, die wir mit DAO nicht nutzen können. In diesem Artikel steigen wir in die Programmierung von Datenbankzugriffen mit ADODB ein. Dabei schauen wir uns als Erstes die Connection-Klasse an, mit der erst einmal eine Verbindung zur Datenbank aufgebaut werden kann.

Weiterlesen

ADODB: SQL-Befehle schnell ausführen mit Execute

ADODB bietet verschiedene Techniken, um SQL-Befehle zum Abfragen oder Ändern von Daten auszuführen. Die bekannteste zum Abfragen von Daten dürfte die OpenRecordset-Methode sein. Für das Ausführen von Anweisungen kann man für vollen Komfort am besten die Command-Klasse mit der Execute-Methode verwenden. Aber auch die Connection-Klasse bietet bereite eine Execute-Methode an. Mit dieser lässt sich schnell und flexibel Einiges erledigen. Welche Möglichkeiten sie bietet und wie wir diese für den Datenzugriff nutzen können, zeigen wir in diesem Artikel.

Weiterlesen

Automation mit Zapier, Make und Co.

Es gibt immer mehr Möglichkeiten, sogenannte SaaS (Software as a Service) durch Automationen zu verknüpfen. SaaS sind zum Beispiel Calendly zur Terminplanung, Online-Buchhaltungsprogramme wie lexoffice, Projektmanagement-Tools wie Trello, E-Mail-Marketing-Tools, E-Commerce-Anwendungen, CRM-Systeme, Business Intelligence Tools wie Power BI oder täglich verwendete Tools wie Microsoft Teams, Zoom oder die Google Suite. Diese Tools haben wichtige Gemeinsamkeiten: Sie sind allesamt online verfügbar und somit über den Browser steuerbar. Und sie bieten Automations-Schnittstellen an, mit denen sie einerseits Trigger auslösen können und damit andererseits verschiedene Aktionen anstoßen. Da Du als Leser dieses Magazins zweifelsohne früher oder später mit Tools wie diesen in Verbindung kommen wirst, wollen wir Dir zeigen, wie Du Automationen zwischen diesen Tools erstellen kannst. Dabei wollen wir in diesem Einführungsartikel zwei der bekanntesten Tools ansehen, und zwar Zapier und Make.com. Microsoft Power Automate haben wir bereits früher einmal in diesem Magazin vorgestellt.

Weiterlesen

ADODB: Transaktionen im SQL Server

Transaktionen im Kontext von Datenbankanwendungen sind mehrere SQL-Anweisungen zum Ändern, Löschen oder Hinzufügen von Daten, die entweder alle oder gar nicht ausgeführt werden. Wir markieren den Start einer solchen Transaktion durch eine bestimmte Methode, führen dann eine oder mehrere SQL-Anweisungen aus und entscheiden dann, ob die Transaktion abgebrochen oder abgeschlossen werden soll. Wenn die Transaktion abgebrochen wird, werden alle seit Beginn der Transaktion in ihrem Kontext durchgeführten Änderungen rückgängig gemacht. In diesem Artikel sehen wir uns an, wie wir solche Transaktionen mit der Execute-Methode von ADODB umsetzen können.

Weiterlesen

SQL Server: Fehlerbehandlung in DAO und ADODB

Die Fehlerbehandlung in VBA ist relativ einfach zu handhaben, sobald man einmal die grundlegenden Techniken kennt. Nicht viel anders sollte es eigentlich sein, wenn man die Daten nicht mehr aus Access-Tabellen bezieht, sondern aus SQL Server-Tabellen. Es gibt jedoch einige Unterschiede, die man kennen sollte. In diesem Artikel zeigen wir, welche Besonderheiten auftreten, wenn man nicht mehr auf Access-Tabellen zugreift, sondern auf verknüpfte SQL Server-Tabellen und dabei die Datenzugriffstechniken DAO- und ADODB nutzt. Im letzteren Fall gibt es sogar noch Unterschiede bezüglich der verwendeten Treiber/Provider.

Weiterlesen

Ist die 32- oder 64-Bit-Version von Office installiert?

Diese Frage, ob Office in der 32-Bit- oder in der 64-Bit-Version vorliegt, ist für viele Aufgaben interessant. Seit Access 2019 wird Office standardmäßig in der 64-Bit-Version installiert. Es gibt jedoch auch immer alternativ die 32-Bit-Version. Vor Access 2019 war die 32-Bit-Installation Standard. Wozu aber benötigen wir diese Information überhaupt? Wenn wir das VBA-Projekt einer Access-, Excel-, Word- oder PowerPoint-Datei programmieren oder das Outlook-Objektmodell und dabei weder ActiveX-Steuerelemente noch Integrationen wie COM-DLLs oder COM-Add-Ins oder API-Funktionen nutzen, spielt es keine Rolle, ob wir mit 32-Bit- oder 64-Bit-Office arbeiten. Sobald jedoch eines der genannten Elemente auftaucht, müssen wir genau prüfen, ob dieses unter beiden Versionen arbeitet. Wir schauen uns kurz an, wo besonderes Augenmerk gefragt ist und wie wir es dem Benutzer mitteilen können, wenn seine Office-Version und unsere Erweiterungen nicht kompatibel sind.

Weiterlesen

Dateien mit VBA-Bordmitteln verwalten

Die Verwaltung von Dateien per Code ist öfter gefragt, als man denkt. Damit lassen sich Verzeichnisse erstellen, auslesen und entfernen, Dateien erstellen, löschen und bearbeiten und vieles mehr. Leider sind die Bordmitteln von VBA hier teilweise ein wenig sperrig. Allerdings sind sie für einfache Aufgaben durchaus ausreichend und erfordern nicht den Einsatz einer zusätzlichen Bibliothek wie der Scripting Runtime, wie es beispielsweise beim FileSystemObject der Fall ist. Also schauen wir uns in diesem Artikel einmal die Elemente von VBA an, mit denen wir auf die Elemente des Dateisystems zugreifen können und zeigen, was sich damit alles anstellen lässt. Schließlich schauen wir aber auch noch kritisch auf mögliche Nachteile.

Weiterlesen

VBA und Textdateien: Alles über Open, Close und Co.

VBA bietet einige Möglichkeiten für das Erstellen, Füllen, Ändern und Auslesen von Textdateien. Mit diesen kann man zwar nicht alle Aufgaben bewältigen, aber für einfache Zwecke lohnt sich ein Blick auf diese Sammlung. Wir meinen damit Anweisungen wie Open, Close, Print, Input und einige weitere, die spannenderweise im Objektkatalog noch nicht einmal erwähnt werden. Wir werden uns in diesem Artikel eingehend mit diesen Anweisungen beschäftigen und in verschiedenen Beispielen zeigen, wie sich damit immer wiederkehrende Aufgaben wie das Schreiben oder Lesen von Textdateien leicht bewältigen lässt.

Weiterlesen

Outlook: Mails nach dem Senden per VBA verschieben

Für eingehende E-Mails gibt es unter Outlook die Regel-Funktion, mit der man einstellen kann, unter welchen Umständen eine E-Mail, die im Posteingang landet, in einen anderen Ordner verschoben werden soll. Das kann man beispielsweise nutzen, um immer wiederkehrende Rechnungen direkt in den entsprechenden Ordner zu verschieben. Wünschenswert wäre, wenn es eine solche Funktion auch für versendete E-Mails gäbe. Da Outlook hier aber keine eingebaute Funktion bereitstellt, schauen wir uns das Thema einmal genauer an und entwickeln VBA-Code, mit dem wir diese Aufgabe selbst steuern können. Dabei wollen wir sowohl über die Benutzeroberfläche gesendete E-Mails erfassen als auch E-Mails, die wir per VBA absenden.

Weiterlesen

Outlook: Gesendete Mails per COM-Add-In verschieben

In einem anderen Artikel namens “Outlook: Mails nach dem Senden per VBA verschieben” (www.vbentwickler.de/440) haben wir die grundlegenden Techniken gezeigt, mit denen wir E-Mails, die wir selbst versendet haben, nicht in den Ordner Gesendete Elemente verschieben, sondern in einen Ordner unserer Wahl. Damit können wir einfach E-Mails in bestimmten Kontexten direkt in einen Ordner verschieben, wo auch die übrigen E-Mails zu diesem Thema landen. Eigentlich läuft diese Funktion automatisch und bedarf keiner Benutzer-Interaktion, aber wir benötigen eine Möglichkeit, die Regeln für das Verschieben der E-Mails zu definieren. Dazu haben wir eine Textdatei benutzt, die wir für den Benutzer auf einfachem Wege zugänglich machen wollen, zum Beispiel durch das Anklicken eines Ribbonbuttons. Dazu verwenden wir ein COM-Add-In, dem wir auch noch die eigentliche Funktion hinzufügen – und noch ein paar Extras. In diesem Artikel beschreiben wir, wie Du ein solches COM-Add-In mit twinBASIC ganz einfach selbst bauen kannst.

Weiterlesen