Avatar billede dkoclni Nybegynder
02. december 2004 - 16:36 Der er 11 kommentarer og
1 løsning

like og elseif sætninger

Jeg må være træt.... Hvorfor virker nedenstående ikke?

Adresse er en tekststreng som f.eks. "Gothersgade 14, 1. sal" eller "Gothersgade 14, 5. sal". Tanken er at teksten skal oversættes til engelsk. Dermed skal alle "x. sal" oversættes.
Men det virker kun med den første if/then - de andre bliver ignoreret. Det vil sige at 1. sal fint bliver oversat, men adresser på 5. sal gør ikke.

If Adresse Like "*[1. sal]" Then
    TXTadresse = Replace(Adresse, "1. sal", "1st floor")
ElseIf Adresse Like "*[2. sal]" Then
    TXTadresse = Replace(Adresse, "2. sal", "2nd floor")
ElseIf Adresse Like "*[3. sal]" Then
    TXTadresse = Replace(Adresse, "3. sal", "3rd floor")
ElseIf Adresse Like "*[4. sal]" Then
    TXTadresse = Replace(Adresse, "4. sal", "4th floor")
ElseIf Adresse Like "*[5. sal]" Then
    TXTadresse = Replace(Adresse, "5. sal", "5th floor")
End If

Hvis jeg så, som test, i den første if/then sætning skriver 5. sal - så bliver 5. sal oversat og resten ignoreret!! Hvorfor fanger den kun den første?


Som en yderligere lille test satte jeg en msgbox("X") ind i hver if/then - hvor "x" blev erstattet af tallet for den sal der skulle erstates (den skulle så gerne skrive 3 i en dialogbox, hvis der stod 3. sal).
Testen blev kørt på fem adresse, hvor af der var én adresse med 1. sal, én med 3. sal, én med 5. sal og to uden nogen sal.
Dette resulterede i tre dialogboxe (som det også skulle) - MEN med tallet 1 på dem alle!!!!!
Det vil altså sige at linien:
If Adresse Like "*[1. sal]" Then
også fanger 3. sal og 5. sal!!!
Hvorfor!???
Avatar billede jensen363 Forsker
02. december 2004 - 16:40 #1
Ikke like "*[1.sal]" men like "*1.sal"
Avatar billede sjap Praktikant
02. december 2004 - 16:41 #2
Prøv med mellemrum mellem Else og If
Avatar billede sjap Praktikant
02. december 2004 - 16:43 #3
Ved i øvrigt ikke om der er forskel på UK og US, men i US er

1st floor = stuen
2nd floor = 1. sal
3rd floor = 2. sal
etc.
Avatar billede mugs Novice
02. december 2004 - 16:43 #4
Prøv at bruge en Select Case struktur i stedet for disse If... Then. Det gør det hele meget mere overskuelig. Select Case er en udvikling af If.. Then og særdeles velegnet til flere betingelser:

Select Case Me.Adresse
Case Is = Like "*[1. sal]"
TXTadresse = Replace(Adresse, "1. sal", "1st floor")
Case Is = Like "*[2. sal]"
TXTadresse = Replace(Adresse, "2. sal", "2nd floor")
End Select

Det er ikke afprøvet.
Avatar billede dkoclni Nybegynder
02. december 2004 - 16:45 #5
Jensen363: Selvfølge!! Det spiller!
Jeg ER sgu træt - tænkt at skrive alt dette herinde - uden at fange den!!! ;)

Smid et svar og du får pointene....

sjap: Det kan man ikke: "Compile error - must be first statement on the line"
Avatar billede sjap Praktikant
02. december 2004 - 16:45 #6
Glem i øvrigt mit forslag - jeg vidste ikke der er noget, der hedder ElseIf - beklager ;0(
Avatar billede jensen363 Forsker
02. december 2004 - 16:47 #7
Svar :o)
Avatar billede dkoclni Nybegynder
02. december 2004 - 16:51 #8
Mugs: Ja, det burde give samme resultat med en Case - dog med jensen363's ændring. Om der i dette tilfælde er en egentlig performance forskel ved jeg ikke, for den skal teste på indholdet hver gang. Men det er en helt anden diskusion. ;)

Sjap: Det har du da egentlig ret i! Jeg må lige have fat i en englænder og en amerikaner (fordelen ved at arbejde på en sprogskole! ;)...
Avatar billede mugs Novice
02. december 2004 - 16:54 #9
dkoclni -> Ja det er klart, [1. sal] er jo ikke et feltnavn.

Nå - Det er jensen vel undt. Han mangler :o)
Avatar billede dkoclni Nybegynder
02. december 2004 - 16:55 #10
Helt uden for (spørgsmålets) kontekst:

Så har jeg haft fat i en amerikaner og en englænder:
England: 1st floor = 1. sal
Amerika: 1st floor = stueetagen

Så er vi alle blevet det klogere! ;)
Avatar billede dkoclni Nybegynder
02. december 2004 - 16:56 #11
Ja, og så med et korrekt svar efter 3 min.! Respekt! ;)
Avatar billede mugs Novice
02. december 2004 - 16:58 #12
Respekt > Det er der absaolut ingen grund til :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