Avatar billede Louise1985 Mester
17. juni 2016 - 13:40 Der er 3 kommentarer og
1 løsning

Fjern tekst i string

Hej

Jeg har en kolonne med tekster der indeholder værdier så som
N7
10N
LM10
LM

Dvs. hvor tal og tekst ikke er placeret konsistent. Jeg har nu brug for at kunne uddrage KUN tallene i ovenstående værdier dvs.:
7
10
10
0

Jeg arbejde i Acces (dog ikke i SQL), men SQL scriptet ser sådan her ud:

SELECT DISTINCT tbl_Last12Months.Betalingsbetingelser, tbl_Last12Months.[Betalingsbetingelser beskrivelse],
IIf([Betalingsbetingelser] Like '*N*',"Netto",IIf([Betalingsbetingelser] Like '*L*',"Løbende","N/A")) AS Type,

Val([Betalingsbetingelser) AS Nettodage

FROM tbl_Last12Months;

Jeg har forsøgt mig i sidste felt (Nettodage) at uddrage KUN tal, men kan her kun uddrage de værdier der starter med et tal og ikke dem der starter med et bogstav... Har I en idé til hvordan jeg kan løse dette?

PFT!
Avatar billede kabbak Professor
17. juni 2016 - 14:23 #1
Public Function FindTal(Ind As String) As Integer
Dim I As Integer
For I = 1 To Len(Ind)

If IsNumeric(Mid(Ind, I, 1)) Then
FindTal = FindTal & Mid(Ind, I, 1)
End If
Next
If IsEmpty(FindTal) Then FindTal = 0

End Function


kaldes med

FindTal([Betalingsbetingelser]) AS Nettodage

Funktionen lægges i et kodemodul
Avatar billede Louise1985 Mester
20. juni 2016 - 07:38 #2
Tak for scriptet.

NU er jeg ikke nogen sql haj... skal jeg blot indsætte fra "Public Function" til og med "End function" i Sql scriptet og i queryen indsætte "Findtal.... AS Nettodage" ?

Når jeg gør det får jeg følgende fejl:
"SELECT sætningen indeholder et reserveret ord eller argument der er stavet forkert eller mangler, eller tegnsætningen er ikke korrekt..."

Håber du kan hjælpe mig igen...
Avatar billede Jørgen Kirkegaard Professor
04. juli 2016 - 01:07 #3
Nej. "Funktionen skal lægges i et kodemodul" betyder: "Opret -> modul". Herinde indsætter du koden, altså teksten fra "Public function" til "End Function". Herefter lagrer du modulet, f.eks. som "Modul1". Så kan du bruge funktionen som beskrevet.

Koden er lidt fræk, fordi den sætter en integer lig med en streng, men herved foretager den selv konverteringen. Desuden sætter den "Findval" til 0, hvis den er "Empty" :-)
Avatar billede Jørgen Kirkegaard Professor
09. juli 2016 - 13:10 #4
Øh, det var kakbak, som gav løsningen. Jeg fortalte bare, hvordan du skulle bruge den :-)
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

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