Dateien per VBA öffnen

Es gibt viele Gelegenheiten, zu denen man gern eine Datei per VBA öffnen möchte. Ein gutes Beispiel ist ein soeben auf Basis eines Berichts erstelltes PDF-Dokument. Doch der Standardumfang von VBA liefert keine Möglichkeit, diese Aufgabe zu erledigen. Und tatsächlich ist das Anzeigen einer Datei nicht trivial, zumindest dann nicht, wenn wir vorher noch nicht wissen, welchen Dateityp die Datei hat und mit welcher Anwendung diese geöffnet werden soll. Allerdings weiß Windows ja auch meistens, mit welcher Anwendung eine Datei geöffnet werden soll, wenn wir diese im Windows Explorer doppelt anklicken. Also muss es einen Weg geben, diese Aufgabe per Code zu erledigen. Und die Lösung ist eine API-Funktion namens ShellExecute.

Weiterlesen

E-Mail-Adressen validieren per VBA

Immer mehr Vorgänge werden per E-Mail verarbeitet. Dazu gehören auch Bestellungen, Rechnungen et cetera. Früher wurden beispielsweise Rechnungen an die Postadresse geschickt, was einigermaßen fehlertolerant war. Spätestens der Briefträger hat die falsche Hausnummer erkannt und die Sendung dank regelmäßigem Zustellungsgebiet beim richtigen Adressaten abgeliefert. Bei E-Mails verhält sich dies völlig anders: Hier führt jede Ungenauigkeit zur Unzustellbarkeit, toleriert werden allenfalls noch Abweichungen bei der Groß-/Kleinschreibung. Daher lohnt es sich, die E-Mail-Adressen von Kunden und anderen Adressaten zumindest oberflächlich zu prüfen.

Weiterlesen

Datenzugriff mit .NET, LINQPad und LINQ to DB

.NET bietet eine ganze Menge Möglichkeiten, die uns unter Access/VBA nicht zur Verfügung stehen. Und diese Möglichkeiten wachsen ständig weiter, denn Entwickler stellen ihre eigenen Erweiterungen auf der NuGet-Plattform zur Verfügung. Was haben wir als Access-Entwickler nun davon Mittlerweile gibt es Bibliotheken wie LINQ to DB, mit denen Sie leicht von einer .NET-Anwendung auf Access-Datenbanken zugreifen können. Und es gibt mit LINQPad eine Benutzeroberfläche, mit denen Sie einfache Prozeduren mit Visual Basic programmieren können, ohne Visual Studio zu benötigen. Wir wollen diese beiden Tools als Vorbereitung zu einem weiteren Beitrag vorstellen. Dort werden wir diese nutzen, um die Tabellen einer Access-Datenbank mit zufälligen Beispieldaten zu füllen.

Weiterlesen

Steuerelemente per VBA erstellen

Im Beitrag “Formulare per VBA erstellen” (www.access-im-unternehmen.de/1332) haben wir gezeigt, wie Sie per VBA ein neues, leeres Formular erstellen und seine Eigenschaften einstellen. Darauf wollen wir in diesem Beitrag aufbauen und zeigen, wie Sie dem Formular per VBA die gewünschten Steuerelemente hinzufügen können. Und auch Steuerelemente haben eine Menge Eigenschaften, die wir nach dem Anlegen einstellen müssen – Position, Aussehen und auch wieder Ereigniseigenschaften. Nach der Lektüre des vorliegenden Beitrags haben Sie alle Werkzeuge, die Sie brauchen, um beispielsweise Access-Add-Ins zu nutzen, um einer Anwendung neue Formulare und Steuerelemente hinzuzufügen.

Weiterlesen

Beispieldaten generieren mit .NET und Bogus

Das Produzieren von Beispieldaten ist immer wieder eine mühselige Aufgabe. Beispieldaten benötigen Sie, um beim Entwickeln neuer Anwendungen die Funktionen zu testen, die mit der Anzeige, dem Bearbeiten oder Löschen von Daten zusammenhängen. Und auch zum Testen des Hinzufügens von Daten benötigen Sie gegebenenfalls schon Daten in verknüpften Tabellen zur Auswahl. Unter .NET gibt es verschiedene Bibliotheken, die das Generieren von Beispieldaten erleichtern. Leider sind diese nicht so ohne Weiteres unter Access verfügbar. Zum Glück gibt es Tools, mit denen Sie diese Bibliotheken dennoch für Ihre Zwecke einsetzen können. In diesem Beitrag nutzen wir den Editor LINQPad, um Beispieldaten mit der Bogus-Bibliothek zu erzeugen und diese dann mit der Bibliothek LINQ to DB den Tabellen einer Beispieldatenbank hinzuzufügen.

Weiterlesen

Dateien und Verzeichnisse auswählen mit FileDialog

Bereits seit einiger Zeit bietet die Office-Bibliothek das FileDialog-Objekt an. In früheren Versionen gab es dort einige Einschränkungen, weshalb Programmierer gern auf Alternativen zurückgegriffen haben wie etwa die entsprechenden Funktionen der Windows-API oder auch die der nicht dokumentierten WizHook-Klasse. Irgendwann hat Microsoft jedoch auch für Access alle Funktionen der FileDialog-Klasse freigeschaltet, unter anderem auch das Auswählen von zu speichernden Dateien. Daher schauen wir uns in diesem Beitrag einmal an, welche Möglichkeiten die FileDialog-Klasse nun bietet und ob wir diese für unsere Zwecke nutzen können.

Weiterlesen

VBA-Projekt per VBA referenzieren

Access bietet nicht nur die Möglichkeit, Tabellen, Abfragen, Formulare und Berichte per VBA-Code zu erstellen. Sie können auch die Elemente, die Sie im VBA-Editor bearbeiten, per VBA erstellen, bearbeiten und wieder löschen. Dieser Beitrag macht den Start in eine Beitragsreihe, die sich mit den Möglichkeiten zur Programmierung des VBA-Editors und von VBA-Code beschäftigen. In diesem Teil schauen wir uns an, wie Sie überhaupt VBA-Projekte mit VBA referenzieren.

Weiterlesen

Die Eval-Funktion

Die Eval-Funktion erlaubt das Auswerten von Ausdrücken, die als Parameter an diese Funktion übergeben werden. Damit können Sie sich verschiedene Anwendungszwecke erschließen – zum Beispiel die Eingabe von Berechnungen in einfache Textfelder oder das Ermitteln von Eigenschaften von Elementen der Benutzeroberfläche ohne Verwendung des VBA-Editors. Dieser Beitrag zeigt die Möglichkeiten der Eval-Funktion auf.

Weiterlesen

Zugriff auf den VBA-Editor mit der VBE-Klasse

Die VBE-Klasse ist die Schaltzentrale, wenn es darum geht, die Elemente des VBA-Editors und von VBA-Projekten per VBA zu programmieren. Die Klasse ist Teil einer eigenen Bibliothek namens Microsoft Visual Basic for Applications Extensibility 5.3 Object Library. Diese stellt alle Elemente, Methoden und Eigenschaften zur Verfügung, um die im VBA-Editor bearbeitbaren Elemente zu erstellen, zu bearbeiten oder zu löschen. Dieser Beitrag stellt die Eigenschaften und Auflistungen der VBE-Klasse vor und zeigt, wo Sie weitergehende Informationen zu den einzelnen Elementen finden.

Weiterlesen