Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Daniel1988 am Juni 17, 2013, 16:03:34

Titel: Abfrage als Text-Export mit Kopfzeile
Beitrag von: Daniel1988 am Juni 17, 2013, 16:03:34
Hallöchen!

Ich habe mir (als Anfänger) eine relativ umfangreiche Access-Tabelle zur Preiskalkulation und Bestandsabfrage gebastelt. Eine zusammenfassende Abfrage mit rund 60.000 Zeilen möchte ich tabstopp-getrennt und mit Punkten als Dezimaltrennzeichen sowie keinen Anführungsstrichen bei Textfeldern in eine Textdatei exportieren.

Soweit funktioniert dies auch mit dem Exportassissten wie gewünscht, leider fehlt der Textdatei aber noch eine zusätzliche Textzeile über den Spaltenbezeichnungen. Dies lässt sich, wie ich mittlerweile überall gelesen habe, auch nicht durch den Assissten bewerkstelligen.

Leider habe ich keinerlei VBA-Kenntnisse, sodass ich auch teilweise hier gepostete Prozeduren nicht passend zu meinen Bedürfnissen umschreiben kann.

Gibt es hierfür vielleicht eine relativ einfache Lösung, abgesehen von der manuellen Nachbearbeitung der Textdatei?

Für jeden Tipp bin ich sehr dankbar  :)
Titel: Re: Abfrage als Text-Export mit Kopfzeile
Beitrag von: DF6GL am Juni 17, 2013, 17:24:47
Hallo,

und was soll in dieser zusätzlichen Textzeile denn stehen?


Titel: Re: Abfrage als Text-Export mit Kopfzeile
Beitrag von: Daniel1988 am Juni 17, 2013, 18:31:36
Hallöchen,

muss mich da korrigieren, es müssen zwei extra Zeilen sein, in denen einfacher nur ein fester Text steht wie beispielsweise Template Version X vom 01.01.13, in der zweiten Zeile tauchen die Spaltennamen noch einmal in einer anderen Fassung/Sprache auf. Diese wird daher sehr lang, da es sich um circa 20 Spalten handelt.

Diese beiden Schritte sind notwendig damit die exportierte Text-Datei durch andere Programme als Vorlage erkannt wird.
Titel: Re: Abfrage als Text-Export mit Kopfzeile
Beitrag von: DF6GL am Juni 17, 2013, 18:44:41
Hallo,


das wird etwas aufwändiger...und der Access-Textexport leistet das allein so nicht.


Du könntest die eigentliche CSV-Datei mit dem Access-Textexport erzeugen und mit VBA die zwei anfänglichen Zeilen an die CSV-Datei voranstellen.

(Mit VBA.Print  die ersten beiden Zeilen in eine Datei schreiben und die Zeilen aus der CSV-Datei mit "Line Input" lesen und an die Datei anhängen (quasi kopieren))


Alternativ könnte die gesamte CSV-Datei via VBA generiert werden. (Siehe unter dbwiki.net "Eigenen Textexport schreiben")
Titel: Re: Abfrage als Text-Export mit Kopfzeile
Beitrag von: Daniel1988 am Juni 17, 2013, 18:56:50
Den "eigenen Textexport schreiben" hatte ich hier bereits im Forum als Tipp gefunden aber leider kaum verstanden, da eben die Programmierkenntnisse fehlen.

Der Teil mit dem Text kopieren klingt da für mich schon ein wenig einfacher, gibt es da vielleicht irgendwo ein paar kleine Anleitungen, mit denen man ein wenig rumprobieren kann?
Titel: Re: Abfrage als Text-Export mit Kopfzeile
Beitrag von: daolix am Juni 17, 2013, 21:44:07
Hallo
hier mal ein anriss:
Code (Luftcode) [Auswählen]

Private Sub IrgendEinButton_Click()
  dim ff as integer
  dim sout as string
  dim scsv as string
  dim sFilePath as string

  sFilePath  = "LW:\Path\File.csv"
  'exportiere Hier deine csv mit den Accessbordmittel als sFilePath

  'erstelle deinen Kopf
  sKopf = "Das ist die erste Kopfzeile" & vbCrLf & _
               "Das ist die zweite Kopfzeile." & vbCrLf


   ff = FreeFile                                 'jib mal ne freie Dateinummer
   open sFilePath  for binary as #ff              'Öffne Datei im Binärmodus
   scsv=String$(LOF(ff), 0)                          'Erstelle Buffer mit der Größe der datei
   get #ff, , scsv                                 'lese dateiinhalt in den Buffer
   seek #ff, 1                                      'Schieb den Zeiger an den Anfang der Datei
   put #ff, , skopf                                'Schreib den Kopf in die Datei
   put #ff, , scsv                                 'schreib den ursprünglichen Inhalt der CSV zurück
   Close #ff                                        'mach mal zu
end Sub
Titel: Re: Abfrage als Text-Export mit Kopfzeile
Beitrag von: Daniel1988 am Juni 17, 2013, 22:32:35
Das ist nett, vielen Dank!

Werd ich mal ausgiebig testen und anpassen  :)
Titel: Re: Abfrage als Text-Export mit Kopfzeile
Beitrag von: Daniel1988 am Juni 18, 2013, 09:44:55
Guten Morgen Zusammen,

die Lösung von Dir daolix war insgesamt für meine Situation nicht so passend, da der Header durch die Länge nicht so recht wollte wie ich.
Aber mit deinem Code konnte ich mir die ganze Sache super zusammenschustern, dass Access nun die zwei Kopfzeilen aus einer festen TXT-Datei zieht und einfach an die exportierte Datei oben anhängt. Ist vielleicht sogar noch besser, da man dadurch die Header-Vorlage jederzeit einfach anpassen oder ersetzen kann, bei Bedarf.

Vielen Dank nochmal!