Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Excel in Access impoertieren





Frage

Hallo! Auf der Suche nach einer Lösung bin ich auf dieses Forum gestoßen! ;-) Folgende Probleme stehen an: 1. ich möchte eine Ecxel-Tabelle in Access importieren. Ist eigentlich ja ganz einfach, aber die Excel-Tabelle enthält knappe 400 Zeilen, Access kann das anscheinend nicht, beim Import werden etliche Zeilen einfach vergessen/gelöscht! Daraus ergibt sich: 2. Ich hab die Excel-Tabelle gesplittet, es sind nun zwei Tabellen. Nun versuche ich, die zweite Tabelle beim Import an die erste (dich ich bereits importiert habe) anzuhängen. Access meckert beim letzten Schritt, es kommt die Meldung "Das Feld ´x´ ist in der Zieltabelle nicht vorhanden." Zig mal hab ich nun schon versucht, in der ersten Tabelle und in der zweiten entsprechende (gleiche) Zeilen einzufügen, die Access dann zweifelsfrei erkennen kann, das tut es aber nicht! Ich muss erwähnen, dass ich kein Programmierer bin, bei meiner Arbeit mit Access geht es um reine komfortable Adressenverwaltung, was mit Excel ja gewisse Gefahren birgt! Vielen Dank schon mal für Eure Bemühungen! ;-)

Antwort 1 von Teddy7

400 Zeilen sind für Access peanuts !
Der Fehler muß also woanders liegen. Wahrscheinlich sind die Daten nicht in Ordnung. Schau Dir mal an, wie die Tabelle in Access definiert wurde. Ist da z.B. ein Feld als Zahl definiert worden, das in den abgewiesenen Datensätzen als Text drin steht ?
Es müßte im Access eine zusätzliche Tabelle angelegt worden sein, in der die abgewiesenen Sätze drin stehen - mit einer Begründung.

Gruß
Teddy

Antwort 2 von Sanne.

Hallo Teddy7,

die Access-Tabelle hab ich nicht über den Assistenten angelegt, sondern manuell und habe die Eigenschaften für die einzelnen Felder entsprechend bestimmt...
Eine zusätzliche Tabelle ist nicht angelegt worden.
Ich hab nun die Tabelle auf zweimal importiert und dann innerhalb Access die zweite Tabelle in die erste importiert.
So hab ich sie wenigstens zusammenhängend, aber das ist natürlich nicht Sinn und Zweck der Übung... und die Ursache des Problems interessiert mich umso mehr, da ich noch weitere Tabellen importieren muss und dann vermutlich vor dem selben Problem stehe!

Antwort 3 von lleopard

Hallo Sanne,

wenn du öfter Adressen von Excel nach Access importierst, und die Excel - Tabelle immer im gleichen Format kommt, macht es doch Sinn einmal sich die Mühe zu machen in Acces eine Tabelle anzulegen, die die Spaltenformate in Excel genau abbildet und dann eine kleine Importfunktion per VBA zu erstellen.

Einen Ansatz für Excel-Verarbeitung in Access findet sich in der berühmt berüchtigten KnowHow.mdb. Einfach mal danach googeln... :-)

Antwort 4 von Teddy7

Ums nochmal zu sagen: mögliche Ursache für das Abweisen von Datensätzen wäre, wenn in einem als numerisch definierten Feld etwas nicht numerisches (Text) übertragen werden soll.
Es kann z.B. sein, daß das Feld Postleitzahl in Access numerisch definiert ist und in Excel nichts drin steht (also keine 0) und schon passt es nicht mehr.

Das solltest Du zuerst mal prüfen.

Gruß
Teddy

Antwort 5 von heizeisen

Hallo Sanne,
Zitat:
beim Import werden etliche Zeilen einfach vergessen/gelöscht!

kann ich mir nicht vorstellen, darüber würde eine entsprechende Fehlermeldung erfolgen. Diese wird in vielen Fällen auch als Tabelle angelegt.

- Ich habe schon häufig mit den Importfunktionen in Access gearbeitet und bin sicherlich hier und da an die Grenzen gestoßen, alles im Allen funktioniert diese aber gut.

- Wie Teddy schon sagt 400 Datensätze sind für Access ein Klacks.

Ich gehe davon aus, dass die erstellte Exceltabelle nicht Datenbankkonform aufgebaut ist und es somit zu den Problemen kommt.
Im Grunde muss es so aussehen: (nur ein Beispiel)
Name, Vorname, Straße.......
Mustermann, Mike, Hauptsr., ....
Musterfrau, Paula, Ringstr.,....

und zwar bis zum Schluß. Sollte innerhalb einer Tabelle plötzlich eine andere Orientierung vorkommen geht das nicht. Hierfür spricht, dass Du die Originaltabelle aufteilen musst.



