VBA Tipp: Umlaute in HTML-Codes umsetzen

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Ich möchte in einer Variablen (in einer Abfrage) die Umlaute durch die entsprechenden HTML-Codes für benannte HTML-Sonderzeichen ersetzen.

Lösung

Das geht so:

Public Function ConvHTML(S)
'
'  Sonderzeichen und Umlaute durch HTML-Codes ersetzen
'
Dim I As Long, Res As String, Ch As String * 1
  ConvHTML = Null
  If Not IsNull(S) Then
    Res = ""
    For I = 1 To Len(S)
      Ch = Mid(S, I, 1)
      Select Case Asc(Ch)
        Case Asc("ä"): Res = Res & "ä"
        Case Asc("Ä"): Res = Res & "Ä"
        Case Asc("ö"): Res = Res & "ö"
        Case Asc("Ö"): Res = Res & "Ö"
        Case Asc("ü"): Res = Res & "ü"
        Case Asc("Ü"): Res = Res & "Ü"
        Case Asc("ß"): Res = Res & "ß"
        Case Asc("<"): Res = Res & "&amp;lt;"
        Case Asc(">"): Res = Res & "&amp;gt;"
        Case Asc("&"): Res = Res & "&amp;amp;"
        Case Else: Res = Res & Ch
      End Select
    Next I
    ConvHTML = Res
  End If
End Function

Aufruf

Per SQL:

SELECT ConvHTML(MeinFeld) AS HTML, * FROM MeineTabelle

Anmerkung

Die obige Funktion ist alles andere als vollständig, was die Sonderzeichen angeht. Mehr dazu z. B. in:

Moderne Browser verstehen in der Regel die erweiterten Windows-Zeichensätze. In vielen Fällen dürfte die Lösung also sein, das folgende Tag in HTML einzufügen:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />