Avatar billede puppetmaster Nybegynder
10. december 2004 - 15:52 Der er 11 kommentarer og
2 løsninger

komma i værdier i liste

Min komboliste kan indeholde værdier med kommaer, hvilket giver problemer når jeg vil f.eks. hive værdierne ind i et array.
For i = 0 To frm.Controls(kontrol(ControlNumber).name_2).ListCount - 1
Debug.Print frm.Controls(kontrol(ControlNumber).name_2).Column(0, i)

Hvordan kan man "hakke" værdierne i en liste op, så f.eks.
ABINGDON, UK
UK
Kbh H, Denmark
Denmark

kommer til at stå som ovenstående i stedet for
ABINGDON
UK
UK
Kbh H
Denmark
Denmark

De på listen valgte værdier bruges i en formular-filterstreng
Avatar billede philip1804 Nybegynder
10. december 2004 - 16:04 #1
Kender ikke access, men vil tro at det vil virke med et "\" foran et komma -

ABINGDON\, UK
UK
Kbh H\, Denmark
Denmark
Avatar billede puppetmaster Nybegynder
10. december 2004 - 16:20 #2
Jeg vil IKKE skrive \ foran noget som helst, jeg vil FORHINDRE Access i at dele værdierne:
ABINGDON, London er IKKE 2 separate værdier, men én værdi
Avatar billede Jørgen Kirkegaard Professor
10. december 2004 - 22:29 #3
Rolig nu, phillip1804 foreslår, at du skriver "\," i stedet for "," i dine tekststrenge for at få det til at virke.
Avatar billede puppetmaster Nybegynder
13. december 2004 - 09:46 #4
Hmm...jeres forslag ligner noget fra ASP.
Jeg kan IKKE bede brugerne om at indtaste \ foran , eller '
det vil være umuligt at styre.
For at anskueliggøre problemet lidt bedre, er her hvad der kommer i min SELECT (SQL streng):

Først navnene, dernæst hvordan de kommer til at se ud i min connect streng
Birds Eye Wall's Ltd
Cornic S.A.
Bremerhaven, Germany

(([Kundenavn] LIKE 'Birds Eye Wall's Ltd')
(([Kundenavn] LIKE 'Cornic S.A.')
(([Oplastningssted] LIKE 'Bremerhaven') or ([Oplastningssted] LIKE 'Germany')

Første linie fremkalder en fejl, da der indgår et ulige antal '
Anden linie er der ingen problemer med
Tredje linie bliver jo, som det kan ses, delt i 2, hvilket er "forkert".
Avatar billede puppetmaster Nybegynder
13. december 2004 - 10:02 #5
Problemet er jo at jeg ikke bare kan fjerne ' og , fra strengen, da dataene bliver sammenlignet med det der står i tabellerne.
Avatar billede puppetmaster Nybegynder
13. december 2004 - 10:19 #6
Koden som formaterer en del af forespørgselsstrengen:
FilterTekst = FilterTekst & "([" & kontrol(ControlNumber).ControlSource & "] LIKE '" & frm.Controls(kontrol(ControlNumber).name_2).Column(0, i) & "')"
Avatar billede puppetmaster Nybegynder
13. december 2004 - 10:46 #7
Den med komma kan vi godt glemme, det er noget i koden der "går galt"! :(
Debug.Print frm.Controls(kontrol(ControlNumber).name_2).Column(0, 0)
(giver det forkerte resultat)
Debug.Print Forms("Søg i Ordreseddel").Controls("felt_1").Column(0, 0)
(giver det rigtige resultat)

men der mangler stadig noget omkring '
Avatar billede puppetmaster Nybegynder
13. december 2004 - 11:50 #8
Løsningen på ' problemet var at tilføje endnu en ':
Replace(frm.Controls(kontrol(ControlNumber).name_2).Column(0, i), "'", "''")

(kan sgu ikke helt se i koden hvor det andet går galt.... :()
Avatar billede Jørgen Kirkegaard Professor
13. december 2004 - 18:18 #9
Prøv at bruge "A" & "," & "B" for at få "A,B".
Avatar billede puppetmaster Nybegynder
14. december 2004 - 08:07 #10
Er ikke helt sikker på at du er med på hvad jeg mener (eller også er det mig der ikke fatter din forklaring!)

en af værdierne i min dropdown liste kunne være
Kbh H, Denmark

Hvis jeg forsøger at Debug.Print'e denne værdi med
Debug.Print Forms("Søg i Ordreseddel").Controls("felt_1").Column(0, i)
får jeg det rigtige resultat.
Men vedkommende som har lavet programmet (jeg har bare overtaget udviklingen af systemet), bruger denne stump kode til at hente værdierne i listen
Debug.Print frm.Controls(kontrol(ControlNumber).name_2).Column(0, 0)
Som giver det forkerte resultat
(værdien bliver af en eller anden grund splittet til 2 værdier, hvis værdien har et komma, 3 værdier, hvis der er 2 kommaer og så fremdeles)
Avatar billede Jørgen Kirkegaard Professor
14. december 2004 - 12:35 #11
Det var vist mig, der ikke helt forstod hvad du mente...
Avatar billede puppetmaster Nybegynder
16. december 2004 - 11:34 #12
Problemet løst ved at gennemløbe variablen og udskifte ' med ''
Replace(rst2("minVar"), "'", "''")
Avatar billede puppetmaster Nybegynder
16. december 2004 - 11:35 #13
Lukker spørgsmålet igen...
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

IT-JOB

Politiets Efterretningstjeneste

IT Sikkerhedsarkitekt i PET

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Tech Lead til Datacenter Operations

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef til Enterprise Arkitektur i Forsvaret på Østerbro

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Teamleder til AL Sydbanks GDPR & Tech Regulation i Aabenraa