Avatar billede troelsm Nybegynder
24. september 2006 - 10:57 Der er 3 kommentarer og
1 løsning

Dele Fornavn/Efternavn i 2 seperate felter query (står i et nu)

Hejsa
Jeg har en tabel hvor fornavn og efternavn er indtastet i samme felt [Navn]
Kan man i en query (forespørgsel) dele dette således at
Fornavn bliver indtil første mellemrum og
Efternavn bliver resten
Avatar billede mugs Novice
24. september 2006 - 11:23 #1
Jeg ved ikke om du kan i en query, men i VBA kan det se således ud, prøv evt at lede efter en funktion der hedder Split::

Dim MaxUd, FMax, K, i, intspace As Integer
Dim strnavn As String
DoCmd.OpenForm "form1"
Me.Requery
MaxUd = DMax("[Tæller]", "Tabel1")
For K = 1 To MaxUd
strnavn = LTrim$(Me.[Navn])
FMax = Len(strnavn)
For i = 1 To FMax + 1
If Mid$(strnavn, i, 1) = " " Then Exit For
intspace = i
Next i
Me.[Fornavn] = LTrim$(Mid$(strnavn, 1, intspace))
Me.[Efternavn] = LTrim$(Mid$(strnavn, intspace + 2, FMax))
DoCmd.GoToRecord acForm, "form1", acNext, 1
Next K
DoCmd.GoToRecord acForm, "form1", acPrevious, 1
Avatar billede kjulius Novice
24. september 2006 - 16:20 #2
Hvis du ønsker at gøre det i en forespørgsel, så kan det gøres sådan her:

SELECT IIf(Instr(Navn,' ')=0,Null,Left([navn],InStr([Navn],' ')-1)) AS Fornavn, Right([Navn],Len(Navn)-InStr([Navn],' ')) AS Efternavn
FROM Tabel1;

Det vil naturligvis ikke altid give det rigtige resultat, hvis f.eks. der er indtastet mellemnavne (disse vil blive opfattet som hørende til efternavnet), eller hvis der f.eks. kun er indtastet et fornavn (hvis der kun er indtastet ét navn, vil det blive opfattet som et efternavn).
Men med disse forbehold, så skulle det virke i henhold til dine specifikationer.
Avatar billede kjulius Novice
24. september 2006 - 16:45 #3
Forøvrigt, hvis du skulle ønske at udvide det til også at have et felt til mellemnavne, kan det gøres sådan her:

SELECT IIf(Instr(Navn,' ')=0,Null,Left([navn],InStr([Navn],' ')-1)) AS Fornavn, IIf(instr(Navn,' ')=instrrev(Navn,' '),Null,Mid(Navn,Instr(Navn,' ')+1,Len(Navn)-Instr(Navn,' ')-(Len(Navn)-InStrRev(Navn,' ')))) AS Mellemnavn, Right([Navn],Len(Navn)-InStrRev([Navn],' ')) AS Efternavn
FROM Tabel1;
Avatar billede troelsm Nybegynder
24. september 2006 - 18:10 #4
kjulius virker perfekt og er i en query som det skulle være - derfor point
takker og lukker
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