Gå til innhold

Anbefalte innlegg

Skrevet

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 ?

  • 4 uker senere...
Videoannonse
Annonse
Skrevet
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.

  • 1 måned senere...
Skrevet

Jeg skal ikke ha de 3 første tegnene, men de 3 første ordene. Det blir straks litt vanskeligere da man aldri vet hvor langt det er i tegn. De 3 ordene forandrer seg fra post til post.

  • 2 uker senere...
Skrevet

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.

Skrevet

Så det er ikke noe måte å behandle dette dirkte mot access. Høres ut som microsoft har gjort en svak jobb.

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...