Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: crystal am Juli 21, 2016, 17:59:03

Titel: Codepage korrigieren
Beitrag von: crystal am Juli 21, 2016, 17:59:03
Hallo Leute,

folgendes Problem:
ich habe Daten aus diversen Textdateien importiert, die ich leider nicht mehr komplett zur Verfügung habe. Die Textdateien wurden mit Codepage 850 erstellt (DOS), aber leider arbeitet Windows mit cp 1252.

Gibt es eine einfache Möglichkeit, dies in meiner Tabelle nachträglich zu korrigieren außer jedes Feld mit mehreren replace (für äöüßÄÖÜ usw.) abzuarbeiten?

Titel: Re: Codepage korrigieren
Beitrag von: Lachtaube am Juli 21, 2016, 18:36:18
Schwer zu sagen, welcher Aufwand größer ist.

Ein Weg wäre:

==> Standard-Textexport fahren
==> Tabelleninhalt löschen
==> Textdaten erneut in bestehende Tabelle importieren und die richtige Code Page im Assistenten einstellen.

Am besten mit einer Kopie der DB testen.
Titel: Re: Codepage korrigieren
Beitrag von: crystal am Juli 21, 2016, 20:39:48
Danke Lachtaube,

so ähnlich habe ich es jetzt gemacht, allerdings ohne Löschen der Spalten, sondern mittels Temorärtabelle, joins und Updates.
Titel: Re: Codepage korrigieren
Beitrag von: Lachtaube am Juli 21, 2016, 21:22:26
Das ist natürlich geschickter. :)
Titel: Re: Codepage korrigieren
Beitrag von: Beaker s.a. am Juli 21, 2016, 22:05:50
Hallo crystal,
Falls du das öfter hast, kannst du auch mal dies probieren.
Option Compare Database
Option Explicit
'Dieses Modul stammt von Norbert Kammer aus einer Access-Newsgroup
'es dient der Umwandlung von ASCII zu ANSI Zeichen

Declare Function OemToChar Lib "user32" Alias "OemToCharA" _
        (ByVal lpszSrc As String, _
        ByVal lpszDst As String) As Long

Declare Function CharToOem Lib "user32" Alias "CharToOemA" _
        (ByVal lpszSrc As String, _
        ByVal lpszDst As String) As Long

Public Function Dos2Ansi( _
        ByVal cDos As String) As String
'---------------------------------------------------------------------------------------
On Error GoTo Fehler

    Dim cErg As String
    Dim X    As Long
   
    cErg = Space$(Len(cDos & vbNullString))
    X = OemToChar(cDos, cErg)
   
    Dos2Ansi = cErg

Ende_CleanUp:
    On Error Resume Next
    Exit Function

Fehler:
    MsgBox Err.Number & vbCrLf _
        & Err.Description
    Resume Ende_CleanUp

End Function


gruss ekkehard