VBA [basics]: Eigene Funktionen und Prozeduren

Wer VBA-Code schreibt, merkt schnell: Bestimmte Abläufe wiederholen sich. Man prüft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code – und wenn sich etwas ändert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die Lösung dafür sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte übergibt und zurückbekommt und wie man Code damit sauber strukturiert.

Weiterlesen

VBA [basics]: Schleifen mit For, Do und While

Einer der größten Vorteile von Programmcode gegenüber manueller Arbeit ist die Fähigkeit, eine Aufgabe beliebig oft zu wiederholen – ohne Ermüdung, ohne Fehler durch Unachtsamkeit und in Sekundenbruchteilen. Genau dafür gibt es Schleifen. In VBA stehen dafür mehrere Konstrukte zur Verfügung: For…Next für Situationen, in denen man genau weiß, wie oft etwas wiederholt werden soll, For Each…Next zum Durchlaufen von Auflistungen, sowie Do…Loop und While…Wend für Fälle, in denen die Anzahl der Durchläufe vorab nicht bekannt ist. In diesem Artikel zeigen wir, wie alle diese Konstrukte funktionieren, wo ihre Stärken liegen und worauf man achten muss.

Weiterlesen

VBA [basics]: Bedingungen mit If und Select Case

Programme, die immer nur stur von oben nach unten durchlaufen, sind selten nützlich. Erst wenn Code auf unterschiedliche Situationen unterschiedlich reagieren kann, wird er wirklich brauchbar. Genau dafür sind Bedingungen da: Sie ermöglichen es, den Programmfluss abhängig von Werten und Zuständen in verschiedene Richtungen zu lenken. In VBA stehen dafür zwei Konstrukte zur Verfügung – das If…Then…Else-Konstrukt für einfache bis mittlere Verzweigungen und Select Case für Situationen, in denen man einen Wert gegen viele mögliche Ausprägungen prüfen möchte. In diesem Artikel zeigen wir, wie beide funktionieren, wann man welches einsetzt und worauf man dabei achten sollte.

Weiterlesen

VBA [basics]: Variablen und Datentypen

Wer mit VBA programmiert, kommt nicht weit, ohne das Konzept der Variablen zu verstehen. Variablen sind gewissermaßen der Arbeitsspeicher eines Programms: Sie nehmen Werte zwischenzeitlich auf, damit wir damit rechnen, sie vergleichen oder weitergeben können. Und damit VBA weiß, was für eine Art von Wert in einer Variablen landet – eine Zahl, ein Text, ein Datum -, gibt es die Datentypen. Wer die falschen Datentypen wählt, riskiert subtile Fehler, die manchmal erst beim Kunden auftauchen. Wer sie richtig einsetzt, schreibt stabileren und schnelleren Code. In diesem Artikel zeigen wir, wie Variablen deklariert werden, welche Datentypen es gibt und wann man welchen verwendet.

Weiterlesen

VBA [basics]: Laufzeitfehler protokollieren

Im Artikel VBA [basics]: Fehlerbehandlung mit VBA (www.access-basics.de/703) haben wir gezeigt, wie die Behandlung von Laufzeitfehlern grundsätzlich funktioniert. Darauf aufbauend zeigen wir im vorliegenden Artikel, wie Du die Fehler, die bei einer Anwendung auftreten, in einer Log-Tabelle protokollieren kannst. Dabei speichern wir Fehlerinformationen wie die Fehlernummer, die Beschreibung, die Nummer der fehlerhaften Zeile, das Modul und die Prozedur, in dem der Fehler aufgetreten ist. Das ist vor allem hilfreich, wenn Deine Anwendung von Deinen Kunden oder Mitarbeitern verwendet wird und Du beim Auftreten eines Fehlers Informationen zu diesem Fehler benötigst, ohne dass der Benutzer Dir diese umständlich in eine E-Mail schreiben oder auf eine andere Weise mitteilen muss.

Weiterlesen

VBA [basics]: Fehlerbehandlung mit MZ-Tools

Im Artikel VBA [basics]: Fehlerbehandlung mit VBA (www.access-basics.de/703) haben wir grundlegend erläutert, wie Fehlerbehandlung in Access funktioniert, im Artikel VBA [basics]: Laufzeitfehler protokollieren (www.access-basics.de/705) haben wir gezeigt, wie man diese Fehler in einer Protokolltabelle verewigen kann. Im vorliegen Artikel wollen wir uns nun ansehen, wie wir die dort beschriebenen Techniken mit so wenig Aufwand wie möglich in unseren Code implementieren. Wenn wir es perfekt machen wollen, müssen wir immerhin alle Zeilen mit Zeilennummern versehen, außerdem sollte jede einzelne Prozedur mit einer Fehlerbehandlungsroutine versehen werden. Da dies Schritte enthält, die immer wieder wiederholt werden müssen, haben wir zwei Möglichkeiten: Entweder wir programmieren uns selbst eine Lösung, mti der wir diese Schritte durchführen können, oder wir nutzen eine bestehende Lösung, die wir für wenig Geld bekommen. In diese Fall schauen wir uns letztere Variante an und zeigen, wie wir die MZ-Tools zum Integrieren einer Fehlerbehandlung nutzen können.

Weiterlesen

Berichte [basics]: Bericht als PDF speichern

Einen Bericht als PDF-Datei zu speichern gehört in vielen Access-Anwendungen zum Alltag: Rechnungen, Lieferscheine, Auswertungen – all das lässt sich direkt aus Access heraus als PDF exportieren und per E-Mail versenden oder archivieren. Access bietet dafür gleich mehrere Wege: über die Benutzeroberfläche für den schnellen Export von Hand, und über VBA für den automatisierten Einsatz. In diesem Artikel zeigen wir beide Varianten und gehen besonders auf den VBA-Weg ein, der auch das Filtern des Berichts vor dem Export erlaubt.

Weiterlesen

VBA [basics]: Fehlerbehandlung mit VBA

Auch bei sorgfältig geschriebenem Code lassen sich Laufzeitfehler nicht vollständig vermeiden. Dateien fehlen, Daten sind unerwartet leer oder Benutzer führen Aktionen in einer anderen Reihenfolge aus als vorgesehen. Damit solche Situationen nicht zum Abbruch der Anwendung führen, stellt VBA verschiedene Mechanismen zur Fehlerbehandlung bereit. In diesem Artikel lernst Du die grundlegenden Techniken der Fehlerbehandlung kennen und erfährst, wie Du sie sinnvoll und strukturiert in Deinen Prozeduren einsetzt.

Weiterlesen

Abfragen [basics]: Verknüpfte und unverknüpfte Tabellen gezielt nutzen

Abfragen sind nicht darauf beschränkt, nur Felder aus einer Tabelle auszugeben oder nach Feldern aus einer Tabelle zu sortieren oder zu filtern. Wir können auch mehrere Tabellen in einer Abfrage zusammenfassen und die Daten dieser Tabellen ausgeben, filtern und sortieren. Dabei gibt es verschiedene Möglichkeiten: Wir können alle Kombinationen aus Daten verschiedener Tabellen ausgeben, wir können nur die verknüpften Datensätze von Tabellen liefern oder auch die Daten einer Tabelle liefern – unabhängig davon, ob in der verknüpften Tabelle auch verknüpfte Datensätze zur ersten Tabelle vorhanden sind. All diese Techniken schauen wir uns im vorliegenden Artikel an.

Weiterlesen