Gå til innhold

Anbefalte innlegg

Vet at ikke access støtter SUBSTRING funksjonen så jeg må bruke en annen funksjon. Skal ha ut de 3 første ordene i et datafelt. Med substring funker det slik:

 

SELECT SUBSTRING_INDEX(Fornavn,' ',3) as Fnavn FROM brukerdata

 

Vet at man kan bruke MID i access, men finner ikke noe syntaxer på det på nett. Noen som vet hvordan man gjør det og om man kan bruke INDEX i MID ?

Lenke til kommentar
  • 4 uker senere...
Videoannonse
Annonse
Vet at ikke access støtter SUBSTRING funksjonen så jeg må bruke en annen funksjon. Skal ha ut de 3 første ordene i et datafelt. Med substring funker det slik:

 

SELECT SUBSTRING_INDEX(Fornavn,' ',3) as Fnavn FROM brukerdata

 

Vet at man kan bruke MID i access, men finner ikke noe syntaxer på det på nett. Noen som vet hvordan man gjør det og om man kan bruke INDEX i MID ?

Du kan bruke en mid funksjon, eller en left funksjon til dette formålet.

Siden du skal ha de 3 første tegnene så blir det også riktig om du sier at du starter til venstre på ordet, altså først, og teller deg 3 tegn ut.

 

Syntax for å søke slik er som følger:

 

SELECT Left([FORNAVN],3) AS Fnavn

FROM brukerdata;

 

SELECT Mid([FORNAVN],1,3) AS Fnavn

FROM brukerdata;

 

Vet ikke om noen måte å kjøre index på, for Access indexerer automatisk.

Lenke til kommentar
  • 1 måned senere...
  • 2 uker senere...

Dersom du bruker Access som front-end (og ikke er koblet mot Accessdatabasen fra et annet program) kan du blande VBA funksjoner inn i SQL syntaxen.

 

I ditt tilfelle:

Opprett et Visual Basic modul i Accessdatabasen din (hvis du ikke har et allerede).

Legg inn denne funksjonen som bruker VB sin "Split":

 

Public Function MySubstring(str As String, dlt As String, index As Integer) As String

 

Dim retArray() As String

retArray = Split(str, dlt)

MySubstring = retArray(index)

 

End Function

 

Du kan selvsagt lage denne funksjonen så lang og vond du vil for å fikse på teksten din.

 

Funksjonen kan så kjøres i en SQL query:

 

SELECT MySubstring([Fornavn]," ",0) AS Navn1, MySubstring([Fornavn]," ",1) AS Navn2, MySubstring([Fornavn]," ",2) AS Navn3

FROM Brukerdata;

 

Her legges de tre første ordene i hver sin kolonne i det returnerte datasettet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...