Select Case-Bedingung für Texte optimieren

Normalerweise verwenden wir die Select Case-Bedingung so, dass wir im Kopf denen einen Teil des Vergleichsausdrucks platzieren und in den einzelnen Case-Zweigen die Vergleichswerte. Genau genommen ist das der große Unterschied zur If…Then-Bedingung, die immer den kompletten Ausdruck in einem Zweig darstellt. Die If…Then-Bedingung scheint daher bei der Auswertung von Zeichenketten Vorteile zu haben. Wir können aber auch die Select Case-Bedingung prima für Zeichenketten nutzen.

Weiterlesen

Probleme bei Verweisen mit verschiedenen Versionen

Wenn Sie Datenbanken entwickeln, die auf Rechnern eingesetzt werden sollen, die eine ältere Version von Office verwenden, kann es zu Problemem kommen. Abgesehen davon, dass die Datenbank Funktionen enthalten könnte, die auf der Zielplattform nicht verfügbar sind, kommt es vor allem zu Problemen mit Verweisen. Ein Beispiel sind Verweise auf die Office-Anwendungen. Haben Sie Verweise zu den Bibliotheken von Word, Excel, Outlook et cetera, die sich auf die aktuelle Office-Version beziehen, und stellt der Zielrechner diese nicht bereit, kann es sein, dass die Anwendung nicht wie gewünscht funktioniert. Wir schauen uns an, wie die Probleme entstehen und wie wir diese lösen können.

Weiterlesen

URLs kodieren per VBA

URLs enthalten oft Sonderzeichen, die von Internetbrowsern nicht interpretiert werden können. Dabei handelt es sich beispielsweise um Leerzeichen in den Namen von HTML-Dateien oder auch um Sonderzeichen in den Parametern einer URL. Wenn wir zum Beispiel für den Zugriff auf eine REST-API Parameter zu einer URL hinzufügen wollen, die Sonderzeichen enthalten, müssen wir diese für den Browser lesbar machen. Das geschieht durch die sogenannte URL-Kodierung, auch Encoding genannt. Dabei ersetzt man die betroffenen Zeichen durch ein Prozentzeichen gefolgt von einem Zahlencode für das jeweilige Zeichen – bei einem Leerzeichen beispielsweise %20. Die Umwandlung solcher Zeichenketten erledigen wir mit einer VBA-Funktion, die wir im vorliegenden Beitrag vorstellen.

Weiterlesen

Steuerelemente ausrichten per VBA

Access bietet verschiedene Möglichkeiten, um Steuerelemente auszurichten. Diese stellen wir im Beitrag Steuerelemente ausrichten (www.access-im-unternehmen.de/1431) vor. All diese Methoden haben jedoch Vor- und Nachteile. Der größte Nachteil ist, dass sie Zeit kosten – Zeit, die man in viel schönere Arbeiten investieren könnte. Deshalb schauen wir uns in diesem Beitrag an, wie wir in der Entwurfsansicht selektierte Steuerelemente einfach per VBA ausrichten können. Dabei ist nicht die Technik die entscheidende Frage, sondern die Vorgabe, nach welchen Regeln die Ausrichtung genau erfolgen soll. In diesem Beitrag beschreiben wir, wie man per VBA solche Steuerelemente wie Textfeld, Kombinationsfeld, Listenfeld und Kontrollkästchen und ihre Bezeichnungsfelder, die untereinander angeordnet sind, ausrichten kann.

Weiterlesen

VBA: Punkt oder Ausrufezeichen

Unter VBA gibt es Gelegenheiten, wo man zwischen zwei Elemente entweder einen Punkt oder ein Aufrufezeichen setzen kann, zum Beispiel bei gebundenen Steuerelementen in der Form Me.Vorname oder rst!Vorname. Im Gegensatz dazu stehen beispielsweise die Elemente eines Recordsets – hier können wir nur rst!Vorname verwenden, rst.Vorname führt zu einem Fehler. Ganz kompliziert wird es, wenn wir gebundene Steuerelemente auch noch umbenennen. Dann können wir auf den Wert des Steuerelements sowohl über Me!Vorname, Me.Vorname, Me!txtVorname oder Me.txtVorname zugreifen. Und manchmal führt die Syntax mit dem Punkt zu ernsthaften Verwirrungen, weshalb man in manchen Fällen auf jeden Fall die Ausrufezeichen-Syntax nutzen sollte.

Weiterlesen

JSON-Daten auslesen

Für XML gibt es eine eigene Bibliothek zum Lesen und Schreiben der Inhalte eines XML-Dokuments. Bei JSON sieht das anders aus: Microsoft hat bisher keine Bibliothek bereitgestellt, mit dem man komfortable auf ein JSON-Dokument zugreifen kann. Wir wollen diesen Missstand zumindest ein wenig lindern. Es gibt bereits ein Modul, welches den Inhalt einer JSON-Datei in eine Art Objektmodell einliest, das von VBA aus wesentlich einfacher zu lesen ist. Dieses greifen wir in diesem Beitrag auf und zeigen, wie wir die Struktur der enthaltenen Daten erfassen und damit besser und systematisch auswerten können.

Weiterlesen

Prüfen, ob Datenbank geöffnet ist

In einem früheren Beitrag haben wir mit einer Funktion geprüft, ob eine Datenbank geöffnet ist. Diese war jedoch nicht in jedem Fall zuverlässig – also liefern wir eine neue Version für eine solche Funktion. In dieser neuen Funktion versuchen wir, die Datenbank exklusiv zu öffnen. Das gelingt nur, wenn diese aktuell nicht geöffnet ist. Mehr dazu im vorliegenden Beitrag!

Weiterlesen

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