VBA-Optionen, die jeder Entwickler kennen muss

Nicht nur Access, sondern auch der VBA-Editor bietet eine Reihe von Optionen an. Diese erlauben, das Aussehen und die Funktionalität des VBA-Editors anzupassen. Es gibt zwar nicht die Fülle von Optionen, die Sie vielleicht von modernen Entwicklungsumgebungen kennen, aber manchmal ist weniger auch mehr. In diesem Beitrag stellen wir die wichtigsten Optionen für den VBA-Editor vor – damit verhindern Sie beispielsweise dauerhaft das Verwenden von nicht deklarierten Variablen, nutzen verschiedene Einstellungen für die Fehlerbehandlung oder deaktivieren nervige Meldungen bei Syntaxfehlern.

Weiterlesen

Zoomen in Access, Teil 2

Im ersten Teil unserer Reihe mit dem Titel „Formulare zoomen in Access“ (www.access-im-unternehmen.de/1605) haben wir uns den ersten Wurf von Microsoft zum Zoomen in Formularen angesehen. Hier war das Zoomen noch auf wenige Ansichten beschränkt, aber Microsoft hat nun nachgebessert. Auch haben wir bemängelt, dass es aktuell noch keine Möglichkeit gibt, den Zoomfaktor programmatisch abzufragen. Außerdem gab es nur einige wenige Befehle, mit denen wir bestimmte Zoomfaktoren einstellen konnten. Auch hier liefert die neue Version eine Neuerung, denn wir können den Zoomfaktor nun nicht nur per VBA genau setzen, sondern diesen auch abfragen. Diese und weitere Verbesserungen, die mit den Versionen 2608 und 2609 veröffentlicht wurden, stellen wir in diesem Beitrag vor.

Weiterlesen

Formulareigenschaften global ändern

Mit „AllowZooming“ und „ZoomResizesWindow“ hat Microsoft zwei Formulareigenschaften eingeführt, die sich ausschließlich über die Properties-Auflistung ansprechen lassen – und das auch nur, wenn das Formular in der Entwurfsansicht geöffnet ist. Wer diese Eigenschaften für eine gewachsene Anwendung mit einigen Dutzend Formularen einstellen möchte, hat stumpfe Fleißarbeit vor sich. Ein guter Anlass, sich ein Werkzeug zu bauen, das beliebige Eigenschaften für alle Formulare und Berichte einer Anwendung ausliest, sichert und setzt. Dieser Beitrag zeigt, wie das gelingt – und wofür sich so ein Werkzeug jenseits der Zoom-Funktion noch alles einsetzen lässt.

Weiterlesen

Reguläre Ausdrücke in VBA, Teil 1: Basics

Wer in VBA prüfen will, ob eine Eingabe eine gültige E-Mail-Adresse ist, baut sich meist eine Schleife mit „InStr“, „Mid“ und „Left“ zusammen – und kämpft dann mit Sonderfällen. Mit regulären Ausdrücken erledigt eine einzige Zeile dieselbe Aufgabe. Das nötige Werkzeug gehört seit vielen Jahren zu Windows, allerdings über eine Bibliothek, die Microsoft gerade abkündigt. Gleichzeitig hat das VBA-Team reagiert und die Funktionalität fest eingebaut. Dieser erste Teil unserer Reihe zeigt, wie Sie das Objekt einbinden, welche Klassen es mitbringt und wie die Mustersprache funktioniert. Der zweite Teil liefert dann fertige Rezepte für den Alltag.

Weiterlesen

Reguläre Ausdrücke in VBA, Teil 2: Praxis-Rezepte

Im ersten Teil dieser Reihe haben wir das RegExp-Objekt eingebunden, seine vier Klassen kennengelernt und die Mustersprache durchgearbeitet. Nun wird es konkret. Dieser Beitrag liefert fertige Muster für die Prüfung von E-Mail-Adressen, Telefonnummern, Postleitzahlen und Kfz-Kennzeichen, dazu Funktionen zum Herauslösen von Daten aus Freitextfeldern, zum Bereinigen kopierter Texte und zum Füllen von Textvorlagen. Alle Beispiele setzen die drei Hilfsfunktionen aus dem ersten Teil voraus – und am Ende zeigen wir eine Falle, die eine Access-Anwendung zuverlässig zum Stillstand bringt.

