Avatar billede florint Nybegynder
02. november 2003 - 16:57 Der er 13 kommentarer og
1 løsning

Funktion til erstat

Hej,
Jeg har siddet hele eftermiddagen nu, og forsøgt at få en funktion til at virke, men nu opgiver jeg.
Det er en funktion der skulle kunne erstatte nogle "mærklige" tegn efter en import af nogle tabeller.
Jeg fandt en funktion som terry har lagt på eksperten for længe siden, men hvis jeg bruger den så får jeg en Compile error - argument not optional...og det fatter jeg ikke en brik af !
Funktionen kalder jeg doTranslate og jeg har prøvet at kalde den med doTranslate.fldUpdate (bruger Access 2002)

Funktionen er her:
Function fldUpdate(sIn As String) As String
Dim sWork As String
Dim i As Integer

    sWork = sIn
   
    For i = 1 To Len(sWork)
   
        Select Case Asc(Mid(sWork, i, 1))
       
            Case 229
                Mid(sWork, i, 1) = "å"
            Case 43
                Mid(sWork, i, 1) = "Å"
            Case 230
                Mid(sWork, i, 1) = "æ"
            Case 198
                Mid(sWork, i, 1) = "Æ"
            Case 248
                Mid(sWork, i, 1) = "ø"
            Case 139
                Mid(sWork, i, 1) = "Ø"
            Case Else
        End Select
       
    Next i
   
    fldUpdate = sWork

End Function

Er der nogen der kan give en hånd her ? - Jeg er kørt fast !
På forhånd tak.
Avatar billede henrik13 Nybegynder
02. november 2003 - 17:13 #1
DoCmd.DoMenuItem A_FORMBAR, A_EDITMENU, 10, , A_MENU_VER20
Avatar billede terry Ekspert
02. november 2003 - 17:14 #2
florint> I'm not quite sure what the problem is!
You say you name the function doTranslate but in the code example it is called fldUpdate!

you would call the function

Dim sString as string
sString = fldUpdate ("This is the string to translate")
Avatar billede terry Ekspert
02. november 2003 - 17:16 #3
The function should be in a module so that it is available to all forms etc.
Avatar billede terry Ekspert
02. november 2003 - 17:17 #4
Henrik?
Avatar billede florint Nybegynder
02. november 2003 - 17:30 #5
Hej Terry,
Det er nok det der er mit problem....Koden ligger i et modul kaldet doTranslate.
Hvordan får jeg det afviklet ved at klikke på en knap ? Lad os starte der.
Avatar billede terry Ekspert
02. november 2003 - 17:41 #6
In the on click event of the button you use something like this.

Dim sString as string
sString = fldUpdate ("This is the string to translate")

then after this code is run sString will contain the translated text, although in the example there is nothing to translate.

You do NOT need to use the module name (doTranslate) when you call the function
Avatar billede terry Ekspert
02. november 2003 - 18:05 #7
but waht is it you are trying to translate? If it is the contents of a table then you should be able to call the function from an UPDATE query

UPDATE YourTable SET SomeField = fldUpdate([SomeField])
Avatar billede florint Nybegynder
02. november 2003 - 18:22 #8
Så faldt tiøren...
Du har ærligt fortjent point, men kan du svare mig på hvorfor den kun "oversætter" + = Å ??
Resten ser således ud :
µ = æ
ã = Æ
Ï = Ø
° = ø
+ = Å
Õ = å
Jeg har forsøgt at finde den rigtige ascii tabel, men hvor mange findes der ?
mvh
Avatar billede florint Nybegynder
02. november 2003 - 18:40 #9
Har løst det - jeg prøver om lidt - det skal selvfølgelig være ascii koden for det "mærklige tegn" der skal stå som case 186 osv ikke ascii koden for det rigtige bogstav - Sorry !
Avatar billede terry Ekspert
02. november 2003 - 19:50 #10
sorry I was off getting something to eat.

Its working as you want now I hope?

Tak!
Avatar billede florint Nybegynder
02. november 2003 - 19:54 #11
Uden mad og drikke, duer helten ikke...! VIRKER PERFEKT ! Tak for hjælpen.

Hvad nu hvis man har tre felter i samme tabel ?

Mvh
Avatar billede terry Ekspert
02. november 2003 - 19:59 #12
Should be no problem updating all three fields in one go.

UPDATE YourTable SET SomeField = fldUpdate([SomeField]), SomeField2= fldUpdate([SomeField2), SomeField3= fldUpdate([SomeField3)
Avatar billede florint Nybegynder
02. november 2003 - 20:55 #13
Bingo ! Super mange tak Terry, Det virker bare rigig fint !
Takker !
Avatar billede terry Ekspert
03. november 2003 - 17:42 #14
:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester