Armin-Hoepfl.de - Armins Access-Seite
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)

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)

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.

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.