Weiterlesen

Prüfziffern per VBA berechnen und prüfen

Im Beitrag „Reguläre Ausdrücke in VBA, Teil 2: Praxis-Rezepte“ (www.access-im-unternehmen.de/1617) haben wir mit einem regulären Ausdruck geprüft, ob eine IBAN formal richtig aufgebaut ist. Das schützt aber nur vor groben Schnitzern – ein Zahlendreher in der Kontonummer geht anstandslos durch. Genau dafür gibt es Prüfziffern: eine oder zwei zusätzliche Stellen, aus den übrigen berechnet, die beim Vertippen fast immer nicht mehr passen. Dieser Beitrag zeigt die Verfahren hinter IBAN, ISBN, GTIN, Kreditkartennummer und Umsatzsteuer-Identifikationsnummer und liefert sie als fertige Funktionen, die Sie in Formularen und Abfragen einsetzen können.

Weiterlesen

Fehlendes Option Explicit finden und nachrüsten

Zwei Wörter am Anfang eines Moduls ersparen Ihnen Stunden der Fehlersuche: Option Explicit. Wer sie vergisst, bekommt von VBA jeden Tippfehler in einem Variablennamen klaglos als neue Variable durchgewinkt – und einen Fehler, der sich erst Wochen später als falsches Ergebnis zeigt. In gewachsenen Anwendungen fehlt die Anweisung erfahrungsgemäß in einem Teil der Module. Dieser Beitrag zeigt, wie Sie die Lücken per VBA aufspüren und schließen, ohne jedes Modul einzeln zu öffnen.

Weiterlesen

Rechnen mit Datum und Zeit ohne Überraschungen

Datumsberechnungen wirken harmlos, bis die Abfrage die Datensätze von heute nicht findet, die Kalenderwoche zum Jahreswechsel danebenliegt oder die Summe der Arbeitszeiten plötzlich 07:59 statt 08:00 lautet. Alle drei Fälle haben dieselbe Ursache: Access speichert Datum und Uhrzeit anders, als die angezeigte Darstellung vermuten lässt. Dieser Beitrag zeigt, was dabei schiefgehen kann, und liefert die Funktionen, die Ihnen die üblichen Fallen abnehmen.

Weiterlesen

Gebundene abhängige Kombinationsfelder

Im Beitrag „Abhängige Kombinationsfelder“ (www.access-im-unternehmen.de/****) haben wir beschrieben, wie wir per 1:n-Beziehung verknüpfte Daten in zwei aufeinanderfolgenden Kombinationsfeldern erst filtern und dann auswählen können. Im vorliegenden Beitrag gehen wir einen Schritt weiter und schauen uns an, wie wir abhängige Kombinationsfelder in gebundenen Formularen darstellen. In Formularen in der Einzelansicht gelingt dies ohne Probleme. In der Endlosansicht und der Datenblattansicht stoßen wir jedoch auf Einschränkungen, die wir mehr oder weniger gut umgehen können. Wie das gelingt, lesen Sie ebenfalls in diesem Beitrag.

Weiterlesen

Filterformular erweitern: Kombinationsfelder

In den ersten beiden Teilen dieser Beitragsreihe haben wir ein universell einsetzbares Filterformular vorgestellt und seine Programmierung beleuchtet. Bisher bietet das Formular für Vergleichswerte schlicht ein Textfeld an. Bei einem Feld wie „AnredeID“ oder „KategorieID“, das im aufrufenden Formular über ein Kombinationsfeld dargestellt wird, muss der Benutzer aber die nackte Zahl kennen, nach der er filtern will – wenig komfortabel. In diesem Teil erweitern wir das Filterformular so, dass es solche Lookup-Felder erkennt und im Vergleichsfeld dieselbe Auswahlliste anbietet wie das Originalformular.

Weiterlesen