Avatar billede zoone Nybegynder
09. juni 2005 - 11:06 Der er 11 kommentarer og
1 løsning

Replace funktion?!

Hej

Er der nogen der kan forklare mig hvorfor følgende ikke virker i en query? Jeg har en kolonne fyldt med billeder med stier på, og jeg ønsker kun at ende med billedet. Problemet er bare at filnavnene ikke er lige lange hver gang...

Min "funktion":


Billede uden sti: Replace([Billede uden sti];"*/";"")

Inputtet er som f.eks: /BarkAS/S2/73.1451.30517p.jpg

og skulle gerne resultere i: 73.1451.30517p.jpg

Hjælp modtages gerne! :)
Avatar billede terry Ekspert
09. juni 2005 - 13:23 #1
does it work directly in code? If so move the replace to a function and call the function from the query
Avatar billede zoone Nybegynder
09. juni 2005 - 13:52 #2
Dunno, I dont know how to build such a code - I'm too noob, so I only use the query builder or change a few things in existing bits of code... I can't build new code on my own :(
Avatar billede jesperfjoelner Nybegynder
09. juni 2005 - 18:33 #3
Det vil ikke virke, da replace-funktionen ikke tager wildcards. Den evaluerer dine argumenter, som tekst, så den leder efter teksten "*/".

Hvis du skal have ryddet op i en kolonne og kun vil have filnavne tilbage kan du køre en lille stump kode, der klarer det.

Sub FjernStier()
Dim i as integer
Dim rs as dao.recordset
Dim db as dao.recordset
Dim s as string
set db = currentdb()
set rs=db.openrecordset("SELECT kolonnenavn FROM tabelnavnet")

Do while not rs.EOF
  i = instrrev(rs!kolonnenavn,"/")
  s = right(rs!kolonnenavn,(len(rs!kolonnenavn)-i) )
  rs.edit
  rs!kolonnenavn = s
  rs.update
  rs.movenext
Loop

set rs = nothing
End Sub
Avatar billede jesperfjoelner Nybegynder
09. juni 2005 - 18:34 #4
skal du have en forklaring på hvordan du kører det?
Avatar billede jesperfjoelner Nybegynder
09. juni 2005 - 18:53 #5
Der var en lille fejl.

Der skal stå
Dim db as dao.database
i steder for .recordset.

Du skal have en reference til Microsoft DAO 3.6 for at det virker.
Avatar billede zoone Nybegynder
10. juni 2005 - 09:58 #6
En forklaring på hvordan det køres ville være rart...

Jeg kan lige magte at gå ind i en form og vælge build event på en knap, men så heller ikke ret meget mere :)

Og den reference til DAO 3.6 må du også meget gerne komme med! :P
Avatar billede jesperfjoelner Nybegynder
10. juni 2005 - 14:39 #7
Ok, der er to måder at gøre det på. Den jeg foreslog var den besværlige og her kommer den lettere. Det så ud som om du var ved at lave en forespørgsel, hvor du ville bruge en funktion til at rydde op i kolonne.

Hvis du bruger denne funktion i din opdaterings-query i stedet tror jeg det virker.
(nn = dit kolonnenavn)

Right([nn];(Len([nn])-(InStrRev([nn];"\"))))

Det kan også gøres med den stump kode ovenfor, men med denne løsning, kan du køre det som en forespørgsel, og det ser ud som du har været i gang med det.
Sig til hvis ikke det virker.
Avatar billede jesperfjoelner Nybegynder
10. juni 2005 - 14:40 #8
hov det skal være "/" i stedet for "\" i dit tilfælde.
Avatar billede jesperfjoelner Nybegynder
10. juni 2005 - 14:49 #9
husk lige at have backup inden du kører det :-)
Avatar billede jesperfjoelner Nybegynder
13. juni 2005 - 19:34 #10
Fik du det til at virke?
Avatar billede jesperfjoelner Nybegynder
16. juni 2005 - 23:59 #11
Hva' så Zoone, kører det?
Avatar billede zoone Nybegynder
23. juni 2005 - 08:08 #12
Jeg fik det til at virke ved at lave en count på længden af hele cellen og så lave en right udfra hvor "\sz2\" står. Ikke optimalt, og ret "husmands"-agtigt, men det virker da...

Så point til jesperdrengen for inspirationen :P
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