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.
FRAGE Ich verwende verschiedene Formulare, die ich direkt als Anschreiben an Kunden erstellt habe. Nun möchte ich in den Formularen den gesamten Namen der Kunden in der Form "Titel-Vorname-Zuname" als Feld einfügen. Das gelingt auch, wenn ich die Felder aus der zugrundeliegenden Abfrage in der Form verbinde, indem ich ein eigenes Feld beispielsweise "Gesamtanrede" erstelle und darin die Felder in der folgenden Form zusammensetze: =[Titel] & " " & [Vorname] & " " & [Nachname]. Das Problem dabei: Wenn der Datensatz keinen Titel enthält, wird in meinen Formularen ein "leeres Zeichen" ausgegeben und der Text erscheint nach rechts verschoben. Können Sie mir dazu einen Tipp geben, wie ich das vermeide?
In Ihren Formularen verwenden Sie häufig die Access-Funktionen "Auswahlbasierter Filter", "Formularbasierter Filter" oder "Spezialfilter" zum Filtern und Sortieren der Datensätze. Beim nächsten Öffnen des Formulars ist das Filter- oder Sortierkriterium jedoch immer noch in der Eigenschaft "Filter" bzw. "Sortiert nach" vorhanden. Versuche, das Problem per Me.FilterOn = False oder Me.OrderByOn = False und Me.Filter = "" oder Me.OrderBy = "" in "Form_Close" oder "Form_Unload" zu lösen, bringen kein Ergebnis. Wir zeigen, wie Sie Filter und Sortierung zuverlässig löschen.
Bei der Erfassung von Datums- oder Zeitangaben über Felder vom Datentyp "Datum/Zeit" werden häufig Fehlermeldungen angezeigt, weil das Format der Eingabe nicht korrekt ist oder durch Tippfehler Buchstaben in der Eingabe enthalten sind. Sie können sich hier zwar mit einem entsprechenden Eingabeformat wie "99/99/0000;0;_" für Datumsangaben oder "00:00;0;_" für Zeitangaben helfen, aber das setzt voraus, dass die Eingaben auch immer komplett in diesem Format erfolgen. Sie können somit für den 1. Juni 2024 nicht einfach "1.6.2024" eingeben, sondern müssen "01.06.2024" eintippen. Analog dazu kann eine Zeit wie 15 Minuten nach Acht nicht einfach als "8:15" eingetippt werden, sondern ist als "08:15" einzugeben. Um dieses Problem zu lösen, verwenden Sie anstelle von Eingabeformaten einen Tastaturfilter, der jede gedrückte Taste bereits bei der Erfassung prüft und ungültige Eingaben direkt eliminiert.
FRAGE Meine Access-Datenbank soll mit Word zusammenarbeiten und Daten übergeben bzw. in ein Dokument einfügen. An einer Stelle setze in einem Adress-Formular zum Beispiel eine Zeichenkette mit der Adresse aus dem aktuellen Datensatz zusammen und möchte diese per Mausklick durch den Anwender in Word an der aktuellen Cursorposition des geöffneten Dokuments einfügen. Wie muss ich an die Übergabe an Word realisieren?
Neue Funktionen für Access sind selten, aber es gibt zumindest von Zeit zu Zeit kleine Lebenszeichen des Entwicklerteams. So wird seit einigen Wochen nach und nach eine kleine neue Funktion per Click-To-Run-Update für Access 365, 2021, 2019 und 2016 verteilt, die inzwischen in den meisten Installationen angekommen sein müsste: Wenn Sie in der Navigationsleiste eine Abfrage mit der rechten Maustaste anklicken, steht Ihnen endlich ein neues Kontextmenü SQL-Ansicht zur Verfügung, mit dem Sie eine Abfrage direkt in der SQL-Ansicht öffnen können.
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?
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.