Mit Zeiten rechnen

Zeit- und Datumsangaben sind elementarer Bestandteil vieler Anwendungen. Da sollte man wissen, wie man mit diesen Daten rechnet. Dabei ist es einerlei, ob es um das Ermitteln einer Zeitspanne zwischen zwei Zeitangaben oder um das Summieren von Zeiten geht – Stolperfallen gibt es dabei eine ganze Reihe. Dieser Beitrag zeigt, wie Sie die Klippen beim Rechnen mit Zeiten umgehen, egal ob in VBA, Abfragen, Formularen oder Berichten.

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

Bilder für Buttons und Co. schnell hinzufügen

Wenn Sie mit Access ein neues Bild zu einem Formular hinzufügen oder dieses für eine Schaltfläche hinterlegen, speichert Access diese in einer Tabelle namens MSysResources. Das Hinzufügen ist recht einfach und lässt sich per Ribbonbefehl und anschließende Auswahl per Datei öffnen-Dialog realisieren. Allerdings kann man auf diese Weise immer nur ein Bild gleichzeitig zur Anwendung hinzufügen. Wenn man einer Schaltfläche schnell ein Icon zuweisen möchte, wäre es praktisch, wenn alle üblicherweise benötigten Bilder bereits verfügbar sind. Daher schauen wir uns in diesem Beitrag an, wie wir mehrere Bilder auf einen Schlag zur Tabelle MSysResources hinzufügen können.

Weiterlesen

Dateien aus dem Web herunterladen per VBA

Es gibt eine Menge Gründe, warum man per VBA komplette Dateien aus dem Internet herunterladen sollte. Beispielsweise könnte man von dort Listen im Excel- oder .csv-Format herunterladen, um anschließend die enthaltenen Daten in die aktuelle Datenbank einzulesen. Oder man hat eine Anwendung, die beim Kunden läuft, und diese soll in regelmäßigen Abständen prüfen, ob es ein Update für diese Anwendung gibt und die neue Datei bei Bedarf aus dem Internet herunterladen. In diesem Beitrag zeigen wir die Technik, mit der solche Anforderungen umgesetzt werden. Dabei nutzen wir verschiedene Techniken, zum Beispiel per API oder mit dem XMLHTTP-Objekt der Bibliothek Microsoft XML, v6.0.

Weiterlesen

Ribbon: Controls erkennen und ausblenden

Das Dateimenü von Access bietet eine ganze Reihe praktischer Elemente. Diese sind im Alltagsgebrauch eines Entwicklers sehr hilfreich, bieten sie doch schnellen Zugriff auf wichtige Funktionen. Wollen wir eine Anwendung entwickeln und diese an den Benutzer weitergeben, sollen jedoch unter Umständen gar nicht all diese Befehle verfügbar sein. Vielleicht wollen wir zusätzlich oder statt dieser Einträge sogar eigene Elemente hinzufügen, beispielsweise für das Speichern von Anwendungsoptionen. In diesem Fall ist der erste Schritt, einen oder mehrere der vorhandenen Einträge auszublenden. Wie das gelingt, zeigen wir in diesem Beitrag.

Weiterlesen

Sperrung durch Memofeld statt anderer Sitzung

Neulich bat mich ein Kunde, mir einmal ein Netzwerkproblem beim ihm anzusehen. Aufgrund der Fehlermeldung konnte es keine andere Ursache geben – sie lautete “Aktualisieren nicht möglich, momentane Sperrung durch eine andere Sitzung auf diesem Rechner”. Also haben wir uns diese Sache gemeinsam angesehen und zunächst schien die Meldung plausibel – immerhin arbeitete eine andere Mitarbeiterin gerade mit der Datenbank und es konnte gut sein, dass der Datensatz gesperrt war. Allerdings trat das Problem später immer noch auf, obwohl niemand sonst mehr mit der Datenbank arbeitete. Gemeinsam sind wir dem Problem dann auf die Schliche gekommen. Die Überschrift deutet es bereits an: Ein Memofeld spielte eine große Rolle bei der Lösung des Problems.

Weiterlesen

Formatassistent für Textfelder, Teil 2

Access liefert standardmäßig bereits einige Assistenten mit. Für die Format-Eigenschaft jedoch liefert es nur ein Auswahlfeld mit einigen voreingestellten Optionen wie verschiedneen Zeit-, Zahlen und Boolean-Formaten. Diese dienen durchaus als gute Beispiele, wie man selbst Formatierungen vornehmen kann, aber wenn man sich dann an diese Aufgabe begibt, wird schnell ein ziemliches Experimentieren daraus. Um diesen Teil zu vereinfachen, wollen wir Sie mit einem Assistenten unterstützen. Dieser soll direkt über das Eingabefenster für die Format-Eigenschaft geöffnet werden und die Möglichkeit bieten, verschiedene Werte einzugeben und diese mit dem geünwschten Formatierungsausdruck zu testen. Und natürlich finden Sie in diesem Beitrag die Anleitung, wie Sie den Assistenten selbst erstellen können!

Weiterlesen

Tabellenfeldbeschriftungen im Griff

Wozu sollte man Tabellenfeldbeschriftungen im Griff haben? Und was ist das überhaupt? Die Eigenschaft “Beschriftung” von Tabellenfeldern kennen viele Entwickler gar nicht. Dabei könnten sie sich eine Menge Zeit sparen, wenn sie diese Eigenschaft nutzen würden. Trägt man nämlich beispielsweise für ein Feld wie “EMail” eine Beschriftung wie “E-Mail” ein, dann wir diese statt des Feldnamens als Spaltenüberschrift der Tabelle in der Datenblattansicht angezeigt. Und es geht noch weiter: Wenn man in Formularen und Berichten Steuerelemente auf Basis dieser Felder anlegt, übernimmt Access auch dort den Wert der Eigenschaft Beschriftung statt des Feldnamens für die Bezeichnungsfelder Steuerelemente. Man braucht als nur an einer Stelle eine Änderung vorzunehmen und profitiert an vielen anderen Stellen davon. Und wenn man nun nicht in jeder neuen Datenbank die Beschriftungen erneut anlegen müsste … doch auch dafür haben wir in diesem Beitrag eine Lösung.

Weiterlesen

Zugriff auf lexoffice per REST-API und VBA

lexoffice ist ein Online-Buchhaltungsdienst, der es Unternehmen ermöglicht, Rechnungen, Bestellungen und Bankkonten zu verwalten und Berichte zu erstellen. Der Service bietet ein einfaches Dashboard, mit dem Benutzer Geschäftsinformationen leicht auffinden und mit wenigen Klicks auswerten können. Rechnungen lassen sich online oder über die mobile App erstellen, Umsätze auf Bank- oder Paypalkonten liest lexoffice automatisch ein und es ermöglicht die Zuordnung von Ein- und Ausgangsrechnungen zu den Umsätzen. Aber das Beste ist: lexoffice bietet eine REST-API-Schnittstelle, die wir von einer Access-Datenbank aus per VBA ansteuern können. Grund genug, diese Schnittstelle einmal genauer anzusehen!

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