CLS: Tipps & Tricks: Access



Tipps & Tricks: Access

Auf dieser Seite finden Sie 11 Tipps & Tricks für Access. Soweit keine Einschränkungen dazu genannt werden, gelten diese Tipps & Tricks für alle Versionen von Access. Um SQL-Befehle einzugeben, erstellen Sie bitte eine neue Abfrage und wechseln von der "normalen" Entwurfsansicht in die SQL-Entwurfsansicht. Das dort typischerweise noch vorhandene SELECT;-Statement können Sie löschen und durch den jeweils genannten Beispielcode ersetzen.

Wenn in den folgenden Erläuterungen Texte wie MsgBox formatiert sind, handelt es sich um konkret einzugebende Inhalte wie VBA-Code oder die Eingabe von Werten. Menüs wie Datei Speichern sind wie hier zu sehen formatiert. Schaltflächen oder Registerkarten auf Dialogen werden wie Menüs behandelt.

Alle Tipps sind nach bestem Wissen geprüft, aber selbstverständlich ohne Gewähr. Sollten Sie doch einen Fehler darin entdecken, würden wir uns freuen, wenn Sie uns per E-Mail Bescheid sagen.

Das CSV-Dateiformat ist so universell, dass selbst die exotischsten Programme ihre Daten darin speichern können. Trotz seines Namens (CSV = Comma Separated Value) ist das Trennzeichen oft ein Semikolon oder Tabulatorzeichen. Auch das Dezimal- und das Tausenderzeichen können anders eingestellt sein.

Für regelmäßige Datenimporte sollten Sie diese Einstellungen daher in so genannten Spezifikationen speichern. Ärgerlicherweise sind diese nicht nur mit keinem Menübefehl zu erreichen, sondern auch im Dialog ziemlich versteckt. Mit Datei Externe Daten Importieren... geben Sie die CSV-Datei an und sehen nach Bestätigung den (Text-)Import-Assistenten.

Nur für diesen Dateityp ist links unten eine Schaltfläche Weitere... sichtbar, die zu den Spezifikationen führt. Bereits in der Datenbank enthaltene Einstellungen rufen Sie mit Spezifikationen... auf, die aktuell im Dialog sichtbaren Werte können Sie mit Speichern unter... unter einem beliebigen Namen sichern. Der DoCmd.TransferText-Befehl kann ebenfalls auf diese Spezifikation zurückgreifen.

Bei späteren Änderungen etwa an der Tabelle, in welche Sie die Daten importieren, müssen Sie allerdings daran denken, dass eine Spezifikation auch die Feldnamen und deren Datentyp enthält. Diese müssen also gegebenenfalls auch in der Spezifikation angepaßt werden!

Die Daten, auf die Sie in einer Access-Datenbank zugreifen, müssen keineswegs in der gleichen Datei enthalten sein. Im Gegenteil, das ist eigentlich eher die Ausnahme. Selbst wenn Sie mit einer "normalen" Datenbank beginnen, in der bequemerweise Tabellen und die übrigen Elemente gemeinsam stehen, sollten Sie das ändern, sobald die Datenbank fertig entwickelt ist.

Nutzen Sie dazu das Menü Extras Datenbank-Dienstprogramme Assistent zur Datenbankaufteilung. Damit exportieren Sie alle Tabellen der Datenbank in eine eigene Datenbank mit dem Namenszusatz "*_be.mdb" ("be" steht für back end, im Gegensatz zur Bedienoberfläche, dem front end). Nachdem die Tabellen in Ihrer ursprünglichen Datenbank dabei gelöscht wurden, werden sie anschließend sofort wieder mit der BackEnd-Datei verknüpft.

Der enorme Vorteil besteht darin, dass erstens nun die BackEnd-Datei im Netz stehen kann (Achtung: Verknüpfungen wegen des neuen Pfads aktualisieren, siehe Tipp "Verknüpfungen aktualisieren"!). Jeder Benutzer erhält einfach eine lokale Kopie der FrontEnd-Datenbank und arbeitet damit so, als seien alle Daten lokal vorhanden.

