Avatar billede rasmus1234 Nybegynder
15. september 2009 - 14:21 Der er 5 kommentarer og
1 løsning

Tekst til kolonne ved brug af linieskift-tegnet

Jeg har i en access-fil et felt "Adresse", som indeholder linieskift 'Chr(13)'. Dette tegn vil jeg gerne bruge til at separere feltet - ligesom i Excel "Tekst til kolonner".

Antallet af Chr(13) i feltet er uvist.

Hvordan gør jeg det?
Avatar billede rasmus1234 Nybegynder
22. september 2009 - 09:38 #1
Jeg har fundet ud af at fjerne Chr(13), og indsætter et ";" i stedet...dvs. at spørgsmålet nu er, hvordan jeg adskiller feltet på ";" til flere felter?
Avatar billede fdata Forsker
22. september 2009 - 11:29 #2
Min første indskydelse er: Hvorfor ikke prøve at erstatte Chr(13) med mellemrum i stedet for ";" og så bruge koden fra spm. http://www.eksperten.dk/spm/870313 direkte?

Hvis du erstatter med mellemrum få du vel adresser, som ligner dem i eksemplerne.
Avatar billede rasmus1234 Nybegynder
22. september 2009 - 12:51 #3
Adressen er ikke lige så fint opbygget som spm. 870313. Til gengæld er linie-skift-tegnet Chr(13) allerede til stede. Hvis jeg bare erstatter med mellemrum vil det ikke være muligt at adskille de mange mellemrum der findes i adressen (som er noget værre rod ind i mellem)
Avatar billede fdata Forsker
22. september 2009 - 18:25 #4
Nu bliver det spooky.
Du skriver både Antallet af Chr(13) i feltet er uvist og adressen er ikke lige så fint opbygget!?!

Hvor rodet kan en adresse da være?
"For mange" mellemrum kan man forholdsvis let slippe af med.

Kan du ikke lige smide et par eksempler her, så vi ved, hvad vi er oppe imod?
Avatar billede rasmus1234 Nybegynder
23. september 2009 - 11:05 #5
Der er maks 3x Chr(13) i teksten.

Har leget lidt med Access i mellemtiden - ved brug af InStr()+Mid()+viden om at der max er 3x Chr(13) i tekststrengen har jeg fundet en løsning på udfordringen.

Jeg laver tre adressefelter
- Adressefelt 1 = Left() indtil InStr finder positionsnr af Chr(13)-1.
- Adressefelt 2 = InStr finder det andet positionsnr af Chr, hvor InStr's første parameter er tekstlængden/Len() af Adressefelt 1 +1. Disse info bruges til Mid().
- Adresse 3 i samme stil som adresse 2.

Det blev en udfordrende/kringlet løsning, men Access er alligevel ganske hurtig til at give resultatet. Og samtidig var det interessant at se, at løsningen godt kunne laves uden kode.

fdata, jeg har gemt link til din tidligere løsning, som jeg tror jeg vil få behov for en gang i fremtiden.
Avatar billede fdata Forsker
23. september 2009 - 19:20 #6
10-4. Det vigtigste er at du kommer videre.
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