PDF erstellen mit Access im Detail

Das Erstellen von PDF-Dateien mit Access ist eine wichtige Technik, denn viele Daten sollen einmal über einen Bericht in eine PDF-Datei exportiert werden. Das Paradebeispiel dafür sind Angebote, Aufträge, Rechnungen et cetera, also alles, was mit der Verarbeitung und Abrechnung eines Kaufs oder eines Projekts zusammenhängt. Aber es gibt auch andere Anwendungszwecke. In diesem Beitrag schauen wir uns die verschieden nativen Möglichkeiten von Access zum Erstellen von PDF-Dokumenten an und gehen dabei auch auf Spezialitäten wie das Format PDF/A ein und wie wir Dokumente in diesem Format erstellen können. Es ist nicht schon immer selbstverständlich, dass wir dies mit Access erledigen können – lange waren dafür spezielle PDF-Druckertreiber von Drittherstellern oder andere Tricks nötig. Seit einiger Zeit jedoch lässt sich dies mit dem integrierten Druckertreiber erledigen.

Weiterlesen

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 Spezialitäten wie Dokumente im PDF/A-Format erzeugen. Während wir dazu über die Benutzerfläche lediglich ein 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

Access-Frontend automatisch aktualisieren

Wenn man allein mit einer Access-Anwendung arbeitet, die man währenddessen weiterentwickelt, ist man immer auf dem aktuellsten Stand. Wer eine Anwendung auf die Arbeitsplätze seiner eigenen Mitarbeiter oder sogar die der Mitarbeiter eines Kunden installiert hat, muss schon ein wenig Aufwand betreiben, wenn jeder immer die aktuellste Version der Anwendung vorfinden soll. Die alte Version muss entfernt und die neue installiert werden. Hier kann man die Benutzer informieren, sodass diese die notwendigen Schritte manuell durchführen oder man erledigt dies selbst. Praktischer wäre es jedoch, wenn die Anwendung selbst erkennen würde, wenn es eine neue Version gibt, und dann selbstständig ein Update durchführt. Das geht natürlich nicht, weil sie sich nicht selbst löschen und durch eine neue Version ersetzen kann, während sie läuft. Also benötigen wir einen kleinen Workaround: Wir stellen dem Öffnen der eigentlichen Anwendung eine weitere Access-Anwendung voran, die auf Updates prüft und diese durchführt und erst dann die eigentliche Anwendung aufruft. Alle notwendigen Schritte erläutern wir in diesem Beitrag.

Weiterlesen

Gespeicherte Importe und Exporte verwalten

Microsoft Access bietet die Möglichkeit, nach Abschluss eines Imports oder Exports die Importschritte oder Exportschritte zu speichern. Dazu erscheint ein Dialog, mit dem man wenige Parameter dazu einstellen kann. Diese gespeicherten Importe und Exporte kann man anschließend wiederholen, indem man diese über einen entsprechenden Dialog auswählt. Wir wollen uns in diesem Beitrag einmal ansehen, was hier überhaupt geschieht, wo die Daten gespeichert werden und wie wir diese gegebenenfalls anpassen können, ohne dass wir den Import oder Export erneut durchführen müssen, um die geänderte Konfiguration zu erhalten. Und wie sich zeigen wird, gibt es sogar eine Erweiterung des Objektmodells von VBA zu diesem Zweck, das wir uns genau ansehen werden.

Weiterlesen

Fehler in der Runtime von Access finden

Wenn wir eine Datenbank, die unter der Vollversion von Access fehlerfrei läuft, in der Runtime öffnen, kann es zu unerklärlichen Fehlern kommen. Die Runtime verabschiedet sich dann in der Regel mit einer Meldung wie “Die Ausführung dieser Anwendung wurde wegen eines Laufzeitfehlers angehalten.” Damit können wir natürlich erst einmal nicht viel anfangen. Anlass zu diesem Beitrag ist ein konkretes Problem einer Kundin, deren Anwendung auf der Runtime-Version von Access nicht wie gewünscht funktioniert. Beim Testen der Anwendung in der Runtime kam ich jedoch gar nicht erst soweit wie die Kundin. Es tauchte bereits vorher die besagte Meldung auf. Wie können wir nun herausfinden, was genau den Fehler verursacht und welche Zeile ihn auslöst? Vorgehensweisen dazu stellen wir in diesem Beitrag vor.

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

Seitenränder in Access-Berichten

Im Beitrag “Bericht mit unterschiedlichen Seitenrändern” (www.access-im-unternehmen.de/1517) haben wir untersucht, wie wir einem Bericht für gerade und ungerade Zahlen unterschliedliche Seitenränder zuweisen können. Das ist zunächst vor allem daran gescheitert, dass die in der Seiteneinrichtung zugewiesenen Seitenränder größer waren als die per VBA eingestellten. Diese konnten wir zwar korrigieren, aber scheinbar willkürlich wurden diese wieder auf Werte eingestellt, die nicht mit unseren Anpassungen harmonierten. Also schauen wir uns im vorliegenden Beitrag einmal an, woher diese Daten überhaupt kommen, wo sie gespeichert werden und wir wir dafür sorgen können, dass sie uns nicht ins Gehege kommen, wenn wir die Seitenränder einmal auf kleinere Werte einstellen als wir sie in den Seiteneinstellungen vorfinden.

Weiterlesen

Bericht mit unterschiedlichen Seitenrändern

Berichte werden in der Regel so ausgelegt, dass sie immer auf der linken Seite einen Rand zum Abheften haben. Bei den meisten Dokumenten ist das völlig ausreichend, zum Beispiel für Rechnungen oder Angebote. Es gibt jedoch auch wesentlich anspruchsvollere Aufgaben, die mit einer Access-Anwendung samt Bericht erledigt werden. Diese sollen dann so ausgedruckt werden können, dass Vorder- und Rückseite eines Blatts bedruckt werden und beim aufgeklappten Dokument der breitere Rand immer zur Heftung hin zeigt. Auch wenn die dazu notwendigen Einstellungen selten angewendet werden: Es gibt sie und in diesem Beitrag zeigen wir, wie man einen Bericht so druckt, dass die Seiten als Broschüre geheftet werden können.

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