Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: thorpax am November 26, 2014, 12:35:08

Titel: Sonderzeichen Ascii ß
Beitrag von: thorpax am November 26, 2014, 12:35:08
Hallo Leute :)

Ich benutze Access 2003 auf einem Win 2011 Server mit einer Paradox 7 Datenbank.
Diese Datenbank ist von unserer Warenwirtschaft und noch aktuell. Da Access 2010 absolut nicht zu überreden ist diese Paradox 7 DB zu lesen, habe ich wieder Access 2003 installiert.

Mein Problem sind die Sonderzeichen. Ich erstelle Auswertungen aus den Paradox Datenbanken mittels einem ADODB Recset.
Alles passt super, nur die Sonderzeichen passen nicht.
Also schreibe ich eine kleine Routine, die diese korrigiert in dem der String neu zusammengebaut wird.

ÄäÜüÖö und ß

Ä bis ö habe ich hinbekommen... aber das ß macht mir Probleme.
Im Bericht wird es als ▀ angezeigt. (alt+223). Im Recset als String Variable aber wie ein Underscore nur obenliegend.

Wie kann ich dieses abfragen ?
Durchsuche ich den String nach asc(223), wird mir ein "ss" rausgeschnitten  zB.: grossen / großen wird als gro▀en im Bericht gezeigt.

Bin für jeden Tip ofen :)

LG
Andi
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: MaggieMay am November 26, 2014, 12:54:11
Hallo,

Asc(223) ist falsch, das scharfe "s" (ß) entspricht dem Code von Chr(223).
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: thorpax am November 26, 2014, 13:15:04
Hallo .
Danke für den Hinweis. Aber ich weiss nicht wie ich es abfragen soll.

    Dim x, neu As String
        Me.Text2.SetFocus
             x = Me.Text2.TEXT 'qwer▀asdf (beispiel)
             If InStr(x, Chr(223)) Then
                   neu = Replace(x, Chr(223), "ß", 1)
            End If

Aber es kommt nicht zur Bedingung :(

LG Andi
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: MaggieMay am November 26, 2014, 13:20:09
Das macht ja auch keinen Sinn Chr(223) durch "ß" zu ersetzen, weil es dasselbe ist.
Vermutlich steht dort ein ganz anderes Zeichen drin.

Wie bekommst du denn hier das Kästchen angezeigt, woher nimmst du das?
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: thorpax am November 26, 2014, 13:31:39
Das Kästchen schreibe ich hier mit
alt+223
Im Bericht wird es so angezeigt soll aber als ß angezeigt werden.
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: DF6GL am November 26, 2014, 13:33:47
Hallo,

vielleicht sollte im ODBC-Treiber nachgesehen werden, welche Zeichensätze, bzw. Konvertierungen verwendet werden können...
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: thorpax am November 26, 2014, 13:43:57
Hallo DF6GL.

Ich habe den normalen Paradox BDE Treiber installiert und die Tabellen der Paradox Datenbank verküpft.
Lese diese Tabellen dann wir normale Tabellen mittels einen ADODB.Recordset aus und bearbeite die Inhalte.

Diese schreibe ich in eine Tabelle, welche dann als Datenherkunft des Berichtes dient.

Aber dank deinem Hinweis, werde ich mal versuchen in den BDE Treibereinstellungen etwas zu finden :)
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: MaggieMay am November 26, 2014, 13:47:09
ZitatDas Kästchen schreibe ich hier mit
alt+223
Gibt es da noch irgendeinen Trick dabei, ich bekomme das nicht hin.
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: thorpax am November 26, 2014, 13:51:06
Einfach nur "alt" gedrückt halten und dann 223 eingeben. Ähnlich wie shift + F2
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: MaggieMay am November 26, 2014, 13:54:35
Das funktioniert bei mir nicht, woran kann das liegen?
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: DF6GL am November 26, 2014, 13:57:59
Hallo,

um erst mal festzustellen, um welches Zeichen es sich tatsächlich handelt, schlage ich vor, die Zeichenkette Zeichen für Zeichen als ASCII-Zahl auszugeben:

For i = 1 to Len (Me!Text2)
Debug.Print Asc(Mid (Me!Text2,i,1))
Next


PS: Das funktioniert bei mir nicht, woran kann das liegen?

die Nummer muss auf dem Nummernblock eingetippt werden...
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: MaggieMay am November 26, 2014, 14:01:39
ZitatNummernblock
Danke, da wäre ich wohl von alleine nie im Leben drauf gekommen.
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: thorpax am November 26, 2014, 14:21:45
Hey ... ich habes nun .... :)

Vielen Dank für eure Hilfe.

Das Zeichen ▀ wird mit Hilfe des Codes von DF6GL als 175 angezeigt. Gebe ich dieses Zeichen als Chr(175) aus, erscheint der von mir bereits erwähnte oben liegnde Underscore der auch in der Stringvariable angezeigt wird......

Ich lasse den String nun Buchstabenweise durchlaufen und baue ihn wieder zusammen, nur als Prüfbedingung nehme ich jetzt die 175 statt der 223 :)

Schon seltsam aber Dank eurer Hilfe doch gut :)
alt + 223 = ▀
alt + 225 = ß
alt + 175 = » aber eigentlich sollte es ein anderes Zeichen sein (obenliegender Strich) ????

Egal weiss nun wie ich es hin bekomme  :D

Nochmal Danke ..

LG
Andi   
Titel: Re: Sonderzeichen Ascii ß
Beitrag von: thorpax am November 26, 2014, 14:31:24
Perfekt :)

Dim i As Byte
Dim a As Long
Dim s As String
s = ""
For i = 1 To Len(Me!Text2)
    a = Asc(Mid(Me!Text2, i, 1))
    If a = 175 Then
            s = s & "ß"
        Else
            s = s + Chr(a)
    End If
Next i