Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1484to1488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ADODB - Probleme mit Dateityp

ADODB - Probleme mit Dateityp
07.04.2016 09:26:30
Tobias
Hallo zusammen,
da ich seit ich mit Excel angefangen habe, alle meine Fragen hier im Forum beantwortet bekommen habe, schreibe ich nun auch mal eine eigene Anfrage. Denn zu diesem Thema konnte ich leider nichts finden - vielleicht auch, weil ich nicht genau weiß, wie ich danach am besten suchen sollte.
Vielleicht schildere ich einfach mal meine bisherige Herangehensweise an mein Problem und komme dann zu meinem neuen Ansatz über ADODB, der im Vergleich einfach viel schneller ist.
Früher:
Ich habe verschiedene Rohdaten, die alle Informationen enthalten, die ich benötige. Bevor ich mit Makros anfing, wurden diese Rohdaten per Hand in eine Exceltabelle kopiert und dann mühsam mit Pivot und Formeln ausgewertet. Allein das kopieren der Rohdaten dauerte eine Weile, da oft 3-4 verschiedene Rohdatendateien dazu geöffnet werden mussten.
Das Öffnen dieser Dateien und das kopieren der Daten habe ich voll automatisiert. Die Auswertung dieser Daten erfolgt ebenfalls komplett im Makro. Riesen Zeitersparnis. Allerdings kam es zuletzt auch vor, dass diese Rohdaten auch mal größer 100 MB sein konnten, was einige Rechner einfach nicht mehr in angemessener Zeit schafften. Jetzt kommt die Idee mit ADODB ins Spiel.
Neuer Ansatz:
Mit ADODB kann ich die Daten aus einer solchen Rohdatei ohne separates Öffnen der Datei sekundenschnell laden und am entsprechenden Ort einfügen. Durch gute SELECT Anweisungen kommen dabei auch nur die benötigten Daten in die Auswertung.
Das Problem:
Das Laden der Daten funktioniert nur dann vernünftig, wenn die Rohdatendatei (immer *.xls/*.xlsx) auch wirklich eine echte *.xls/*.xlsx-Datei ist. Die Rohdaten kommen in vielen Fällen aber direkt aus einer Drittsoftware. Diese Software sichert die Daten zwar mit der Endung *.xls, in Wirklichkeit ist es aber eine Textdatei, die durch TAB getrennte Werte enthält. Das sorgt dafür, dass ich beim Öffnen einer solchen Datei immer eine Fehlermeldung a la: "Das Dateiformat und die Dateierweiterung von 'abc.xls' passen nicht zueinander. Möglicherweise ist die Datei beschädigt [...] trotzdem öffnen?"
Beim Klick auf Ja, öffnet Excel die Datei einwandfrei, da Excel diese Datei korrekt interpretieren kann.
Aktuelle (nicht wirklich hilfreiche) Lösung:
Ich habe weiterhin eine Öffnen-Prozedur in VBA. Eine geöffnete Datei kann man auch mit ADODB auslesen, da Excel das Format dann ja selbst angepasst hat. Aber meine Zeitersparnis ist dadurch flöten gegangen.
Auch der Weg, die Datei beim Sichern zu öffnen und über Speichern unter... als "echte" *.xls/*.xlsx zu speichern erspart ebenfalls keine Zeit.
Jetzt (endlich) zu meiner Frage:
Würde es reichen einen passenderen Connection String für ADODB zu wählen als den zur Zeit verwendeten
"DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & Pfad (für *.xls)
bzw.
"Provider=Microsoft.ACE.OLEDB.12.0; Extended Properties='Excel 12.0 Xml;HDR=YES';Data Source=" & Pfad (für *.xlsx)?
Oder gibt es einen ganz anderen Weg, der dieses Problem lösen könnte?
Bin gespannt auf eure Ideen.
Beste Grüße,
Tobias Persson

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ADODB - Probleme mit Dateityp
07.04.2016 16:27:08
Anton
Hallo Tobias,
vielleicht hilft das hier weiter.
mfg Anton

AW: ADODB - Probleme mit Dateityp
07.04.2016 17:36:21
Luschi
Hallo Tobias,
habe den von Anton vorgeschlagenen Tipp ausprobiert & er funktioniert wunderbar.
Einziger Haken: die Auslesedatei darf nicht den Dateityp 'xls' haben, sondern 'txt'
oder 'csv'. Das spielt der Verbindungs-Treiber nicht mit.
Hier mein Beispiel dazu: https://www.herber.de/bbs/user/104829.zip
- zip-Datei in einen leeren Ordner entpacken
- xlsm-Datei öffen
- mit CommandButten die Datenübernahme starten
Beachte dabei die Dateiu Schama.ini. Datin ist definiert, das in der csv-Datei die
Datenfelder per Tab-Zeichen getrennt sind.
Man könnte ja noch einbauen, das die vom Frendsystem gelieferte 'abc.xls' umbenannt
wird in 'abc.csv' oder eine Kopie mit dem neuen Namen erstellt wird.
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige