🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #11926

Re: access 2000 vraagje

#11926
From: Eddy Van der Stock
Date: Mon, 31 Dec 2001 16:43
135 lines
5587 bytes
De hier volgende functie staat eveneens op het internet
(http://www.myatt.demon.co.uk/soundex.htm) de auteur is Author    :   Mark
Myatt, Brixton Health

Hoe gebruiken : stuur je te zoeken string naar deze functie en je krijgt een
code terug ...
Bvb federation = F363
Je laat je zoekactie doorvoeren op alles wat aan deze code voldoet ...
ook f�d�ration = F363 ...


Public Function FnSoundexCode(SurnameToCode As String)

    '
    ' Name      :   FnSoundexCode
    ' Function  :   Returns a SOUNDEX code for a text string
    ' Version   :   1.00
    ' Dated     :   23/01/98
    ' Author    :   Mark Myatt, Brixton Health
    '

    Dim LetterValue As String
    Dim RawLetterValues As String
    Dim CharacterPosition As Integer
    Dim DuplicatesRemoved As String
    Dim PlaceMarkersRemoved As String
    Dim PreviousLetterValue As String
    Dim CurrentLetter As String

    RawLetterValues = ""

    For CharacterPosition = 1 To Len(SurnameToCode)
        CurrentLetter = Mid(SurnameToCode, CharacterPosition, 1)
        '
        ' Default to "!" placemarker for vowels including "Y"
        '
        LetterValue = "!"
        '
        ' Assign Soundex scores
        '
        If CurrentLetter = "B" Then LetterValue = "1"
        If CurrentLetter = "C" Then LetterValue = "2"
        If CurrentLetter = "D" Then LetterValue = "3"
        If CurrentLetter = "F" Then LetterValue = "1"
        If CurrentLetter = "G" Then LetterValue = "2"
        '
        ' Letter "H" is null
        '
        If CurrentLetter = "H" Then LetterValue = ""
        If CurrentLetter = "J" Then LetterValue = "2"
        If CurrentLetter = "K" Then LetterValue = "2"
        If CurrentLetter = "L" Then LetterValue = "4"
        If CurrentLetter = "M" Then LetterValue = "5"
        If CurrentLetter = "N" Then LetterValue = "5"
        If CurrentLetter = "P" Then LetterValue = "1"
        If CurrentLetter = "Q" Then LetterValue = "2"
        If CurrentLetter = "R" Then LetterValue = "6"
        If CurrentLetter = "S" Then LetterValue = "2"
        If CurrentLetter = "T" Then LetterValue = "3"
        If CurrentLetter = "V" Then LetterValue = "1"
        '
        ' Letter "W" is null
        '
        If CurrentLetter = "W" Then LetterValue = ""
        If CurrentLetter = "X" Then LetterValue = "2"
        If CurrentLetter = "Z" Then LetterValue = "2"
        RawLetterValues = RawLetterValues + LetterValue
    Next CharacterPosition

    '
    ' Search for and replace duplicates with "!" placemarker
    '
    DuplicatesRemoved = Mid(RawLetterValues, 1, 1)
    For CharacterPosition = 2 To Len(RawLetterValues)
        PreviousLetterValue = Mid(RawLetterValues, CharacterPosition - 1, 1)
        CurrentLetter = Mid(RawLetterValues, CharacterPosition, 1)
        If CurrentLetter = PreviousLetterValue Then CurrentLetter = "!"
        DuplicatesRemoved = DuplicatesRemoved + CurrentLetter
    Next CharacterPosition

    '
    ' Remove "!" placemarkers
    '
    PlaceMarkersRemoved = ""
    For CharacterPosition = 2 To Len(DuplicatesRemoved)
        CurrentLetter = Mid(DuplicatesRemoved, CharacterPosition, 1)
        If CurrentLetter = "!" Then CurrentLetter = ""
        PlaceMarkersRemoved = PlaceMarkersRemoved + CurrentLetter
    Next CharacterPosition

    '
    ' Bulk out Soundex with "0" if required
    '
    If Len(PlaceMarkersRemoved) < 3 Then
        For CharacterPosition = 1 To 3 - Len(PlaceMarkersRemoved)
            PlaceMarkersRemoved = PlaceMarkersRemoved + "0"
        Next CharacterPosition
    End If

    '
    ' Finally... return the SOUNDEX code
    '
    FnSoundexCode = UCase(Mid(SurnameToCode, 1, 1)) +
Mid(PlaceMarkersRemoved, 1, 3)

End Function

==========================================
"betsy Calcoen" <betsy.calcoen@skynet.be> wrote in message
news:3c209c3d$0$10318$ba620e4c@news.skynet.be...
> hallo
>
> ik heb een zoekformulier gemaakt waarin een tekstveld staat : daar geven
> gebruikers de naam in
> Bij het klikken op een opdracht knop wordt een query gestart waarmee
records
> worden opgezocht op basis van wat in het tekstveld staat ingevuld en
worden
> deze recordgegevens in een lijstbox geplaatst:
>
> een probleem
> als de gebruiker bv. "federation" intypt, dan krijgt hij de franstalige
> 'f�d�rations' niet te zien
> kent iemand een oplossing om ervoor te zorgen dat bij het intypen van
> "federation" toch ook  records met de naam 'f�d�rations" te voorschijn
komen
> in mijn lijstbox
>
>
> bedankt op voorhand
> Betsy
>
> Betsy.calcoen@skynet.be
>
>
Technical Details
Message-ID: <3c30948b$0$56394$ba620e4c@news.skynet.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.238.2.15!skynet.be!skynet.be!louie!not-for-mail
References: <3c209c3d$0$10318$ba620e4c@news.skynet.be>

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII
X-Google-Thread: fcea4,770faf2603288139
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2001-12-31 08:38:37 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.238.2.15!skynet.be!skynet.be!louie!not-for-mail
From: "Eddy Van der Stock" <sky40490@skynet.be>
Newsgroups: be.comp.programming
References: <3c209c3d$0$10318$ba620e4c@news.skynet.be>
Subject: Re: access 2000 vraagje
Date: Mon, 31 Dec 2001 17:43:52 +0100
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2462.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2462.0000
Lines: 137
Message-ID: <3c30948b$0$56394$ba620e4c@news.skynet.be>
Organization: -= Skynet Usenet Service =-
NNTP-Posting-Host: 217.136.125.165
X-Trace: 1009816715 reader0.news.skynet.be 56394 217.136.125.165
X-Complaints-To: abuse@skynet.be