Juni 21, 2021, 03:49:34

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Export als csv datei

Begonnen von Mykis, Juni 02, 2021, 21:06:23

⏪ vorheriges - nächstes ⏩

Mykis

Hallo Access-Freunde,

ein kleines Problem beschäftigt mich wieder mal bei meiner Pilzdatenbank. Ich gebe eine Liste im Excel-csv Format aus. Leider werden hier die Selbstlaute falsch dargestellt, also z.B ä, ö, ü.
Meine Transferzeile sieht wie folgt aus.

DoCmd.TransferText acExportDelim, "ExpInsdatenCSV", "CSV_Export", MykIS_Root & "expimp\Mykdaten.csv", True
Die Mykdaten.csv wird im UTF 8-Code erzeugt, sie muss aber im Ansi-Code erzeugt werden. Gibt es dazu einen Befehl in Access?

Beste Grüße
Frank

andyfau

Hallo,

soweit ein manueller Zwischenschritt nichts ausmacht:
Die CSV mit Notepad öffnen und bei "speichern unter" den Code umstellen.

Ansonsten hätte ich da noch diese Funktion:Function Convert(myFileIn, myFileOut)
  Dim stream, strTextText
  Set stream = CreateObject("ADODB.Stream")

  stream.Open
  stream.Type = 2 'text
  stream.LoadFromFile myFileIn
  stream.Position = 0
  stream.Charset = "iso-8859-1"
  strText = stream.ReadText
  strText = Mid$(strText, 3, Len(strText)) 'Die ersten beiden Scrottzeichen entfernen
  stream.Close

  stream.Open
  stream.Type = 2
  stream.Position = 0
  stream.Charset = "utf-8"
  stream.WriteText strText
  stream.SaveToFile myFileOut, 2
  stream.Close
  Set stream = Nothing

End Function

ebs17

In der Exportspezifikation - eine solche wird von Dir schon verwendet - sollte man auch die zu verwendende Codepage einstellen können.
Mit freundlichem Glück Auf!

Eberhard

Mykis

Hallo,

vielen Dank für eure beiden Antworten. Die händige Umwandlung habe ich bis jetzt schon immer durchgeführt und wollte das nun bei der Erstellung schon automatisieren.

@Eberhard- In der Exportspezifikation kann ich bei den Textfeldern kein Format auswählen. Wie könnte ich dort den Ansi Code einstellen?

@andyfau- deinen Code muss ich erstmal verinnerlichen, da ich nichts so ein VBA Experte bin. Gilt der nur für ein Textfeld? Bei mir sind es ca. 10 Textfelder.

LG
Frank

MzKlMu

Hallo,
die Exportspezi wird nicht pro Feld eingestellt, sondern für den Export insgesamt (gilt für alle Felder). Siehe Bild.
Gruß
Klaus

markus888

@Mykis

DoCmd.TransferText hätte den Parameter CodePage.
Falls dir das neu ist einfach mal in die Hilfe schauen.

Grundsätzlich wundert mich das Thema aber.
Normal gibt es das umgekehrte Problem.
User benötigen Utf-8 und bekommen nur Ansi, was doch der Standard ist.
Warum das bei dir anders ist wundert mich doch etwas.

Vielleicht kennst du ja die Gründe dafür.
10 Jahre Access

andyfau

Zitat von: Mykis am Juni 03, 2021, 10:15:17@andyfau- deinen Code muss ich erstmal verinnerlichen, da ich nichts so ein VBA Experte bin. Gilt der nur für ein Textfeld? Bei mir sind es ca. 10 Textfelder.
Die Funktion zieht eine komplette Datei als Stream durch und funzt in alle Richtungen, je nach dem welchen iso-Code man einliest und welchen Charset man bei der Ausgabe wählt.
Aber wenn man in der Exportspezi einfach nur ein Häkchen setzen muss, ist das natürlich einfacher.

Mykis

Zitat von: MzKlMu am Juni 03, 2021, 11:09:03Hallo,
die Exportspezi wird nicht pro Feld eingestellt, sondern für den Export insgesamt (gilt für alle Felder). Siehe Bild.

Hallo Klaus,
wo kann ich das Fenster das du in deinem Bild zeigst, in meiner accdb öffnen. Irgenwie stelle ich mich zu blöd an. Mein Fenster "gespeicherte Importe/Exporte" ist leer.

@markus888- Warum mein Access nur im UTF8 Format exportiert, weiß ich nicht.

LG
Frank

ebs17

Die erwähnte Exportspezifikation hat mit gespeicherten Importen wenig zu tun. Letztere legen zwar auch welche an, versenken die aber in XML-Untiefen.

Importiere eine Textdatei per Hand (Menü, Externe Daten, Textdatei ...). Dort  bekommst Du die relevanten Dialoge geliefert (=> Anschauen). Einstellungen speichern, Namen dazu merken. Diese angelegte Exportspezifikation solltest Du dann verwenden, geht auch als Importspezifikation.
Mit freundlichem Glück Auf!

Eberhard

Mykis

Hallo Eberhard,

beim Importieren einer Textdatei wird mir kein ansi code zur Auswahl angeboten. In der MSysIMEXSpecs, wo die Exportspezifikation gespeichert ist, finde ich auch kein Feld, wo ein Code hinterlegt wäre. Bei filetyp steht "-535"?

LG
Frank

Mykis

Hallo zusammen,

den filetyp in meiner Exportspezifikation habe ich von "-535" in "1258" geändert. Jetzt werden die Sonderzeichen in der csv richtig angezeigt.
Vielen Dank für eure Hilfe

LG
Frank

Mykis

Hallo,

wo sind denn neuerdings die Button "Danke" und "Problem gelöst"?

LG
Frank