Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.
Mit Office 2024 erscheint am 1. Oktober ein neues Office-Paket, das als Dauerlizenz erworben werden kann. Sie gehen also kein Abonnement ein, sondern können alle enthaltenen Anwendungen auf einem Arbeitsplatz installieren und ohne weitere Kosten beliebig lange nutzen. Realistisch gesehen kann man allerdings nur von einer Nutzungsdauer von etwa 5 Jahren ausgehen, weil Microsoft sich nur für diesen Zeitraum zur Veröffentlichung von Sicherheitsupdates verpflichtet hat. Die genauen Preise und verfügbaren Pakete hat Microsoft bisher nicht bekannt gegeben, aber zumindest wurden die neuen Funktionen für Office 2024 angekündigt. Wie erwartet handelt es sich um einen Teil der Funktionen, die in den letzten Jahren im Rahmen des Microsoft 365-Abonnements in Access 365 integriert wurden.
Wenn Sie Zeichenketten in Ihren VBA-Routinen vergleichen, kann das unter Umständen zu fehlerhaft verarbeiteten Daten führen. In diesem Tipp erklären wir, wie Access Zeichenketten vergleicht, warum es dabei zu falschen Ergebnissen kommen kann und was Sie dagegen tun können. Um das Problem direkt nachzuvollziehen, öffnen Sie die VBA-Entwicklungsumgebung (Alt + F11) und tippen im Direktbereich (Strg + G) die folgende Anweisung gefolgt von Return ein: ? "ABC" <> "abc". Obwohl die beiden Zeichenketten definitiv unterschiedlich sind, kommt Access zum Ergebnis "True", sieht also beide Zeichenketten als identisch an.
FRAGE Ich möchte Fehleingaben in meiner Datenbank so gut wie möglich reduzieren. Wie kann ich in einem Formular verhindern dass ein Datensatz versehentlich aktualisiert bzw. gespeichert wird? Wenn der Datensatz verlassen werden soll, möchte ich eine Überprüfung vornehmen, ob der Datensatz alle Bedingungen erfüllt, also dass zum Beispiel ob ein Startdatum größer als ein Enddatum ist. Ggf. soll der Speichervorgang abgebrochen und eine Fehlermeldung angezeigt werden.
In der letzten Ausgabe haben wir über ein ärgerliches neues Access-Problem berichtet: Nach der Aktualisierung auf die Version 2408 konnte eine Datenbank nicht mehr geschlossen werden. Ein Access-Prozess blieb geöffnet und sorgte dafür, dass das Lockfile der verwendeten Datenbank nicht gelöscht wurde. Außerdem kam es bei der Arbeit in Access regelmäßig zum Fehler 3048 ("Es können keine weiteren Datenbanken geöffnet werden."). Wir haben verschiedene Workarounds beschrieben, aber ab sofort steht ein Bugfix zur Verfügung.
Zu Dokumentationszwecken müssen Sie manchmal festhalten, wann und wie viele Seiten einzelner Berichte ausgedruckt wurden. In unserem aktuellen Tipp stellen wir eine VBA-Protokollfunktion vor, die Sie schnell in Ihre Anwendungen und dann in jeden Bericht integrieren können. Sie legen dazu in der Datenbank, in der Ausdrucke protokolliert werden sollen, im ersten Schritt eine Tabelle "Druckprotokoll" an.
FRAGE Ich arbeite ständig mit zwei geöffneten Formularen; ein Auftragsformular zur Erfassung der Tätigkeiten (Auftragsverwaltung) und ein Formular mit den Liegenschaften (Strassen). Wie kann ich per Doppelklick oder per Button einen Straßennamen aus dem Feld "Strasse" (Formular "Strassen") in das Feld "Einsatzort" (Formular "Auftragsverwaltung") einfügen. Mit Strg + C und Strg + V (Kopieren und Einfügen) ist das bei mehreren zu erfassenden Aufträgen sehr zeitraubend.
Über Schaltflächen neben einem Memofeld in einem Access-Formular möchten Sie zum Beispiel häufig benutzte Textbausteine per Mausklick an der Cursorposition einfügen. Das Problem dabei: Durch den Wechsel zur Schaltfläche verliert das Memofeld den Fokus und damit auch die Cursorposition. Wir zeigen in diesem SmartTipp, wie Sie per VBA gezielt an einer bestimmten Stelle einen Text einfügen können, so dass der Textbaustein an der aktuellen Cursorposition landet.
Es ist einmal wieder soweit: ein Microsoft 365-Update sorgt für größere Probleme beim Einsatz von Access. Nach der Aktualisierung auf die Version 2408 (unterschiedliche Build-Nummern je nach Updatekanal) gibt es reproduzierbar Probleme, eine Datenbank zu schließen. Ein Access-Prozess, der nur über den Task-Manager geschlossen werden kann, bleibt geöffnet und sorgt auch dafür, dass das Lockfile der verwendeten Datenbank nicht gelöscht wird. Außerdem kommt es bei der Arbeit in Access regelmäßig zum Fehler 3048 ("Es können keine weiteren Datenbanken geöffnet werden."). Ein Bugfix von Microsoft steht noch aus, aber es gibt zum Glück Workarounds.
Um Daten zwischen Makros, VBA-Routinen, Formularen, Berichten und Abfragen auszutauschen, nutzen Sie in der Regel globale Variablen und entsprechende benutzerdefinierte Funktionen zum Auslesen der Variableninhalte. Diese Art des Daten- und Informationsaustausches ist nicht nur sehr umständlich, sondern auch unsicher: Wenn es zu einem VBA-Fehler kommt oder Sie Änderungen vornehmen, werden die Module automatisch deinitialisiert und Variableninhalte gehen verloren. Schlimmstenfalls können dann "leere" Variablen verarbeitet werden, so dass es zu falschen Ergebnissen bei der Verarbeitung Ihrer Daten kommen kann. Das war Anlass für das Access-Entwicklerteam, eine neue Technik für den Daten- und Informationsaustausch einzuführen, die sogenannten "TempVars" (Temporary Variables, temporäre Variablen). Wir zeigen in diesem zweiteiligen Tipp der Woche wie Sie die neue Funktion optimal nutzen.
FRAGE Für meine Datenbank-Anwendung möchte ich per VBA aus Access heraus Absätze aus einem Word-Dokument lesen und zur Aktualisierung auch in ein Dokument zurückschreiben. Bisher schaffe ich es allerdings nur, Textmarken (Bookmarks) für die virtuelle Positionierung und Auswahl zu verwenden. Im Praxiseinsatz ist das aber zu unflexibel. Ich möchte an beliebigen Stellen Text einfügen, ohne dass Textmarken vorhanden sein müssen.
Dieses Blog präsentiert Inhalte aus den E-Mail-Newslettern von SmartTools Publishing. Premium-Beiträge, die mit [S+] gekennzeichnet sind, sind Newsletter-Abonnenten vorbehalten.
Jetzt Abonnent werden
Falls Sie SmartTools Access Weekly noch nicht abonniert haben, können Sie sich jetzt anmelden – kostenlos und innerhalb weniger Minuten! Sie erhalten dann umgehend ein Passwort, das alle Premium-Beiträge für Sie freischaltet.
[S+] Inhalte freischalten
Wenn Sie SmartTools Access Weekly bereits beziehen, geben Sie hier Ihr Abonnenten-Passwort ein, um alle Premium-Beiträge freizuschalten:
Tipp: Sie finden das gültige Passwort immer am Ende der neuesten Ausgabe Ihres Newsletters.