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.
Die Ausführung von Abfragen durch die Jet Engine ist ein komplexer Vorgang. SQL-Code muss analysiert und möglichst effektiv ausgeführt werden, damit die Daten schnellstmöglich zur Verfügung stehen. Dazu erstellt die Jet Engine zunächst einen Plan, den sie anschließend Punkt für Punkt abarbeitet. Eine Analyse dieses Planes kann Schwachstellen deutlich machen und Basis von Optimierungen sein. Dieser Tipp der Woche erläutert, wie Sie den Plan sichtbar und selbst für Optimierungen nutzen können.
FRAGE Ich verwende in einem Formular meiner Access-Datenbank ein Textfeld zur Bearbeitung von importierten Daten, das zunächst Zahlen mit Punkt und Komma getrennt enthält. Nach der Bearbeitung darf nur eine Zahl zwischen 1 und 999 stehen bleiben. Genau das möchte ich gerne programmatisch prüfen und sicherstellen. Wie muss der VBA Code zum Prüfen dieses Feldes lauten und an welchen Stellen setze ich ihn ein?
In den letzten Wochen haben wir sehr viele Anfragen rund um das Thema "E-Rechnungen mit Access" erhalten. Daher möchten wir Ihnen ein kurzes Update zum Stand der Dinge geben. Unser Entwicklerteam hat in den letzten Monaten einige Erfahrungen bei der Umsetzung von verschiedenen individuellen E-Rechnungslösungen für Access, Word, Outlook, Excel und Word gesammelt. Mittlerweile können wir das Erstellen, Auslesen, Visualisieren, Validieren, Exportieren und Ablegen von E-Rechnungen (XRechnung und ZUGFeRD) praktisch in jeder gewünschten Form individuell in Office-Anwendungen integrieren. Wir unterstützen dabei Office 365, 2024, 2023, 2021, 2019, 2016 und 2013. Wir arbeiten aktuell daran, unsere fertigen E-Rechnungsmodule in Add-Ins sowie Entwicklerbibliotheken für Access, Word, Excel und Outlook umzusetzen. Das erste Ergebnis ist SmartTools E-Rechnung Free für Outlook. Die Erweiterung integriert sich nahtlos in Outlook und bietet erst einmal alle Funktionen, die Sie zum Start der E-Rechnung benötigen.
In SQL-Abfragen können Sie mit den Operatoren "In" und "Between" prüfen, ob ein Wert in einer Reihe anderer Werte enthalten ist oder ob er in einem bestimmten Bereich liegt. Diese Operatoren wären auch in VBA-Prozeduren sehr nützlich, um beispielsweise ein eingegebenes Kürzel oder einen Wert für die Speicherung in einem Feld vom Datentyp "Byte" zu prüfen. Abfragen der Form If Me.txtWert >= 0 And Me.txtWert <= 255 Then... sind jedoch sehr umständlich einzugeben und zudem noch sehr unübersichtlich. Direkt können Sie die SQL-Operatoren "In" und "Between" zwar nicht in VBA nutzen, aber wie wir in diesem Tipp zeigen, lassen sie sich als benutzerdefinierte Funktion nachrüsten.
FRAGE Ich möchte gerne aus meiner Datenbank eine komplette Access-Tabelle nach Excel exportieren. Das funktioniert zwar mit der normalen Export-Funktion, aber die Daten werden immer ab Zeile "1" in das Tabellenblatt eingetragen. Ich möchte jedoch eine Excel-Vorlage nutzen und festlegen können, ab welcher Zeile und Spalte der Export im Tabellenblatt abgelegt werden soll. Die eigentlichen Daten sollen erst ab der 11. Zeile erscheinen. Wie lässt sich dieses Problem lösen?
Beim Navigieren in einem Formular zwischen verschiedenen Datensätzen mit Hilfe der Navigationsbuttons soll bei jedem Klick eine VBA-Prozedur aufgerufen werden, um zum Beispiel je nach Inhalt eines Feldes des Datensatzes Änderungen eines anderen Feldes zu ermöglichen oder zu verhindern. Für solche Aufgaben steht in Formularen eine spezielle Ereignisprozedur zur Verfügung, deren Name jedoch etwas irreführend ist: "Beim Anzeigen" (VBA: Form_Current). Besser hätte hier "Bei Datensatzwechsel" gepasst, denn diese Ereignisprozedur wird immer dann aufgerufen, wenn im Formular ein anderer Datensatz angezeigt werden soll. Diese Ereignisprozedur wird also auch beim Blättern in den Datensätzen über die Navigationsbuttons aufgerufen.
Im ersten Teil dieses Tipps haben wir gezeigt, wie sich ein Formular in Access zweimal öffnen lässt. Diese Lösung reicht aus, um beispielsweise auf die Schnelle, zwei Datensätze zu vergleichen. Es gibt aber auch Situationen, in denen Sie gleich mehrere Datensätze gleichzeitig anzeigen möchten und genau darum geht es in diesem zweiten Teil. Basis der Lösung ist eine globale Collection, über die die einzelne Instanzen des Formulars verwaltet werden.
FRAGE In einem Memofeld sind nach einem Import aus einem anderen Datenbanksystem im Text die Zeichen "0x0D" vorhanden. Diese Zeichen müssen durch Zeilenumbrüche ersetzt werden, wobei die Zeichen an mehreren Stellen im Text vorhanden sein können. Mit der Suchen-/Ersetzen-Funktion komme ich nicht weiter, zumal ich sie nach jedem Import erneut aufrufen müsste. Lässt sich das eventuell per VBA automatisieren?
Wenn Sie versuchen, ein Access-Formular ein zweites Mal zu öffnen, um hier beispielsweise nach weiteren Adressen einer Firma zu suchen, wird immer nur das bereits geöffnete Formular aktiviert. Dieses Verhalten von Access soll verhindern, dass Sie dieselben Daten in verschiedenen Formularen bearbeiten. Unser Tipp zeigt, wie Sie diese Beschränkung umgehen und ein Formular sogar beliebig oft öffnen können.
FRAGE Ich habe ein Design-Problem in einem Access-Formular, auf das ich immer wieder stoße. In einem Kombinations- oder Listenfeld möchte ich zeilenweise die Artikelnummer, die Artikelbezeichnung und den Preis zur Auswahl anzeigen lassen. Dabei möchte ich erreichen, dass die Beträge rechtsbündig untereinander ausgegeben werden. Gibt es dazu eine spezielle Einstellung oder gibt es dafür eine andere Lösung?
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.