Zitat:
"Das Feld ´x´ ist in der Zieltabelle nicht vorhanden."


Deine selbstangelegte Tabelle in Access nicht nicht komplett, es fehlt mindestens eine oder Du hast falsch zugeordnet.

Tipp für einmaliges Importieren:
Importiere mit dem Assistenten und erstelle dann eine "tabellenerstellungsabfrage" oder eine "Anfügeabfrage" um Deine Exceldaten dann in die richtige Form zu bringen.

Viel Erfolg

He

Antwort 6 von .Sanne

Aha... Es scheint so, als wären tatsächlich in Excel falsche Zellenformate vorhanden gewesen...
Ich hab nochmal alle angepasst und den Import nochmal gestartet, dann war die Liste da...
Also lags vermutlich nicht am Access...

@ lleoprad: könntest Du mal bitte etwas genauer erläutern, wie man so eine Liste erstellt?

@ heizeisen: es war tatsächlich so, dass ein Großteil der Zeilen plötzlich einfach verschwunden war, und eine Tabelle über Fehlermeldungen war auch nicht vorhanden.
Danke für den Tip mit dem Assistenten ;-)

Antwort 7 von lleopard

Hi Sanne,

also erstmal lleopard unicht lleoprad *lach*

und:
könntest Du mal bitte etwas genauer erläutern, wie man so eine Liste erstellt?

Also mal angenommen du bekommst immer wieder Adressen von ein und demselben Kunden in ein und demselben Format, dann ist es ja fast schon eine Schande, wenn man sowas jedesmal von Hand macht...

Automatisierung solcher Abläufe geschehen in Access am einfachsten wenn man ein wenig VBA beherrscht... und sich ein (Import-)Formular anlegt, mit dem man das steuert...

Das Problem mit Excel - das hast du ja auch schon erlebt - sind die Spalten-Formate. Wenn du nun einfach hingehst und deine Exceltabelle verknüpfst, kann es sein, daß dir Daten verloren gehen, weil Access mit den Formaten nix anfangen kann, bzw. die Daten in Excel nicht koherent sind. Wenn du so eine Tabelle - und sei's über eine Importspezifikation importierst sind die Ergebnisse genauso unbefriedigend...

Was also tun?

Es gibt mal wieder viele Wege die nach Rom führen...

Um die Daten von excel nach Access zu kriegen:
Mein bevorzugter Ansatz ist das Problem über ein Applikations-objekt zu lösen.

Um eine Tabelle mit den entsprechende Formaten zu erstellen:
Excel-Zeile 1 Spaltenweise auslesen und als Datenbank - Tabellennamen verwenden (müssen ggf. bereinigt werden), über ein append-befehl die Tabelle erstellen und dann die Exceltabelle zeilenweise an die erstellt Importtabelle anfügen.

Wenn man dir hier was posten kann, schicke ich dir gerne mal ein Beispiel...

Gruß Leo

Antwort 8 von Sanne

Hi Sanne,

also erstmal lleopard unicht lleoprad *lach*


uuuups, sorry, war ein Buchstabendreher, passiert, wenn man schneller schreiben will, als die Finger es schaffen ;-))))

Also mal angenommen du bekommst immer wieder Adressen von ein und demselben Kunden in ein und demselben Format, dann ist es ja fast schon eine Schande, wenn man sowas jedesmal von Hand macht...

Automatisierung solcher Abläufe geschehen in Access am einfachsten wenn man ein wenig VBA beherrscht... und sich ein (Import-)Formular anlegt, mit dem man das steuert...


Da fängst schon an... kann kein VBA!

Das Problem mit Excel - das hast du ja auch schon erlebt - sind die Spalten-Formate. Wenn du nun einfach hingehst und deine Exceltabelle verknüpfst, kann es sein, daß dir Daten verloren gehen, weil Access mit den Formaten nix anfangen kann, bzw. die Daten in Excel nicht koherent sind. Wenn du so eine Tabelle - und sei's über eine Importspezifikation importierst sind die Ergebnisse genauso unbefriedigend...

ui, gaaanz langsam....
Also verknüpfen möchte ich die Tabellen nicht miteinander...
Ich hatte eine Adress-Sammlung in Excel angelegt, da ich aber diesbezüglich ein "gebranntes Kind" bin (zueinander verschobene Zellen), haben wir uns Access angeschafft. Die Excel-Tabelle wird nicht weitergeführt, die Daten werden zukünftig im Access gepflegt und ebenso neue hinzugefügt!

Was also tun?

Es gibt mal wieder viele Wege die nach Rom führen...

Um die Daten von excel nach Access zu kriegen:
Mein bevorzugter Ansatz ist das Problem über ein Applikations-objekt zu lösen.


??????

