Anlagefelder mit mehreren Dateien zum SQL Server

Im Beitrag „Anlage-Feld zum SQL Server migrieren“ (www.access-im-unternehmen.de/1542) haben wir gezeigt, wir man die Inhalte von Anlagefeldern einer Access-Datenbank in ein varbinary(max)-Feld einer SQL Server-Datenbank übertragen können. Dort sind wie davon ausgegangen, dass jedes Anlagefeld immer nur eine Datei enthält, was in vielen Fällen ausreichend ist. Was aber, wenn der Entwickler das Anlagefeld für mehrere Dateien vorgesehen hat – beispielsweise, um ein oder mehrere Produktbilder zu einem Produkt zu speichern? In diesem Fall müssen wir umdenken, den wir können optimalerweise immer nur eine Datei in einem varbinary(max)-Feld speichern. Zum Speichern mehrerer Dateien müssen wir uns also einen Workaround überlegen. Wie dieser aussieht, schauen wir uns im vorliegenden Beitrag an.

Weiterlesen

Benutzerdefinierter Navigationsbereich im Griff

Den Navigationsbereich von Access kennt jeder Access-Entwickler. Damit öffnen und verwalten wir die Access-Objekte beim Entwickeln einer Datenbankanwendung. Aber der Navigationsbereich bietet noch mehr Möglichkeiten, als einfach nur die Tabellen, Abfragen, Formulare, Berichte, Makros und Module sortiert nach Kategorien anzuzeigen und eine einfache Suchfunktion dafür bereitzustellen. Wir können damit auch noch benutzerdefinierte Kategorien und Gruppen erstellen, in denen wir die Objekte individuell strukturieren können. Während die Verwendung dieser Funktionen eher trivial ist, weshalb wir nur einen kurzen Blick darauf werfen, interessiert uns aus Entwicklersicht, wo diese Kategorien und Gruppen sowie die enthaltenen Elemente gespeichert werden. In diesem Beitrag werden die notwendigen Schritte beschrieben, um diese Einstellungen und Elemente bei der Übertragung der Anwendung in eine neue Datenbankdatei zu berücksichtigen.

Weiterlesen

Lastschriften mit DDBAC und VBA

Das Anlegen von Lastschriften ist eine wichtige Funktion, wenn man Kunden neben Zahlungsarten wie Rechnung, PayPal, Kreditkarte et cetera auch noch die Möglichkeit geben möchte, die Bankverbindung anzugeben, um den Betrag zum Fälligkeitsdatum einfach abbuchen zu lassen. Das ist gerade für wiederkehrende Leistungen wie Abonnements praktisch. Dazu sind jedoch erstens einige Voraussetzungen zu erfüllen wie zum Beispiel das Aktivieren der Möglichkeiten zum Einziehen von Lastschriften und das Beantragen einer sogenannten Gläubiger-Identifikationsnummer. Schließlich benötigen wir noch den passenden VBA-Code. Allein damit kommen wir aber nicht aus: Wenn wir gemütlich von unserer Datenbankanwendung aus Lastschriften anlegen wollen, benötigen wir eine zusätzliche Bibliothek. Dabei handelt es sich um die in vielen Anwendungen verwendete DDBAC-Bibliothek. Wie wir die einzelnen Schritte erledigen, um unsere Anwendung zum Anlegen von Lastschriften verwenden zu können, zeigen wir in diesem Beitrag.

Weiterlesen

Dateidownload per API

Manchmal kommt es vor, dass man einen oder mehrere Downloads durchführen muss. Normalerweise führt man diesen Download durch einen Klick auf den entsprechenden Link durch. Die Datei landet danach üblicherweise im Download-Ordner, von wo wir ihn dann zum gewünschten Ort verschieben. Wenn wir zuvor die URL der herunterzuladenden Datei kennen und auch wissen, in welchen Ordner und unter welchem Namen die Datei im System landen soll, können wir dies auch per VBA realisieren. Dazu benötigen wir nur eine einfache API-Funktion und ihren Aufruf.

Weiterlesen

Bilder im SQL Server mit varbinary(max)

Wie man Bilder in Access speichert, ist seit der Version 2010 eindeutig vorgegeben – nämlich in Anlagefeldern. Die Inhalte dieser Felder können auch leicht im Bild-Steuerelement angezeigt werden, dazu braucht man nur eine einfache Bindung an das entsprechende Feld. Allerdings bietet der SQL Server keinen solchen Datentyp, sondern nur verschiedene Alternativen. Dabei handelt es sich beispielsweise um den Datentyp VarBinary(max) oder um FILESTREAM. Die erstgenannte Alternative schauen wir uns im vorliegenden Beitrag an.

Weiterlesen

VBA-InputBox richtig nutzen in Access

