Access soll Excelfile öffnen und bearbeiten

Hallo allerseits und btw frohe ostern.
Vielleicht habt ihr ja ein Osterei für mich…ich suchs nämlich grad in access und finds nicht. :smile:

Ausgangssituation:
Ich habe eine Access DB die über ein Makro bestimmte Daten importiert. Basis ist jeweils ein *.csv File.
Nun muss ich aber ein Excelfile importieren, welches schrecklich Formatiert aus SAP kommt und sich daher nicht importieren lässt.
Dieses Excel müsste ich aus Access heraus gesteuert bearbeiten und nach der Bearbeitung erst importieren. (Der Import wird über einen Formularbutton in Access gestartet).

Anforderung:
1.) Access soll im Hintergrund Excel starten und die Datei Muster.xls öffnen.
2.) Von meiner Muster.xls müssen die ersten 50 Zeilen gelöscht werden.
3.) Danach muss im Rest geschaut werden, ob in den Datenfeldern irgendwo ein ; vorkommt und dieser gegen ein anderes Zeichen welches keine Probleme bei einem csv Import verursacht ersetzt werden.
4.) Nun soll die Muster.xls als Muster.csv abgespeichert werden. Idealerweise so, dass keine Fenster aufgehen, die der User bestätigen muss.

Nachdem das alles gelaufen ist, kann ich nämlich mit meinem Importmakro die Datei wieder normal importieren und bekomme keine Fehlermeldungen oder versetzte Datneinhalte.

Wär echt super, wenn hier jemand eine Idee hat. Meine VB Script Kenntnisse sind leider quasi gegen 0. Solltet ihr mir ein Skript schreiben können und Zeit finden, dieses zu Kommentieren, also was bei welchem Befehl passiert, wär das super, da ich dann evtl. meine Kenntnisse durch herumbasteln selbst erweitern könnte.

Frohe Ostern und ein schönes WE.
Chris

Hallo,

hilft dir wohl nicht viel weiter, aber wenn ich das bearbeiten würde hätte ich ein paar Fragen dazu:

Was ist das für eine komische CSV-Datei, dass die von Access nicht direkt importiert/verknüpft werden kann, sondern das ganze über ein Makro gehen muss? Wenn man einen fertigen CSV-Parser verwendet, sollten die Semikolia auch keine Probleme bereiten, wenn die Datenfelder in Anführungstrichen eingeschlossen sind.

Warum soll außerdem die Excel-Datei erst einmal nach CSV exportiert werden und dann wieder in Access importiert werden? Soweit ich weiß, kann Access auch direkt Excel lesen.

Hallo

Also das Problem ist, dass das aus einem SAP BW kommt und nur in *.xls formatierung exportiert werden kann. Am Beginn der Datei stehen diverse Auswahlkriterien, die für die restlichen Daten getroffen wurden. Also einmal die ersten 49 Zeilen nur Schrott. Erst dann steht die eigentliche Tabelle mit Tabellenkopf und Daten.
Bei der Erstellung der xls werden ausserdem die Feldinhalte nicht unter „“ gesetzt. Damit werden bei speichern der xls als csv automatisch die ; als nächste Zeile interpretiert und somit verschieben sich einige Datenzeilen um ein Feld.

Wieso das ganze in csv: Ich kann beim Import in Access nur einer csv eine Importspezifikation mitgeben und keiner xls. Da ich beim Import ein Paar Spaltennamen neu setzen muss, benötige ich für das Makro die Importspezifikation.

Ich hoffe das schafft Klarheit über mein Problem.
Vielleicht ist es ja jetzt einfacher für Euch, mir hier zu helfen.

LG
Christian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Kurzes Update:
Ich konnte gerade erreichen, dass die unnötigen ; aus den Datenfeldern in den Stammdaten korrigiert werden. Somit muss der Schritt mit den ; erstzen nicht mehr gemacht werden. Die ersten 50 Zeilen müssen aber nach wie vor entfernt werden. Dann wäre nur noch die Erzeugung auf csv notwendig und ich könnte damit weiter arbeiten.

LG
CHristian

Hallo,

mittels eins EXCEL-OLE Objects kann man so ziehmlich alles mit einem Worksheet anstellen.
myObj = CreateObject(„EXCEL.Application“)
Die weitenen funktionen die du benoetigen wirst, kannst du die aus der EXCEL-Hilfe bzw. aus der MSDN besorgen. z.B. Loeschen von ganzen Spalten, Formartierung von Zellen etc.

Dein Problem ist mir gut bekannt, da ich auch schon diverse Probleme mit SAP generierten EXL-Dateien hatte.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo
Danke für die Antwort. Jedoch kann ich dir nicht ganz folgen. Das würde bedeuten, dass ich in der Exceldatei ein Objekt hinterlege, welches meine Funktionen ausführen kann und dieses aus der Access heraus aufrufe oder? Kenne mich da leider nicht so genau aus bei der Thematik.
Mein Problem ist, dass die von mir vorbereitete Access auf mehreren verschiedenen Rechnern lokal abgelegt ist und die Stammdateien einmal wöchentlich auf einem Server die alten Versionen überschreibt. Daher müsste ein Excelobjekt welches von Access heraus aufgerufen werden kann auf jedem dieser lokalen Rechner vorhanden sein. Oder liege ich da falsch? Falls diese Aussage zutrifft, habe ich ein Problem, da ich nicht sicherstellen kann, dass jeder lokale Rechner auch über dieses Excelobjekt verfügen wird können.

Ich müsste also alles aus der Access heraus steuern.

Alternativ dazu habe ich mir am WE überlegt, dass ich aus Access eigentlich nur per Makro steuern müsste, dass die Master.xls auf Master.csv umbenannt wird und ich dann anhand meiner Importspezifikation mir so weit helfen könnte, dass es beim Import zu keinem Fehler kommt. Dann müsste ich aber aus dem gleichen Makro heraus steuern, dass die ersten 50 Zeilen nach dem Import sofort gelöscht werden.
Da ich keine Ahnung von VB habe und mir mit der zweiten Variante leichter tun würde (sollte sie über die Standardfunktionen bei der Entwurfsansicht eines Makros erstellbar sein), wäre ich um Ideen hier ebenfalls sehr dankbar.

LG
Christian

P.S.: Ich liebe SAP Formatierungen…*heul*

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]