Zum zweiten können Änderungen an Formularen, Berichten, Makros oder ähnlichem jederzeit mit einer Kopie der FrontEnd-Datenbank ohne Störung des Betriebs vorgenommen werden. Sobald die FrontEnd-DB korrigiert wurde, wird sie einfach durch Datei-Kopieren neu verteilt und alle Benutzer können direkt weiterarbeiten.

Falls Daten und Bedienoberfläche in einer einzigen Datei enthalten gewesen wären, hätten Sie mit dieser Datei arbeiten müssen und während der Korrekturzeit alle Benutzer am Zugriff auf die Daten gehindert. Das kann ja durchaus mal ein paar Tage dauern und ist für wichtige Daten dann undenkbar. Außerdem können Sie nicht wirklich gut testen (beispielsweise neue Löschabfragen), weil in der Datenbank inzwischen Echtdaten enthalten sind, die durch gescheiterte Tests nicht beschädigt werden dürfen.

Sie möchten nicht ewig das Startlogo von Access sehen, wenn Ihre Datenbank geöffnet wird? Dann ersetzen Sie es doch durch ein eigenes Bild! Erstellen Sie dazu eine beliebige Grafik und speichern Sie diese im Bitmap-Format (*.bmp) ab, am besten mit nur 16 oder 256 Farben, da die Datei sonst sehr groß wird.

Wenn die Datei den gleichen Namen wie die Datenbank trägt (also "Nordwind.bmp" für "Nordwind.mdb") und im gleichen Verzeichnis liegt, wird sie beim Öffnen der Datenbank statt des üblichen Startlogos angezeigt. Das funktioniert aber nur, wenn Sie die Datei per Doppelklick im Explorer öffnen. Beim Öffnen aus Access heraus mit dem Menü Datei Öffnen ist in keinem Fall das Startlogo zu sehen.

Da es eine Möglichkeit des Rückgängigmachens bei Access faktisch nicht gibt, ist die Datensicherung extrem wichtig. Das sollte natürlich nicht nur einmal im Monat erfolgen, sondern eher stündlich.

Wenn Sie während der Sicherung viele Access-Fenster offen haben, können Sie bei noch geöffneter Datenbank im Windows-Explorer mit gedrückter Strg-Taste am Dateinamen ziehen. Das erzeugt eine Datei-Kopie mit dem neuen Namen Kopie (2) von Datenbankname.mdb, die auch automatisch durchnummeriert wird.

Alternativ kennt Access 2007 auch einen eigenen Menübefehl Extras Datenbank-Dienstprogramme Datenbank sichern... dafür. Dieser erzeugt eine Dateikopie mit dem Namen Datenbankname_24-12-2008.mdb (bzw. dem entsprechenden Datum), den Sie am besten auch direkt mit einer Uhrzeit ergänzen. Access greift nämlich immer schreibend auf Datenbank-Dateien zu. Auch wenn Sie später nur mal in diese Kopie hineinsehen wollen, hat sich das Speicherdatum unerbittlich aktualisiert!

Vorteilhaft ist außerdem, dass diese Kopie direkt komprimiert und also kleiner ist. Manchmal ist es hingegen eher lästig, dass deswegen die Datenbank immer komplett geschlossen wird und Sie anschließend alle Fenster zum Weiterarbeiten wieder öffnen müssen.

Access 2007 hat inzwischen einen eigenen Menüpunkt für diese regelmäßige Sicherung, wie Sie im Tipp "Datenbank-Sicherungskopie" nachlesen können.

Auch wenn Sie viele Datensätze oder ganze Tabellen löschen, wird die Datenbank-Datei unweigerlich immer größer. Das hängt damit zusammen, dass wegen des möglichen Mehrbenutzer-Zugriffs nicht einfach Teile der Datei beim nächsten Speichern weggelassen werden können. Auch gelöschte Objekte sind also nicht wirklich weg, sondern lediglich als "nicht vorhanden" markiert.

Um die Dateigröße mal wieder zu reduzieren, benötigen Sie Exklusiv-Zugriff, damit andere Benutzer nicht plötzlich Teile der Datenbank vermissen. Das wird aber mit dem Menübefehl Extras Datenbank-Dienstprogramme Datenbank komprimieren und reparieren automatisch überprüft. Dann wird die Datenbank geschlossen und alle gültigen Objekte und Daten in eine neue Datenbank exportiert. Sollte jetzt (denn das dauert eine Zeitlang) der Strom ausfallen, ist lediglich die zweite Datenbank beschädigt.