Um eine Tabelle mit den entsprechende Formaten zu erstellen:
Excel-Zeile 1 Spaltenweise auslesen und als Datenbank - Tabellennamen verwenden (müssen ggf. bereinigt werden), über ein append-befehl die Tabelle erstellen und dann die Exceltabelle zeilenweise an die erstellt Importtabelle anfügen.

Wenn man dir hier was posten kann, schicke ich dir gerne mal ein Beispiel...

Gruß Leo


Mei, ist das kompliziert! Du meinst also, dass ich erst mal nur die erste Zeile ins Access importiere und dann den Rest in diese neue Tabelle importiere?
Aber wie kann ich beim Importieren zeilenweise auswählen? ???

Was ich mal ausprobiert habe (ist aber ein anderes Problem):
Beim Importieren kann ich doch in dem Assistenten (wenn man das so nennen kann) die Felder gleich entsprechend benennen... nun hab ich das gemacht und was passiert? Tausend leere Zeilen und dazu noch ein absolutes Durcheinander... zur Kontrolle hab ich im Excel die Zeilen mit einer laufenden Nummer gekennzeichnet, die schmeißt er mir total übern Haufen und zudem hat er eine Nummer gleich zwanzigmal geschrieben und Inhalte aus anderen Datensätzen dazugehängt!

Wenn man dir hier was posten kann, schicke ich dir gerne mal ein Beispiel...

Gruß Leo


Keine Ahnung, ob man das kann... muss ich dazu was einstellen unter "meine Daten"?

Antwort 9 von Teddy7

Wenn Du die Daten nur einmal übernehmen willst mußt Du Dich eigentlich nicht mit Übernahmetechniken rumplagen.
Da es Dich zu interessieren schein will ich´s mal für Nicht-Programmierer erklären.
Wenn man öfter Daten in Excel bekommt, die man nach Access übernehmen will, dann lohnt es sich, die Übernahme mit Visual Basic (VBA) zu programmieren.
Man kann dazu in Access einen Zugriff auf Excel definieren(das ist das "Applikationsobjekt").
Dann kann man aus Access heraus jede gewünschte Excel-Datei öffnen und darin jede einzelne Zelle (A1 , B7, ...)ansprechen.
So kann man jede Zelle erst mal prüfen bevor man sie übernimmt. Zur Übernahme definiert man dann einen Zugriff auf die gewünschte Tabelle(n). Dabei kann man feststellen, ob es den Datensatz schon gibt - also unterscheiden, ob man hinzufügen will oder nur Felder ändern will.
Das ist halt die professionelle Art der Datenübernahme.
Gruß
Teddy

Antwort 10 von Sanne

Hallo Teddy,

das ist sehr interessant und gut zu wissen, welche Möglichkeiten man hat! Aber wie Du schon richtig erkannt hast, wird das für meinen Fall hier nicht zutreffen ;-)
Hast Du (oder ein anderer Spezialist ;-) ) einen Tip zu dem weiteren Problem?
Kann es sein, dass Access ein Problem beim Importieren hat, wenn in Excel eine Spalte das Format "Datum" hat? Allerdings ist nicht die ganze Spalte in dem Format, die ersten Zeilen enthalten Überschriften und sind somit im Standardformat!

Grüße
Sanne

Antwort 11 von Teddy7

Die Überschriftszeilen wirst Du doch wohl nicht übernehmen, oder ?
Sollte eigentlich kein Problem sein.
Wie ist denn das Feld in der Access-Tabelle definiert ?

Gruß
Teddy

Antwort 12 von Sanne

*hüstel*

doch, aber ich hab beim import noch nicht gesehen, dass man die Zeilen "ausblenden" kann...
Der Felddatentyp ist für alle Felder zunächst Text, das ändere ich dann später um, da noch weitere Dinge angepasst werden müssen...

Antwort 13 von Teddy7

Wenn Du denn die Überschriften ausblendest und dann übernimmst - hast Du dann noch Probleme mit den Datumsfeldern ?
Wenn ja - wie äußert sich das ?

Antwort 14 von Springmaus

Hallo Teddy,

ich denke das gibt einen Importfehler über die ganze Spalte, wenn nicht nur einer Zeile Text vorhanden ist, die Du als Überschrift deklarieren kannst.

Aber wenn Sie doch die Daten nur einmal übernehmen muss, dann kann sie doch nicht benötigte Kopfzeilen wegwerfen, bevor sie importiert. Und dann nochmal vorsichtshalber prüfen, ob alle Zellen in der Spalte Datumsformat haben.

Gruß Marie

Antwort 15 von Sanne

Hallo,

das, was ich da verbockt habe, kann ich Euch nicht erklären, das wäre zuuuu peinlich! ;-))))))

Das mit den durcheinander gehauenen Nummern ist jedenfalls passé.

Marie, die Überschriften hab ich nicht übernommen, ich habe nach dem Import die Felddaten entsprechend benannt!

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: