karbaa
Goto Top

Datentransfer von Excel nach Access

Hallo,

ich habe aktuell folgende Herausforderung:

IST:
1x Exceltabelle (Daten wurden aus einer CSV importiert) -> ca 900 Spalten und ca. 7000 Zeilen
-> diese Tabelle wird täglich neu und automatisiert erstellt

SOLL:
1x Access Datenbank (in welchem dann im Folgenden ein ordentliches Formular erstellt werden soll)
Datenimport von ca. 60 der 900 Excel Spalten in die Datenbank

Problem:
Es lassen sich nicht alle Spalten in Access importieren, da maximal 255 Spalten in einer DB erstellt werden können. die gewüsnchten Daten müssen also schon im Vorfeld bzw. beim Import (z.B. über Spaltenüberschriften) selektiert werden.
Leider ist es beim normalen Import nur möglich eine Auswahl der NICHT gewünschten Spalten zu treffen (mühselig bei mehr als 800 nicht gewollten Spalten und wenig effizient).

Bei meinen Recherchen im Netz bin ich auf VBA-Formeln gestoßen, mit denen einen bestimmten Bereich importieren kann - führt man dies jedoch für 2 Bereiche nacheinander aus, werden auch die Daten intereinander in der DB eingefügt :
A 1
B 2
wird dadurch zu
A
B
1
2

Hat jemand eine Idee wie ich die Daten im meine Access-DB transferieren kann?

Fremdsoftware steht nicht zur Verfügung und darf auf dem Arbeitsplatz nicht installiert werden.

Vielen Dank schonmal für eure Hilfe

Content-Key: 373275

Url: https://administrator.de/contentid/373275

Ausgedruckt am: 29.03.2024 um 05:03 Uhr

Mitglied: SeaStorm
SeaStorm 07.05.2018 um 16:48:33 Uhr
Goto Top
900 Spalten?! Egal was es ist, aber das kann kein Sinnvolles Format sein.

Erster Reflex: Schmeiss es weg und mach es in SQL neu. Dieses mal mit ordentlichem DB Design.
Aber evtl. ist es ja wirklich nötig.
Also:
Importiere es in eine ordentliche SQL DB.

Aber vermutlich ist auch nicht erlaubt und man will unbedingt Access, weil ... naja weil mans halt will. :m

Also bleibt dir nur ein Script
erster Durchlauf: lege nur die Spalte mit den IDs an
zweiter durchlauf: transferiere die ersten n-hundert Spalten anhand der IDs in die DB
dritter durchlauf: transferiere die nächsten n-hundert Spalten anhand der IDs in die DB
usw
Mitglied: karbaa
karbaa 07.05.2018 um 17:03:01 Uhr
Goto Top
- das Orginalformat ist eine CSV Datei
- die Informationen werden von einem Call Server bezogen. Mit den zur Verfügung stehenden Mitteln und Zugriffen ist das so und die Daten sind notwendig
- Fremdsoftware / nicht geprüfte und genehmigte Software DARF nicht gestartet oder benutzt werden
Mitglied: em-pie
em-pie 07.05.2018 aktualisiert um 17:25:58 Uhr
Goto Top
Moin,

ein "Schnellschuss"-Ansatz wäre:

Bei fixen Spaltenpositionen:
Die CSV zeilenweise einlesen, jede Zeile mit Split() zerlegen, sodass du zunächst mal ein 600-Value großes Array hast (deine Spalten)
Dann erstellst du einen String, der die 60 relevanten Werte aneinanderkettet (man könnte das auch mit einem weiteren Array erledigen)
Die einzelnen Strings werden dann in ein Array der größe [Anzahl Zeilen] eingesetzt.
Alternativ ein zweidimensionales Array erstellen. Dimension 1 ist die Zahl der Zeilen, Dimension 2 die 60 relevanten, zu importierenden Werte.

Musst du die Felder anhand der SPaltenüberschriften selektieren, brauchst du zwei Durchläufe:
Durchlauf 1: du ermittelst die SPalte ("ID") der zu übernehmenden SPalte anhand der Überschrift und merkst dir die "ID"
Durchlauf 2: arbeitest die CSV wie in der oberen Variante ab, setzt dann aber die ID in den Index des Arrays ein(Array(ID)), um die richtige Spalte abzufragen

Gruß
em-pie
Mitglied: 136037
136037 07.05.2018 um 18:07:40 Uhr
Goto Top
Mitglied: karbaa
karbaa 08.05.2018 um 13:18:29 Uhr
Goto Top
Danke - aber da ich noch in der Entwicklung des Formulars bin und es sein kann, dass auch eventuell mal eine Spalte dazukommen könnte, hilft diese Info jedoch nicht weiter

Diese Vorlagen lassen sich erstellen und aufrufen - jedoch nicht mehr anpassen / ändern, nachdem sie gespeichert worden sind.
Mitglied: SeaStorm
SeaStorm 08.05.2018 um 13:25:36 Uhr
Goto Top
Was spricht dagegen das so wie von Empie oder mir vorgeschlagen zu machen? Einfach und schnell umsetzbar.
Und wenn du das alles erst entwickelst, dann tu dir selbst den gefallen und mach ein ordentliches DB Design dahinter. Musst ja nicht den CSV Mist aus der Quelle übernehmen
Mitglied: karbaa
karbaa 15.05.2018 um 09:07:24 Uhr
Goto Top
@SeaStorm - der Kommentar war nicht für den Beitrag von Empie gedacht.
Dessen Ansatz versuche ich gerade umzusetzen (auch wenn's mir schwer fällt, weil ich kein Programmierer bin)