Es gibt zwei Elemente, über die man von VBA aus mit Bordmitteln mit dem Benutzer interagieren kann. Die MsgBox-Anweisung liefert ein Meldungsfenster, das man mit verschiedenen Texten, Icons und Schaltflächen ausstatten kann. Die InputBox-Anweisung bietet ein Eingabefenster für einfache Texte an, der auch vorgeben werden kann. Während die InputBox eigentlich recht einfach zu programmieren ist, gibt es dennoch einen Trick, auf den wir in diesem Beitrag eingehen werden. Zusätzlich liefern wir alle Infos, damit Sie die InputBox in Ihren Access-Anwendungen effizient einsetzen können und dem Benutzer die Eingabe notwendiger Daten möglichst einfach gestalten.

Weiterlesen

SQL Server-Tabellenverknüpfungsassistent

Die Bordmittel von Access zum Herstellen oder Aktualisieren von Tabellenverknüpfungen zum SQL Server sind teilweise etwas umständlich zu bedienen und erfordern zwangsläufig den Einsatz von Data Source Names (DSN). Diese möchte man unter Umständen aber gar nicht nutzen, sondern einfach alle Informationen in die Verbindungszeichenfolge für die Tabelle schreiben. Natürlich kann man sich ein Set von Tabellen und Formularen zusammenstellen, mit denen man die Verbindungszeichenfolgen und Tabellenverknüpfungen verwaltet. Diese werden dann bei Bedarf der Datenbank hinzugefügt, deren Tabellenverknüpfungen man pflegen möchte. Aber manchmal möchte man einfach nur schnell mal etwas ausprobieren und dazu ist der Aufwand, die Datenbank um diese Tools zu erweitern, zu aufwendig. Wie wäre es also, wenn wir diese Tools einfach in ein Access-Add-In auslagern, mit dem wir unsere Verbindungszeichenfolgen und Verknüpfungen verwalten können? In diesem Beitrag schauen wir uns an, wie dies aussieht.

Weiterlesen

Fehler bei verknüpften ODBC-Tabellen in Recordsets

Wer eine Migration seiner Access-Datenbank zum SQL Server durchgeführt hat und dabei beispielsweise den SQL Server Migration Assistant genutzt hat, hofft vielleicht, damit schon am Ziel zu sein. Tatsächlich kann das in ganz wenigen Fällen so sein. Das ist aber nicht der Fall, wenn man nicht nur mit Abfragen, Formularen oder Berichten auf den nun statt der ursprünglichen Tabellen verwendeten Tabellenverknüpfungen arbeitet, sondern auch mit VBA – insbesondere mit DAO-Recordsets – auf diese Daten zugreift. Dabei treten gelegentlich Fehler auf. Warum diese nur gelegentlich auftreten und wie wir diese Fehler endgültig verhindern, zeigen wir in diesem Beitrag.

Weiterlesen

Outlook.com mit Access und VBA: Vorbereitungen

Das Damoklesschwert der Abkündigung des klassischen Outlook schwebt über unseren Häuptern: Microsoft treibt die Einführung des neuen Outlook voran und damit zieht sich die Schlinge für alle zusammen, die aktuell beispielsweise von ihrer Access-Anwendung aus per VBA auf Outlook zugreifen. Auf das neue Outlook können wir nicht mehr direkt per VBA zugreifen. Wir brauchen einen neuen Weg, um E-Mails zu versenden, Kontakte zu synchronisieren oder auch um Kalendereinträge zu verwalten. Das liest sich erst einmal nachteilig. In diesem und einigen weiteren Beiträgen wollen wir uns mit alternativen Möglichkeiten beschäftigen, um per VBA aus unserer Datenbankanwendung heraus Outlook zu steuern. In diesem Fall nicht mehr unser gewohntes, klassisches Outlook, aber auch nicht direkt das neue Outlook. Stattdessen zeigen wir, wie man direkt mit den Diensten von Outlook interagieren kann, die wir auch über Outlook.com verwenden können. In diesem Beitrag zeigen wir, wie die Vorbereitung für den Zugriff auf unser Outlook.com-Konto abläuft.

Weiterlesen

Mails senden mit der Microsoft Graph API

Im Beitrag „Outlook.com mit Access und VBA: Vorbereitungen“ haben wir gezeigt, wie wir die Voraussetzungen für den Zugriff auf unser Outlook-Konto mit der Rest-API von Microsoft erschaffen. Dabei haben wir eine Anwendung bei Microsoft registriert und die notwendigen Daten wie die Application-ID, die Tenant-ID und die SecretID ermittelt, die wir für den Zugriff auf die Rest-API benötigen. Außerdem haben wir dort die benötigten Berechtigungen eingestellt, hier erst einmal für das Senden von E-Mails. Was wir nun benötigen, sind zwei Dinge: Erstens ein Token, das wir für die Authentifizierung bei der Rest-API benötigen, zweitens den VBA-Code für die Ausführung der eigentlichen Rest-API-Aufrufe. Damit erstellen wir eine erste Prozedur, mit der wir E-Mails über unser Outlook.com-Konto versenden können. Darauf aufbauend werden wir in weiteren Beiträgen zeigen, wie wir weitere Funktionen implementieren können.

Weiterlesen