Kender ikke access, men vil tro at det vil virke med et "\" foran et komma -
ABINGDON\, UK
UK
Kbh H\, Denmark
Denmark
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
Rolig nu, phillip1804 foreslår, at du skriver "\," i stedet for "," i dine tekststrenge for at få det til at virke.
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".
Problemet er jo at jeg ikke bare kan fjerne ' og , fra strengen, da dataene bliver sammenlignet med det der står i tabellerne.
Koden som formaterer en del af forespørgselsstrengen:
FilterTekst = FilterTekst & "([" & kontrol(ControlNumber).ControlSource & "] LIKE '" & frm.Controls(kontrol(ControlNumber).name_2).Column(0, i) & "')"
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 '
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.... :()
Prøv at bruge "A" & "," & "B" for at få "A,B".
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)
Det var vist mig, der ikke helt forstod hvad du mente...
Problemet løst ved at gennemløbe variablen og udskifte ' med ''
Replace(rst2("minVar"), "'", "''")
Lukker spørgsmålet igen...