Im Erfolgsfall löscht Access dann die ursprüngliche Datenbank, benennt die zweite auf den ursprünglichen Namen und öffnet sie wieder. Auch dabei ist zu jedem Moment immer eine brauchbare Datei übrig (trotzdem kann es nie schaden, vorher Sicherungskopien anzulegen). Da die komprimierte Datenbank im ungünstigsten Fall ebensoviele Objekte und Daten wie das Original enthält, muss auf dem Laufwerk noch einmal so viel Platz vorhanden sein wie die ursprüngliche Datei benötigt.

Ab Access 2002 gibt es unter Extras Optionen in der Registerkarte Allgemein die Option "Beim Schließen komprimieren", welche das bei jedem Beenden automatisch erledigt.

Sehr viele Eigenschaften im Eigenschaftenfester sind Werte aus einer vorgegebenen Liste wie beispielsweise die Standardansicht im Formular: dort können Sie zwischen 'Einzelnes Formular', 'Endlosformular', 'Datenblatt' etc. auswählen. Selbst 'Ja'/'Nein'-Entscheidungen wie die 'Datensatzmarkierer'-Eigenschaft bieten eine Liste dieser beiden Möglichkeiten an.

Da es sehr unbequem ist, mit der Maus immer die Liste am rechten Rand auszuklappen und dann den neuen Wert treffen zu müssen, bietet Access eine alternative Bedienung an: doppelklicken Sie den Namen der Eigenschaft, so dass Access den jeweils nächsten Wert auswählt. Nach dem letzten Listeneintrag wird wieder der erste aktiv.

Diese Bedienungsmöglichkeit funktioniert sogar in Listen außerhalb des Eigenschaftenfensters, etwa im Abfrageentwurf für die 'Sortierung' oder die 'Funktion' von Gruppierungsabfragen.

