PDF per VBA erstellen im Detail

Im Beitrag „PDF erstellen mit Access im Detail“ (www.access-im-unternehmen.de/1523) haben wir uns bereits angesehen, wie wir PDF-Dokumente über die Benutzeroberfläche erstellen können. Typischerweise möchte man einem Benutzer allerdings nicht die Aufgabe überlassen, einen Bericht zu öffnen und dann die entsprechenden Schaltflächen im Ribbon aufzurufen, um den Bericht als PDF-Dokument zu speichern. Dazu stellen wir einen eigenen Button zur Verfügung, mit dem wir den Bericht direkt als PDF speichern. Es fehlt also nur noch der passende VBA-Befehl. In diesem Beitrag schauen wir uns an, wie dieser lautet und welche Alternativen es gibt. Außerdem werfen wir einen Blick darauf, wie wir Dokumente im PDF/A-Format erzeugen. Während wir dazu über die Benutzerfläche lediglich eine Option im Dateiauswahl-Dialog aktivieren mussten, ist der Aufwand unter VBA bereits deutlich höher. Aber immerhin ist dieser nur einmalig durchzuführen, weshalb wir gern darauf eingehen.

Weiterlesen

Fehlerbehandlung per VBA hinzufügen

Eine Fehlerbehandlung ist Teil einer professionellen Datenbankanwendung auf Basis von Microsoft Access. Sobald wir eine Datenbank an einen Kunden oder Mitarbeiter weitergeben, also an einen anderen Benutzer als uns selbst, ist dies praktisch ein Pflichtprogramm. Die Fehlerbehandlung soll den Benutzer über einen Fehler informieren und diesem die Möglichkeit geben, dem Entwickler Informationen über den Fehler zukommem zu lassen. In diesem Beitrag wollen wir die Hauptarbeit bei der Implementierung einer Fehlerbehandlung erledigen. Dazu wollen wir eine Prozedur schreiben, die beliebige Routinen, also Sub-, Function- und Property-Prozeduren, mit einer einfachen Fehlerbehandlung ausstattet – und überdies noch mit einer Zeilennummerierung. Diese ist wichtig, wenn wir schnell herausfinden wollen, an welcher Stelle ein Fehler aufgetreten ist. Zusammen mit dem Namen des Moduls, dem Namen der Prozedur, der Fehlernummer und der Fehlerbeschreibung erhalten wir so Informationen, die in der Regel zum Aufdecken des Fehlers führen.

Weiterlesen

Zeilennummern per VBA hinzufügen

Wer eine wirklich professionelle Fehlerbehandlung zu seiner Access-Anwendung hinzufügen möchte, kommt nicht um das Anlegen von Zeilennummern herum. Wenn man Zeilennummern festgelegt hat, kann man diese im Falle eines Fehlers mit der nicht dokumentierten Erl-Funktion auslesen. Das heißt, dass wir neben der Fehlernummer und der Fehlerbeschreibung noch auf die Zeilennummer zurückgreifen können, um den Fehler zu lokalisieren. Dazu gehört allerdings auch, dass wir in der Fehlermeldung Informationen über das Modul und die Prozedur unterbringen, in denen der Fehler aufgetreten ist – doch dies lässt sich einfach realisieren. Sehr aufwändig ist es hingegen, alle Prozeduren von umfangreichen Anwendungen mit Zeilennummern zu versehen. Um dies zu realisieren, nutzen wir die Bibliothek Microsoft Visual Basic for Applications Extensibility 5.3, die alle Möglichkeiten bietet, um auf die enthaltenen Module zuzugreifen und den Code automatisiert nach unseren Wünschen anzupassen.

Weiterlesen

Fehlerhafte Zeilen anzeigen lassen

