Access 2007 nach CSV
Ich benötige eine zweizeilige CSV-Datei
Moin Leute,
ich habe mir einen Access 2007 Bericht zusammengestellt, der ungefähr so aussieht:
Wobei die Zeile B und Zeile K jeweils einen Datensatz darstellen.
Soweit so gut.
Nun möchte ich das in irgendeiner Form in eine CSV-Datei exportieren, die Semikolon-getrennt ist und genau das obige Format hat (also mit B-Zeile und K-Zeile).
Ich habe schon alle möglichen Export-Varianten ausprobiert, aber in der CSV stehen B-Zeile und K-Zeile immer in einer Reihe, ungefär so:
Hat jemand wohl eine Idee, wie ich eine zwei-zeilige CSV erstellen kann?
Gerne auch über den Umweg erst in Excel und von dort nach CSV...
Danke, Gruß
CeMeNt
Moin Leute,
ich habe mir einen Access 2007 Bericht zusammengestellt, der ungefähr so aussieht:
B | 2 | SA | 24.09.2009 | 411000 |
K | 52 | 0912345 |
B | 2 | SA | 24.09.2009 | 456500 |
K | 52 | 0923456 |
B | 2 | SA | 24.09.2009 | 478901 |
K | 52 | 0934567 |
Wobei die Zeile B und Zeile K jeweils einen Datensatz darstellen.
Soweit so gut.
Nun möchte ich das in irgendeiner Form in eine CSV-Datei exportieren, die Semikolon-getrennt ist und genau das obige Format hat (also mit B-Zeile und K-Zeile).
Ich habe schon alle möglichen Export-Varianten ausprobiert, aber in der CSV stehen B-Zeile und K-Zeile immer in einer Reihe, ungefär so:
B | 2 | SA | 24.09.2009 | 411000 | K | 52 | 0912345 |
B | 2 | SA | 24.09.2009 | 456500 | K | 52 | 0923456 |
B | 2 | SA | 24.09.2009 | 478901 | K | 52 | 0934567 |
Hat jemand wohl eine Idee, wie ich eine zwei-zeilige CSV erstellen kann?
Gerne auch über den Umweg erst in Excel und von dort nach CSV...
Danke, Gruß
CeMeNt
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 125726
Url: https://administrator.de/contentid/125726
Ausgedruckt am: 15.11.2024 um 17:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo CeMeNt!
Das kann man relativ einfach über Batch oder VB-Script konvertieren. Allerdings bedarf es dazu genauere Angaben.
Was steht jetzt in einer Zeile: Spalte von bis?
Zeile 1 soll sein: Spalte von bis?
Zeile 2 soll sein: Spalte von bis?
Gruß Dieter
Das kann man relativ einfach über Batch oder VB-Script konvertieren. Allerdings bedarf es dazu genauere Angaben.
Was steht jetzt in einer Zeile: Spalte von bis?
Zeile 1 soll sein: Spalte von bis?
Zeile 2 soll sein: Spalte von bis?
Gruß Dieter
Hallo CeMeNt!
OK, an die Feldnamen hatte ich noch garnicht gedacht, aber die werden einfach in einem Array definiert und in Zeile 1 geschrieben.
Gruß Dieter
OK, an die Feldnamen hatte ich noch garnicht gedacht, aber die werden einfach in einem Array definiert und in Zeile 1 geschrieben.
Gruß Dieter
Hallo CeMeNt!
Hier mal ein VB-Script (*.vbs) zum testen.
Die Konstanten Path und Feldnamen entsprechend anpassen:
Gruß Dieter
PS. Wenn die *.Csv-Datei nur in Excel importiert werden soll, dann wäre ein VBA-Code wohl effektiver?
Hier mal ein VB-Script (*.vbs) zum testen.
Die Konstanten Path und Feldnamen entsprechend anpassen:
Option Explicit
Const Path = "X:\Test\Test.csv"
Const F01 = "A" 'Feldnamen
Const F02 = "B"
Const F03 = "C"
Const F04 = "D"
Const F05 = "E"
Const F06 = "F"
Const F07 = "G"
Const F08 = "H"
Const F09 = "I"
Const F10 = "J"
Const F11 = "K"
Const F12 = "L"
Const F13 = "M"
Const F14 = "N"
Const F15 = "O"
Const F16 = "P"
Const MsgMld = "Konvertierung beendet."
Const MsgErr = "Datei nicht gefunden!"
Dim Fso, File, Text, Feld, Line, Z, Z1(15), Z2(3), i
Feld = Array(F01, F02, F03, F04, F05, F06, F07, F08, F09, F10, F11, F12, F13, F14, F15, F16)
Set Fso = CreateObject("Scripting.FileSystemObject")
If Fso.FileExists(Path) = False Then MsgBox MsgErr, vbExclamation, "Fehler": WScript.Quit
Text = Split(Fso.OpenTextFile(Path).ReadAll, vbCrLf)
Set File = Fso.CreateTextFile(Path)
File.WriteLine Join(Feld, ";")
For Each Line In Text
Z = Split(Line, ";")
If UBound(Z) >= 19 Then
For i = 0 To UBound(Z1): Z1(i) = Z(i): Next
File.WriteLine Join(Z1, ";")
For i = 0 To UBound(Z2): Z2(i) = Z(i + 16): Next
File.WriteLine Join(Z2, ";")
End If
Next
File.Close
MsgBox MsgMld, vbInformation, "Meldung"
Gruß Dieter
PS. Wenn die *.Csv-Datei nur in Excel importiert werden soll, dann wäre ein VBA-Code wohl effektiver?
Guten Morgen CeMeNt!
Genauso, wie Du es beschrieben hast, sollte es eigentlich funktionieren.
Mein Test mit Zeilen in dieser Form:
ergibt:
In Zeile 39-47, werden alle Spalten in die Variable Z geschrieben und aufgeteilt in Z1 = 16 Spalten und Z2 = 4 Spalten. Oder habe ich doch was falsch verstanden.
Ist Dein ursprüngliches Cvs-Format enventuell UTF8 oder so. Kopiere mal eine Orignal-Zeile in einen normalen Texteditor und schau ob der Text normal aussieht.
Gruß Dieter
Genauso, wie Du es beschrieben hast, sollte es eigentlich funktionieren.
Mein Test mit Zeilen in dieser Form:
A;B;C;D;E;F;G;H;I;K;L;M;N;O;P;Q;R;S;T |
A;B;C;D;E;F;G;H;I;K;L;M;N;O;P |
Q;R;S;T |
In Zeile 39-47, werden alle Spalten in die Variable Z geschrieben und aufgeteilt in Z1 = 16 Spalten und Z2 = 4 Spalten. Oder habe ich doch was falsch verstanden.
Ist Dein ursprüngliches Cvs-Format enventuell UTF8 oder so. Kopiere mal eine Orignal-Zeile in einen normalen Texteditor und schau ob der Text normal aussieht.
Gruß Dieter
Hallo CeMeNt!
Verstehe ich nicht ganz?
Heißt das jetzt, dass in die 1. Zeile keine Feldnamen geschrieben werden sollen?
Wenn ja, dann Codezeilen 5-20 und 27 und 37 entfernen.
Gruß Dieter
Verstehe ich nicht ganz?
Heißt das jetzt, dass in die 1. Zeile keine Feldnamen geschrieben werden sollen?
Wenn ja, dann Codezeilen 5-20 und 27 und 37 entfernen.
Gruß Dieter
Hallo CeMeNt!
Gern geschehen
Dann sind ja soweit alle Unklarheiten beseitigt und wünsche ich Dir auch ein schönes WE
Gruß Dieter
Gern geschehen
Dann sind ja soweit alle Unklarheiten beseitigt und wünsche ich Dir auch ein schönes WE
Gruß Dieter