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

VBA [basics]: Warum Option Explicit wichtig ist

Bei unseren Access-Audits, wo wir uns die Datenbanken der Kunden immer genau anschauen, fällt uns eines immer wieder auf: Kaum jemand verwendet die Compiler-Direktive Option Explicit. Die meisten wissen noch nicht einmal, wofür diese gut ist. Dabei kann das Weglassen dieser Schlüsselwörter zu großen Problem in Deiner Anwendung führen. Welche das sind und wie Du das Problem löst, zeigen wir in diesem Artikel.

Weiterlesen

Formulare [basics]: Abhängige Comboboxen

Ein regelmäßig nachgefragtes Problem ist das der abhängigen Kombinationsfelder. Das bedeutet, dass man für eine Haupttabelle, zum Beispiel zum Verwalten von Fahrzeugen, zwei verknüpfte Tabellen hat, in denen die Hersteller und die Modelle gespeichert werden. Die Tabelle mit den Modellen ist wiederum über ein Fremdschlüsselfeld mit der Tabelle der Hersteller verknüpft. Auf diese Weise könnten wir in einem Formular nach der Auswahl eines Herstellers für ein Fahrzeug über ein Kombinationsfeld in einem weiteren Kombinationsfeld nur noch die Einträge der Tabelle tblModelle anzeigen lassen, die von diesem Hersteller angeboten werden. In diesem Artikel zeigen wir, welche Schritte notwendig sind, um dieses abhängige Kombinationsfeld immer mit den korrekten Daten zu füllen.

Weiterlesen