Namen (von Feldern, Tabellen, Abfragen, etc.) können bei Access bis zu 64 Zeichen lang sein und dürfen lediglich nicht []!. enthalten. Das erlaubt im Unkehrschluß zwar beispielsweise auch Leerzeichen, ist aber nicht zu empfehlen. Neben den wirklich verbotenen Zeichen sollten Sie noch auf ein paar weitere Zeichen (/+-  verzichten, die unnötigen Ärger verursachen.

Wenn ein Feld statt Lieferdatum beispielsweise Liefer-Datum heißt, können Sie in einer Abfrage den Termin 7 Tage vorher berechnen, an dem die Ware bereitgestellt werden soll. Die Formel schreiben Sie in einer Abfrage als

Bereitstellung: Liefer-Datum - 7

Sobald Sie diese Eingabe bestätigen, "korrigiert" Access das in

Bereitstellung: [Liefer] - [Datum] - 7

und fragt bei der Ausführung der Abfrage natürlich nach, wo denn die Felder Liefer und Datum seien. Wenn Sie manuell in

Bereitstellung: [Liefer-Datum] - 7

berichtigen, funktioniert es. Das wäre jedesmal nötig, wenn Sie mit Feldnamen arbeiten, die solche Sonderzeichen enthalten, welche auch als Rechen-Operatoren eingesetzt werden oder sonstwie mißverständlich sind.

Der Unterstrich hingegen ist unbedenklich und verbessert durchaus die Lesbarkeit der Feldnamen. Alternativ können Sie die so genannte Kamel-Schreibweise (also gemischte Groß-/Kleinschreibung wie in vrkLieferDatum) einsetzen.

Die Ungarische Notation (nach dem ungarisch gebürtigen Charles Simonyi) setzt vor jede Variablen-Bezeichnung ein Präfix, welches den Typ der Variablen nennt. Obwohl ursprünglich also für große Programmierprojekte gedacht, ist seine Anwendung auch in Datenbanken sehr sinnvoll.

Üblich ist eine dreibuchstabige Abkürzung des englischen Typnamens, also etwa tbl für Tabellen (table), qry für Abfragen (query), frm für Formulare (form), rpt für Berichte (report), mac für Makros (macro) und mod für Module (module).

Damit umgehen Sie übrigens auch ganz elegant, dass Tabellen und Abfragen von Access so gleichbehandelt werden, dass Sie nicht mal gleichnamig sein dürfen. Mit tblKunden und qryKunden kann Ihnen das sowieso nicht passieren.

Für Feldnamen würde ich allerdings nicht fld (field) als Präfix benutzen, sondern ein tabellenspezifisches Kürzel, beispielsweise knd für die Tabelle tblKunden. Dadurch ist jeder Feldname datenbankweit eindeutig, was die Schreibweise in Abfragen von [tblKunden Stammdaten].[ID] auf [kndID] verkürzt.

Tabellen verknüpfen ID 264 Aktuell

Externe Daten werden in Access dynamisch verknüpft, damit Änderungen auch in der Datenquelle sofort sichtbar sind. Typischerweise handelt es sich dabei um eine andere Access-Datenbank, deren Tabellen Sie benutzen.

Sie können aber auch auf andere Datenquellen zugreifen, indem Sie im Menü Datei Externe Daten Tabellen verknüpfen den Dateityp beispielsweise auf "Excel" stellen. Gerade Excel ist aber nicht unbedingt eine ideale Datenquelle, denn anders als in einer Datenbank können dort in der gleichen Zelle Texte, Zahlen und sogar Formeln stehen. Access stellt dann sowieso nur die Ergebnisse dar und diese eingebundene Tabelle bleibt schreibgeschützt.

Während aus anderen Access-Datenbank nur die Tabellen selber verknüpft werden können, lassen sich aus SQL-Datenbanken wie Oracle oder SQL-Server sogar Views (welche den Access-Abfragen entsprechen) einbinden, was die zu übertragende Datenmenge erheblich reduzieren kann, weil das Filtern schon auf dem Server geschieht. Solche Datenbanken werden über den Dateityp "ODBC-Datenbanken" und die folgenden Angabe der Datei- oder Computerdatenquelle angegeben.

Immer dann, wenn Sie mit extern verknüpften Daten in einer Access-Datenbank arbeiten, kann sich der Pfad zu diesen Tabellen ändern. Oder sogar nur dessen Bezeichnung, denn bei der im Tipp "Daten und Bedienung trennen" genannten automatischen Aufteilung in eine BackEnd- und FrontEnd-DB steht die BackEnd-DB nachher typischerweise im Netz. Während bei Ihnen dieser Pfad im Laufwerk "G:"" liegt, hat ein anderer Benutzer aber den gleichen Pfad möglicherweise als "M:"" eingebunden.

Access hat im Menü Extras Datenbank-Dienstprogramme Tabellenverknüpfungs-Manager eine einfache Technik, um verknüpfte Tabellen automatisch mit einem anderen Pfad/Dateinamen zu verbinden. Der Dialog ist zwar nicht besonders intuitiv zu benutzen, aber er funktioniert.

Wenn alle Tabellen in der gleichen Datenquelle enthalten sind, klicken Sie einfach auf die Schaltfläche Alle auswählen. Falls es die alte und die gewünschte neue Datenquelle gleichzeitig gibt, wäre der Assistent jetzt zufrieden und würde nichts ändern. Damit Sie trotz Vorhandenseins der bisherigen Datenquelle überhaupt eine neue auswählen dürfen, müssen Sie unten noch "Neuen Speicherort immer bestätigen lassen" anklicken (das kann man einfach immer auswählen). Nach OK erscheint nun der übliche DateiÖffnen-Dialog zur Auswahl der Datenquelle, in der alle angekreuzten Tabellen enthalten sein müssen. Danach sind die Verknüpfungen korrigiert.

Zoom-Fenster ID 266

Oftmals ist das Feld zur Dateneingabe viel zu klein, um vernünftig arbeiten zu können, beispielsweise für eine Gültigkeitsregel im Tabellenfeld-Entwurf. Daher ist in Access überall ein Zoom-Fenster integriert, welches Sie mit Umschalt+F2 aufrufen können.

Der große Bruder dazu ist der Funktions-Generator mit zusätzlichem Überblick über Funktionen und Objekte der Datenbank. Diesen rufen Sie mit Strg+F2 auf.