Diakritische tekens aanpassen (ö,ç,á etc.)

Status
Niet open voor verdere reacties.

allard1

Gebruiker
Lid geworden
5 dec 2006
Berichten
314
Beste vrienden,
Tot voor kort wist ik niet wat diakritische tekens waren. Ik maakte al grappen Diakrietje mayonaise etc.....Dit werd niet in dank afgenomen, we zijn met serieuze zaken bezig :p

Neemt niet weg, dat het probleem blijft staan. Wat is nu het geval. Voor mijn werk ben ik bezig een aantal tabellen te normaliseren voor aanlevering in een extern systeem. Leuk en aardig, alleen nu kan dat externe systeem niet om gaan met de diakritische tekens oftewel alle letters met rare tekens erop, eronder etc. De vraag is, of er een functie is waarmee ik dit allemaal in een keer kan aanpassen. Nu kan ik wel de replace functie gebruiken, maar wellicht heeft iemand een ander idee....Ik hoor het graag.

Alvast bedankt,
Groet,
Allard
 
Misschien met een bijwerkquery? Daarmee kun je hele tabellen tegelijk aanpassen. Zoek maar eens in de help van access naar Bijwerkquery of Update query
 
Laatst bewerkt:
Misschien met een bijwerkquery? Daarmee kun je hele tabellen tegelijk aanpassen. Zoek maar eens in de help van access naar Bijwerkquery of Update query

Dat is inderdaad een optie alleen zit ik met het feit, en das misschien dom gedacht, dat er misschien meer dan 1 diakritisch teken in de lijst staat (104000 records). Is het mogelijk om dit te doen middels een referentielijst?
 
Je zou een functie kunnen maken die door de namen heenloopt, en de gevonden diacrieten vervangt. Iets als dit bijvoorbeeld:

Code:
Option Explicit
Option Compare Binary

Function VervangDiacriet(sWaarde As String) As String
Dim iLen As Integer, i As Integer
Dim sLetter As String, sTmp As String

iLen = Len(sWaarde)
For i = 1 To iLen
    sLetter = Mid(sWaarde, i, 1)
    Select Case sLetter
        Case "À", "Á", "Â", "Ã", "Ä", "Å", "Æ"
            sTmp = sTmp & "A"
        Case "à", "á", "â", "ã", "ä", "å", "æ"
            sTmp = sTmp & "a"
        Case "Ç"
            sTmp = sTmp & "C"
        Case "ç"
            sTmp = sTmp & "c"
        Case "È", "É", "Ê", "Ë"
            sTmp = sTmp & "E"
        Case "è", "é", "ê", "ë"
            sTmp = sTmp & "e"
        Case "Ñ"
            sTmp = sTmp & "N"
        Case "ñ"
            sTmp = sTmp & "n"
        Case "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Œ"
            sTmp = sTmp & "O"
        Case "ò", "ó", "ô", "õ", "ö", "ø", "œ"
            sTmp = sTmp & "o"
        Case "Š"
            sTmp = sTmp & "S"
        Case "š"
            sTmp = sTmp & "s"
        Case "Ù", "Ú", "Û", "Ü"
            sTmp = sTmp & "U"
        Case "ù", "ú", "û", "ü"
            sTmp = sTmp & "u"
        Case "Ý", ""
            sTmp = sTmp & "Y"
        Case "ÿ"
            sTmp = sTmp & "y"
        Case Else
            sTmp = sTmp & sLetter
    End Select
    VervangDiacriet = sTmp
Next

End Function

Deze code zet je in een nieuwe module en roep je in een query aan met:
TekstNieuw:VervangDiacriet([VeldOud])
 
Je zou een functie kunnen maken die door de namen heenloopt, en de gevonden diacrieten vervangt. Iets als dit bijvoorbeeld:

Code:
Option Explicit
Option Compare Binary

Function VervangDiacriet(sWaarde As String) As String
Dim iLen As Integer, i As Integer
Dim sLetter As String, sTmp As String

iLen = Len(sWaarde)
For i = 1 To iLen
    sLetter = Mid(sWaarde, i, 1)
    Select Case sLetter
        Case "À", "Á", "Â", "Ã", "Ä", "Å", "Æ"
            sTmp = sTmp & "A"
        Case "à", "á", "â", "ã", "ä", "å", "æ"
            sTmp = sTmp & "a"
        Case "Ç"
            sTmp = sTmp & "C"
        Case "ç"
            sTmp = sTmp & "c"
        Case "È", "É", "Ê", "Ë"
            sTmp = sTmp & "E"
        Case "è", "é", "ê", "ë"
            sTmp = sTmp & "e"
        Case "Ñ"
            sTmp = sTmp & "N"
        Case "ñ"
            sTmp = sTmp & "n"
        Case "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Œ"
            sTmp = sTmp & "O"
        Case "ò", "ó", "ô", "õ", "ö", "ø", "œ"
            sTmp = sTmp & "o"
        Case "Š"
            sTmp = sTmp & "S"
        Case "š"
            sTmp = sTmp & "s"
        Case "Ù", "Ú", "Û", "Ü"
            sTmp = sTmp & "U"
        Case "ù", "ú", "û", "ü"
            sTmp = sTmp & "u"
        Case "Ý", ""
            sTmp = sTmp & "Y"
        Case "ÿ"
            sTmp = sTmp & "y"
        Case Else
            sTmp = sTmp & sLetter
    End Select
    VervangDiacriet = sTmp
Next

End Function

Deze code zet je in een nieuwe module en roep je in een query aan met:
TekstNieuw:VervangDiacriet([VeldOud])

Dit is fantastisch.....VBA en excel zijn voor mij goede bekenden, maar Access en VBA, dat is andere koffie volgens mij. Ik was al begonnen met meerdere replace functies te maken, maar na 3 functies had ik het wel bekeken. Deze ga ik eens even testen wat het ziet er wel goed uit.
Dank nogmaals


UPDATE> HIJ WERKT FANTASTISCH!!!!!!!!!!!!!!!!!!!!!!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan