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.
Holen Sie sich jetzt das brandneue SmartTools Servicepack 2024 für Access – die ultimative Erweiterung für Ihre Datenbank! Mit zehn neuen Assistenten und Funktionen machen wir Ihre Arbeit mit Access einfacher, effizienter und komfortabler. Und das Beste daran? Alle Funktionen sind komplett kostenlos! Mit dem neuen Servicepack-Manager installieren und deinstallieren Sie die Erweiterungen ganz nach Bedarf einfach per Mausklick.
Sicherlich haben auch Sie schon einmal festgestellt, dass einige Abfragen bei der ersten Ausführung wesentlich mehr Zeit benötigen als bei jedem nachfolgenden Aufruf. Unser Tipp erläutert die Hintergründe und stellt eine Lösung vor, mit deren Hilfe Sie Ihre Abfragen immer schnellstmöglich ausführen lassen können. Die Ursache für dieses Verhalten ist eine spezielle Technik, die Access bei Abfragen verwendet: Wenn Sie eine Abfrage erstellen, speichert Access die Definitionen und Eigenschaften in einer Auflistung "QueryDefs". Weitere Referenzen werden in den Systemtabellen "MSysObjects" und "MSysQueries" festgehalten.
FRAGE Ich möchte in einem Formular meiner Datenbank die Inhalte eines Kombinationsfeldes dynamisch füllen. Gefordert ist die Auswahl eines Monats, wobei zum Zeitpunkt der Eingabe aussschließlich einer der letzten drei Monate augewählt werden darf. Beim Öffnen möchte also ich immer die vergangenen drei Monate ausgehend vom aktuellen Datum im Format <Monat> / <Jahr> (zum Beispiel "August 2024") auflisten. Wie kann diese Auswahl aufbauen und dem Kombinationsfeld zuweisen?
Um möglichst viele Informationen in einem Formular unterbringen zu können, legen Sie Textfelder, Listenfelder oder Kombinationsfelder häufig mit reduzierter Breite an. Das führt dazu, dass längere Inhalte abgeschnitten oder als Fehlerhinweis "######" angezeigt werden. Um den kompletten Inhalt bei Textfeldern lesen zu können, muss in das Textfeld geklickt und der Cursor nach rechts verschoben werden. Bei Listeneinträgen geht das nicht; hier ist immer nur der passende Teil des Feldinhaltes zu sehen. Lesen Sie in diesem Tipp der Woche, wie Sie trotzdem die kompletten Inhalte aller Felder und Listeneinträge schnell einsehen können.
FRAGE Ich erfasse in einem Formular neue Aufträge. Dabei wird auch eine Auftragsnummer erfasst, für die sichergestellt werden muss, dass es keine Duplikate gibt. Ich habe dazu in der Tabelle das entsprechende Feld bei "Indiziert" auf den Wert "Ja (ohne Duplikate)" eingestellt. Das funktioniert gut, aber der Anwender erhält im Formular bei einer Duplikateingabe eine unverständliche Fehlermeldung von Access angezeigt. Gibt es die Möglichkeit, dem Anwender im Formular eine frei wählbare Fehlermeldung bei Duplikatseingabe anzuzeigen?
In Ihren Hauptformularen nutzen Sie häufig mehrere Unterformulare, deren Inhalte nicht permanent angezeigt werden müssen. In anderen Windows-Anwendungen finden sich für solche Fälle praktische Aufgabenbereiche. Access stellt ein solches Steuerelement leider nicht zur Verfügung, aber Sie können dieser Funktionalität schnell nachrüsten. Die genaue Vorgehensweise zeigt dieser Tipp. Nachdem wir im ersten Teil die Anpassungen für das Hauptformular erläutert hatten, geht es nun um die einzelnen Unterformulare.
FRAGE Wenn Access als Frontend und ein SQL-Server als Backend eingesetzt wird, erscheint bei Neuanlagen oder Änderungen, die man per Recordset an Tabellen vornimmt, bei einigen Prozeduren die Fehlermeldung: "Wenn Sie auf eine SQL-Server-Tabelle zugreifen, die eine IDENTITY-Spalte enthält, müssen sie für die OpenRecordset-Methode die dbSeeChanges-Option verwenden". Die VBA-Prozedur wird dann abgebrochen. Die Datenbank funktioniert als gemeinsam genutzte Datenbank seit Jahren problemlos, nur wenn ein SQL-Server als Backend eingesetzt wird, erscheint bei einigen Prozeduren diese Meldung.
In Ihren Hauptformularen nutzen Sie häufig mehrere Unterformulare, deren Inhalte nicht permanent angezeigt werden müssen. In anderen Windows-Anwendungen finden sich für solche Fälle praktische Aufgabenbereiche, die man bei Bedarf auf- und zuklappen kann, so dass nur der tatsächlich benötigte Bereich sichtbar und alles andere auf eine Titelleiste reduziert ist. Access stellt ein solches Steuerelement leider nicht zur Verfügung, aber Sie können dieser Funktionalität schnell nachrüsten. Die genaue Vorgehensweise zeigt unser zweiteiliger Tipp der Woche.
FRAGE Ich möchte in meiner Datenbank per VBA das Ergebnis einer Abfrage anzeigen lassen und dann mit der Ausführung der Prozedur fortfahren, sobald das Fenster geschlossen wird. Es handelt sich bei dem Abfrageergebnis in der Regel um mehrere Datensätze, aber ich denke, dass eine MsgBox dazu am besten geeignet wäre. Oder haben Sie eine andere Idee, wie ich das Schließen des Fensters überwachen kann? Mit welchen VBA Anweisungen komme ich weiter?
In Access soll beim Aktivieren eines Kontrollkästchens wie "Erledigt" automatisch das aktuelle Datum in ein Feld des Formulars eingetragen werden. Das ist mit nur wenigen Zeilen Code und in kurzer Zeit umgesetzt. Diese einfache Methode ermöglicht es Ihnen, den aktuellen Status von Aufgaben präzise und effizient zu dokumentieren. Den dafür erforderlichen Code und die genaue Vorgehensweise beschreiben wir in diesem SmartTipp für Access.
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.