Im Beitrag „Fehlerbehandlung per VBA hinzufügen“ (www.access-im-unternehmen.de/1514) zeigen wir, wie man Fehlerinformationen direkt per VBA in eine Fehlertabelle schreiben, um diese später zu kontrollieren. Wenn man nun als Entwickler eine fehlerhafte Datei mit einigen protokollierten Fehlern vom Benutzer erhält, möchte man vielleicht direkt die fehlerhaften Stellen direkt einsehen. Dazu muss man allerdings erst nachsehen, welches Modul, welche Prozedur und welche Zeile betroffen sind, dann die entsprechende Stelle im VBA-Editor suchen und so weiter. Bei einer umfangreichen Datenbank kann das sehr mühselig werden, vor allem wenn man sich von Fehler zu Fehler hangelt. Deshalb liefern wir in diesem Beitrag noch eine praktische Ergänzung, wenn Sie ohnehin schon eine Tabelle wie aus dem oben genannten Beitrag zum Speichern der Fehler verwenden: Ein Formular, dass diese Fehler anzeigt und mit dem Sie per Mausklick auf einen Fehler direkt die entsprechende Stelle im VBA-Editor anzeigen können.

Weiterlesen

Registryeinträge für VBA-Anwendungen

Die Registry von Windows ein undurchschaubarer Dschungel an Einstellungen. Wenn man nicht weiß, was man tut, können Änderungen an diesen Einstellungen zu Problemen beim Einsatz von Windows oder Anwendungen kommen. Es gibt einige API-Funktionen, mit denen man auch per VBA Änderungen an der Registry vornehmen kann. Die API-Programmierung ist aber grundsätzlich ein Profithema, und erst recht sollten Einsteiger mit API-Funktionen nicht die Registry manipulieren. Zum Glück hat Microsoft jedoch einen Satz von VBA-Funktionen bereitgestellt, mit denen man halbwegs sicher Informationen in die Registry schreiben und diese auch wieder auslesen kann. Der Clou ist, dass man damit einen speziell für VB- und VBA-Anwendungen vorgesehenen Teil der Registry nutzen kann. In diesem Beitrag stellen wir diese Funktionen vor und zeigen, welchen Bereich in der Registry sich damit nutzen lässt.

Weiterlesen

Access-Quellcodeverwaltung mit GitHub Desktop

Es gibt verschiedene Systeme, mit denen wir die Objekte aus Access extrahieren und unter eine Versionsverwaltung stellen können. In diesem Beitrag stellen wir eine Kombination aus dem kostenlosen Tool „Version Control Add-In“ und „GitHub Desktop“ vor. Dabei zeigen wir, wie die notwendige Komponente zu Access hinzugefügt wird, wie wir diese nutzen, um die Access-Elemente zu extrahieren und wie wir diese mit GitHub Desktop verwalten, um beispielsweise Unterschiede zwischen verschiedenen Versionen einer Datenbank ausfindig zu machen.

Weiterlesen

Datenbanken vergleichen mit GitHub Desktop

Im Beitrag „Access-Quellcodeverwaltung mit GitHub Desktop“ (www.access-im-unternehmen.de/1495) haben wir gezeigt, wir man mit dem Tool „Version Control Add-In“ und mit „GitHub Desktop“ den Inhalt einer Access-Anwendung in Form verschiedener Textdateien in ein externes Verzeichnis extrahieren und davon verschiedene Versionen verwalten und wiederherstellen können. Im vorliegenden Beitrag wollen wir uns nun einen speziellen Einsatzzweck der Kombination dieser beiden Tools ansehen. Angenommen, wir legen regelmäßig Backups unserer Anwendung an. Bei einer neuen Version treten plötzlich Fehler auf, die auf die Änderungen seit dem letzten Backup zurückzuführen sind. Um einzugrenzen, welche Änderungen das Problem auslösen, können wir nun die Elemente der älteren Version exportieren, in ein Repository aufnehmen und als Zwischenstand speichern und dann die aktuelle Version ebenfalls in das Repository schreiben. Dort können wir nun genau anzeigen lassen, welche Unterschiede zwischen den beiden Versionen existieren und dort nach der Ursache für das Problem suchen.

Weiterlesen

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