Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.
Unsere Webseiten benötigen Session-Cookies. Diese scheint Ihr Browser jedoch zu blockieren.
News & Tipps zu Microsoft Access
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.
In einigen Datenbanken kommen Nummerierungen der Form "1.1.1", "1.1.2", "1.1.3" usw. als Ordnungskriterium zum Einsatz. Probleme gibt es allerdings bei der Sortierung, weil Access beispielsweise "1.1.10" direkt nach "1.1.1" und somit vor "1.1.2" einordnet. Unser Tipp zeigt, wie Sie dieses Problem mit Hilfe einer VBA-Funktion lösen. Basis der Lösung zur Sortierung nach Nummerierungen ist eine Funktion, die die Nummerierung umformatiert, indem sie zunächst jede Zahl dreistellig mit führenden Nullen aufbaut und das Ergebnis aller Zahlen der Nummerierung zu einer Zeichenkette zusammensetzt.
FRAGE Ich muss oft sehr unterschiedliche Daten in Access-Datenbanken importieren. Dabei wird die Länge des definierten Feldes des Datentyps "Text" eher zu groß als zu klein gewählt (damit beim Import keine Daten verloren gehen). Um Speicherplatz zu sparen und die Verarbeitungsgeschwindigkeit zu vergrößern, würde ich nun gerne nach erfolgtem Download die Textfeldgröße in den einzelnen Tabellen an die Länge des längsten darin gespeicherten Inhaltes anpassen. Da es sich um zahlreiche Tabellen mit jeweils vielen Textfeldern handelt, wäre ein Tool, das diese automatisch für alle Tabellen einer Datenbank übernimmt, sehr hilfreich.
Nach einem der letzten Microsoft 365-Updates kommt es zu vermehrten Access-Abstürzen, die unwillkürlich in verschiedenen Situationen auftreten können. Mit dem neuesten Microsoft 365-Update im aktuellen Kanal für den März 2024 hat Microsoft die Probleme inzwischen behoben. Sie können die Aktualisierung auf die Version 2402 (Build 17328.20184) ggf. über Datei-Konto und Updateoptionen-Jetzt aktualisieren abrufen.
In vielen Formularen müssen Sie regelmäßig eine kleine Berechnung durchführen. Dazu greifen Sie zum Taschenrechner, tippen die Berechnung ein und übertragen das Ergebnis in das betreffende Feld im Formular. Diesen Aufwand können Sie sich durch Nutzung einfacher Tricks sparen und Access die Berechnungen und das Eintragen des Ergebnisses selbst vornehmen lassen. Basis der Lösung ist die wenig bekannte Funktion "Eval()", der als Parameter ein beliebiger Ausdruck übergeben werden kann.
FRAGE Um Inhalte von Tabellen aus externen Datenbanken flexibel einbinden zu können, verwende ich eine Abfrage mit dem folgenden Inhalt: SELECT Tabelle.* FROM Tabelle IN 'X:\Datenbank.mdb'; Pfad und Dateiname lassen sich schnell im SQL-String ändern. Bisher waren die Datenbanken nicht mit einem Kennwort geschützt und der Zugriff funktionierte ohne Probleme. Nun müssen einzelne Datenbanken mit Kennwort gesichert sein. Das führt dazu, dass bei einer geschützten Datenbank bei jedem Zugriff die Eingabe des Datenbank-Kennwortes per Dialog abgefragt wird. Kann ich auch im SQL-String ein Datenbank-Kennwort angeben und wenn ja, wie genau muss der SQL-String aufgebaut sein?
Wenn in einer VBA-Routine ein Fehler auftritt und Sie dazu eine Meldung der Form MsgBox "Problem: " & Err.Description anzeigen lassen, wird häufig der wenig hilfreiche Text "Anwendungs- oder objektdefinierter Fehler" ausgegeben. Wir zeigen in unserem Tipp, wie Sie dem Problem durch aussagekräftigere Fehlermeldungen schneller auf den Grund gehen können. Wenig bekannt ist eine Erweiterung in Access, die für anwendungs- oder objektspezifische Fehler einspringt und speziell den für Access gültigen Fehlertext liefert.
FRAGE In einem Formular rufe ich über eine Schaltfläche nacheinander mehrere Abfragen per DoCmd.OpenQuery auf. In einem Bezeichnungsfeld gebe ich als Fortschrittsanzeige zwischendurch den Text "Abfrage '1..10' (Name) wird ausgeführt..." aus. Diese Anzeige erfolgt aber nicht korrekt. Im Feld steht der Name der ersten Abfrage und wechselt erst nach Ausführung der letzten Abfrage in "Abfrage 10 (Name) wird ausgeführt...".
Wenn Sie regelmäßig Berichte wie Preislisten, Statistiken, Umsatzberichte oder ähnliche Dokumente an Ihre Kollegen weitergeben oder auf der Festplatte sichern möchten, gibt es mit dem neuen SmartTools Berichte-Verteiler 5.8 jetzt eine komfortable Lösung. Geben Sie Berichte direkt aus Ihrer Datenbank in den Formaten PDF oder RTF an beliebig viele Empfänger über Outlook weiter. Auch die Ablage Ihrer Berichte im Netzwerk in die Ordner von Kollegen ist mit den SmartTools Berichte-Verteiler kein Problem.
Abfrageergebnisse benötigen Sie häufig nicht in der Datenblattansicht, sondern als Zeichenkette oder Array zur Weiterverarbeitung. In der Regel initialisieren Sie dazu ein Recordset, durchlaufen es und fassen die benötigten Feldinhalte in einer Zeichenkette zusammen. Wenig bekannt ist die Tatsache, dass ein ADO-Recordset eine Methode bereitstellt, die Ihnen diese Arbeit abnimmt und das Ergebnis blitzschnell zur Verfügung stellt.
FRAGE Ich möchte meine Outlook-Nachrichten mit Anlagen archivieren und fand hierzu Ihre bisherigen Tipps zur VBA-Steuerung von Outlook in früheren Ausgaben von Access Weekly sehr hilfreich. Jetzt geht es mir aber speziell um die Anhänge. Gibt es eine Möglichkeit, per VBA festzustellen, ob eine Nachricht überhaupt Anhänge enthält? Sollte das der Fall sein, möchte ich die angehängten Dateien separat speichern.
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.