Access-Datenbanken
Hier finden Sie zur Zeit zwei
Access-Lösungen. Weitere folgen.
Einkaufspreise
Access2000-Datenbank «Einkaufspreise» in
der Version 2.1 - Mit dieser Datenbank können die
Preise verschiedenster Lebensmittel verwaltet werden.
Pro Produkt können verschiedene Marken und/oder
verschiedene Supermärkte und verschiedene Preise
erfasst werden. Es wird jeweils ein Preis pro 1 oder 100
Einheiten errechnet. Anschließend kann ein
Einkaufszettel eingegeben werden. Eine Abfrage
errechnet, in welchem Supermarkt das Produkt am
billigsten ist und ordnet die Produkte nach den
entsprechenden Supermärkten. In Arbeit ist eine Option,
die die Einstellung einer Minimum-Qualität des
Produktes (in Schulnoten) zulässt:
Einkaufspreise.zip (161 KB)
Download
Adressbuch
Access2000-Datenbank «Adressbuch» in der
Version 2.0 - Mit dieser Datenbank verwalten Sie Ihre
privaten Adressen mit Hilfe von Microsoft Access. Die
Datenbank hat neben den üblichen Datenfeldern u.a.
folgende Features (die vollständige Liste entnehmen Sie
der LiesMich-Datei): Suchfunktion über Suchcode,
vollständige Länderliste mit internationaler
Telefonvorwahl, Erfassung von Beruf, Hobbys und
Geburtsdatum bei privaten Kontakten mit automatischer
Berechnung des Alters und des Sternzeichens, Erfassung
von Öffnungszeiten bei Firmen, Telefonnummern-Suche:
die eingegebene Nummer wird gegen alle Telefonnummern,
die in der Datenbank erfasst wurden, abgeglichen - so
kann man immer sehen, welcher Freund oder Bekannte
angerufen hat, auch wenn man die Nummer mal nicht gleich
erkennt.
Adressbuch.zip (90 KB)
Download
Tipps und Hinweise
Tipp 1 - Textexport-Assistent
Beim Export von Tabellen in Textdateien erscheint
zuweilen die Meldung «Ungültiges Argument» -
«Während versucht wurde, Daten aus der Tabelle
[Tabellenname] zu exportieren, ist ein Fehler
aufgetreten. Die Daten wurde nicht exportiert».
Dieser Fehler tritt auf, wenn eines der Datenfelder die
Feldgröße «Dezimal» hat. Mit diesem Format
kommt der Textexport-Assistent nicht klar. Am
einfachsten ist es, wenn das Feld in eines der
Zahlenformate «Single» oder «Double»
umgewandelt werden kann. Anschließend funktioniert der
Export einwandfrei.
Tipp 2 - Import von Excel-Dateien
Eigentlich sollte man meinen, der Import von
Excel-Dateien (immerhin auch ein Microsoft-Format),
stelle kein Problem dar. Doch auch hier gibt es viele
Fallstricke. Vor allem, wenn in eine bestehende
Access-Tabelle importiert werden soll, kommt es des öfteren
zu Importfehlern:
Fall 1) Wollen Sie eine Excel-Datei importieren,
die farbliche Formatierungen enthält, läuft der Import
zuweilen auf Fehler, obwohl die Spaltennamen in Excel
den Access-Feldnamen entsprechen.
Der Grund kann sein, dass die Formatierungen (z.B.
Hintergrund-Farbe) rechts von der letzten Spalte
weiterlaufen. Wohlgemerkt gibt es dort keine Daten. In
diesem Fall sollte man diese Spalten komplett löschen.
Anschließend kann der Import normal vorgenommen werden.
Fall 2) Es werden zwar die gleichen Feldnamen
verwendet, aber manche Feldnamen sind vielleicht leer.
Dann passiert folgendes: Access vergibt selbst Feldnamen
z.B. «Feld 5», wenn es sich um das 5. Feld
handelt (Spalte E). Bei einer neu anzulegenden Tabelle klappt das
noch. Den Versuch, die gleiche Excel-Tabelle noch mal in
die gleiche Access-Tabelle zu importieren, quittiert
Access unter diesen Voraussetzungen jedoch mit der
Fehlermeldung «Während versucht wurde, die Datei
xyz.xls zu importieren, ist ein Fehler aufgetreten. Die
Datei wurde nicht importiert.» Aha! Da staunt der
Laie, und der Fachmann wundert sich. Zumal im
Import-Assistenten beim Klicken der Option «Erste
Zeile enthält Spaltenüberschriften» die
fehlenden Felder wieder genau den gleichen Namen
zugewiesen bekommen, wie beim ersten Import (Meldung: «Die
erste Zeile enthält einige Daten, die nicht als gültige
Access-Feldnamen verwendet werden können. In diesem
Fall wird der Assistent automatisch gültige Feldnamen
zuweisen.»).
Zur Lösung: Access vergibt beim Import zwar «Feld5»
über den Import-Assistenten, doch wenn der Feldname in
der Zieltabelle bereits vorhanden ist, wird statt dessen «F5»
erwartet. Mann muss in der Access-Tabelle «Feld5»
also in «F5» ändern, «Feld27»
entsprechend in «F27» usw. Alternativ kann
man in Excel den fehlenden Feldnamen nachtragen. Dort
muss dann allerdings «Feld5» bzw. «Feld27»
eingetragen werden.
Fall 3) Enthält die Excel-Datei mehrere Spalten,
die den gleichen Namen haben, so werden diese in Access
ebenfalls in «Feldx» umgewandelt, wobei das
x für eine Zahl steht. Beim nochmaligen Import passiert
das Gleiche wie in Fall 2. Hier ist es am einfachsten,
in Excel die Spalten in «Feldx» umzuwandeln.
Fall 4) Häufige Fehler bringt der Import vom
Datumswerten. Hier lässt sich als Faustregel sagen,
dass man die Zielfelder ggf. wenn möglich als
Textfelder anlegen sollte.
Fall 5) Kopie über die Zwischenablage: Das Einfügen funktioniert nicht, wenn der Pfad der Excel-Quelldatei Kommas enthält.
Tipp 3 - Fehler bei Abfragen
Fehler können bei Abfragen immer wieder einmal
passieren. Leider sind die Fehlermeldungen von Access
mitunter wenig hilfreich bzw. verwirrend. Was sich genau
hinter diesen Meldung verbirgt wird hier erläutert:
Fall 1) Beim Start von Access-Abfragen begegnet Ihnen manchmal
der Fehler «Datentypen in Kriterienausdruck
unverträglich». Meist liegt diese Meldung an
fehlerhaften Wenn-Formeln. Bei Kriterien, die zu einem
Feld angegeben werden, vergibt Access automatisch den korrekten Datentyp
(nämlich den des Feldes). Innerhalb
einer Wenn-Formel prüft und korrigiert Access diesen jedoch nicht, und so
kann die falsche Verwendung eines Datentyps hier eben
die oben genannte Fehlermeldung bringen.
Fall 2) Bei Aktualisierungs- oder Löschabfragen
begegnet Ihnen manchmal der Fehler «Operation muss
eine aktualisierbare Abfrage verwenden» (Fehler
3073). Die Access-Hilfe verweist unter anderem auf
1:n-Beziehungen. Dies kann einer der Gründe sein. Aber
auch wenn eine Tabelle oder Abfrage mit einer
gruppierten Abfrage verbunden ist, taucht diese
Fehlermeldung auf. Es klappt dann nur der Umweg über
eine neu erstellte Tabelle mit den gruppierten Werten.
Es geht aber meist auch anders: Öffnen Sie die
Abfrage-Eigenschaften und stellen die Option «Eindeutige
Datensätze» auf «Ja». Anschließend
wird die Abfrage problemlos laufen, es sei denn es
besteht immer noch eine 1:n-Referenz, d.h. in der
verbundenen Abfrage sind nicht alle Bezüge eindeutig.
Wie gesagt, in letzter Konsequenz hilft es, aus der
verbundenen Abfrage eine Tabelle neu zu erstellen und
damit weiterzuarbeiten.
Fall 3) «Parameterwert eingeben [Feldname].
Tritt auf, wenn nach diesem Feld über den Sortierbutton
sortiert wurde und nachträglich der Name der Abfrage
geändert wurde. In den Eigenschaften der Abfrage steht
unter «Sortiert nach» noch der alte (nicht
mehr gültige) Abfragename. Diesen Sortier-Eintrag am besten
komplett löschen und später neu sortieren.
Fall 4) «Das angegebene Feld 'Feldname'
kann sich auf mehr als eine Tabelle beziehen, die im
FROM-Abschnitt der SQL-Anweisung angegeben wurden.
- Tritt bei Aktualisierungsabfragen auf, wenn in zwei
oder mehreren Tabellen der gleiche Feldname existiert
und dieser Feldname ohne den Tabellennamen als
Aktualisierungswert eingetragen wird. Aber auch in einer
Auswahlabfrage kann dieser Fehler auftreten, nämlich
wenn dieser Sonderfall eintritt: Man hat zwei Tabellen
mit einem gleichnamigen Feld. Zuerst ist nur die erste
Tabelle mit diesem Feld in der Abfrage enthalten. Nach
diesem Feld wird über die Sortierbuttons sortiert und
die Abfrage abgespeichert. Anschließend wird die zweite
Tabelle hinzugefügt und das doppelte Feld auch in die
Abfrage aufgenommen. Da jetzt in den
Abfrageeigenschaften unter «Sortiert nach» [Abfragename].[Feldname]
statt [Tabellenname].[Feldname] steht, weiß Access
nicht, nach welchem der gleichnamigen Felder es
sortieren soll und bringt obige Meldung.
Fall 5) «Ungültiges Argument». Kommt
in Abfragen aber auch bei Updates über DAO oder ADO
vor. Dieser Fehler tritt vor allem dann auf, wenn dei
Datenbank ihre maximal zulässige Größe (2 GB)
erreicht hat. Klicken Sie die Fehlermeldung weg. Sie
wird dann wahrscheinlich noch 2x erscheinen. Anschließend
komprimieren Sie die Datenbank. Wenn die Datenbank nicht
wesentlich kleiner wird, können Sie eventuelle einige
Tabellen in eine andere DB auslagern.
Fall 6) «Fehlt». Na super, dachte
ich als ich diese Fehlermeldung las. Was fehlt denn
hier? In meinem Fall war es ein Parameter in einer
eigenen
Funktion, der gefehlt hatte oder falsch gesetzt war.
Dies kann zum Beispiel durch nachträgliche Änderung
einer Funktion passieren.
Tipp 4 - Fehler beim Arbeiten mit ODBC-Verbindungen zu Oracle
Bei der Migration von Daten aus einer Access-Datenbank
nach Oracle kommt es manchmal zu der Fehlermeldung «Überlauf».
Dies deutet auf einen Fehler beim Einlesen in ein
Oracle-Datumsfeld hin. Vor allem wenn in der
Access-Quell-DB das Feld als Textfeld angelegt war.
Tipp 5 - Schlecht interpretierbare Fehlermeldungen VBA
1) «Beim Kompilieren dieser Funktion ist
ein Fehler aufgetreten.» - Normalerweise deutet
diese Meldung auf einen Fehler in einer Funktion hin. Prüfen
Sie jedoch auch, ob ein Funktionsname doppelt vergeben
ist, denn dies verursacht ebenfalls obige Meldung.