Avatar billede scifo Nybegynder
02. marts 2011 - 13:08 Der er 14 kommentarer og
1 løsning

Form filter som ikke er case sensitive

Hej Eksperter.

Jeg arbejder på en form, hvor jeg skal kunne sortere / sætte filtre på en liste over kunder.

Jeg har lagt følgende kode ind på OnKeyUp:
<CODE>
If Me.Kombinationsboks4.ListIndex = -1 Then Exit Sub

Dim sTekst, sFelt As String

sTekst = Me.Soegetekst.Text
sFelt = Me.Kombinationsboks4.Value

[Forms]![Søg kunde]![Søg kunde - liste].Form.Filter = sFelt & " like '" & "%" & sTekst & "%" & "'"
[Forms]![Søg kunde]![Søg kunde - liste].Form.FilterOn = True

sTekst = ""
sFelt = ""
</CODE>

Ovenstående er kun test, så tag jer ikke af konventionerne.

Koden virker efter hensigten, men Form.Filter er case-sensitive, og det giver nogle problemer.

Er der en anden måde at gøre det på? Eller kan man ændre det så den ikke er case-sensitive?

Tak for hjælpen

//Scifo
Avatar billede terry Ekspert
02. marts 2011 - 13:33 #1
The filter shouldnt be case sensitive by default.
Avatar billede scifo Nybegynder
02. marts 2011 - 13:43 #2
Well, when trying the above-mentioned code, I get results typing "Bir" but not when typing "bir" (For the name Birgit). So for some reason, it's case sensitive here.
I use the 2007 version, is there a difference from the previous versions?
Avatar billede terry Ekspert
02. marts 2011 - 13:44 #3
I'm using 2010
Avatar billede neoman Novice
02. marts 2011 - 13:47 #4
Hvilken Option er der øverst i dit kodemodul for fomularen: Option Compare <hvad>?

Og du kører mod en Access-backend?
Avatar billede scifo Nybegynder
02. marts 2011 - 15:29 #5
neoman->
Der står: Option Compare Database

Nej, data der søges i, er en kæde til en oracle DB (read-only).
Avatar billede neoman Novice
02. marts 2011 - 15:39 #6
" I always use pass-through queries and clauses like e.g.
WHERE UPPER(FieldName) LIKE '%XYZ%'  "

fra : http://bytes.com/topic/access/answers/190826-case-insensitive-filter-ms-access-front-end
Avatar billede scifo Nybegynder
02. marts 2011 - 15:48 #7
Det er jeg godt stødt på, men mit problem er, at jeg bruger "filter" muligheden.
Jeg har altså ikke mulighed for at sætte en WHERE betingelse her :/

Jeg kunne selvfølgelig lave en ny forespørgsel, men da jeg har en dropdown-boks, hvor man vælger feltet man vil søge i, kan jeg ikke sætte en WHERE betingelse et bestemt sted?
Avatar billede neoman Novice
02. marts 2011 - 15:59 #8
Why not ?

Du kan fx. danne hele SQL'en i koden, afh af dropdown boxen

Du kan fx. ændre WHERE kriteriet (i koden) for en bestående query (altså hvis den eksisterer som et gemt objekt).

http://msdn.microsoft.com/en-us/library/bb208681%28v=office.12%29.aspx
Avatar billede neoman Novice
02. marts 2011 - 16:01 #9
Jeg ville selvfølgeligt lige lege lidt med en kopi af din query i query designeren, og se om dette tiltag med UPPER har den ønskede virkning
Avatar billede terry Ekspert
02. marts 2011 - 16:10 #10
I agree with neoomann, use passthrough queries if possible it'll also help with performance.
Avatar billede terry Ekspert
02. marts 2011 - 16:16 #11
you could try

Me.Filter = "UCase(FieldName) LIKE '%" & UCase("bir") & "%'"
Avatar billede scifo Nybegynder
02. marts 2011 - 16:38 #12
Hmm... det har i nok ret i, jeg vil lige prøve det i morgen, og så vender jeg tilbage.
Avatar billede scifo Nybegynder
17. marts 2011 - 10:33 #13
Jeg beklager det sene svar, men der var ikke tid til at implementere noget af ovenstående i første omgang desværre.

Jeg vil dog i step 2 forsøge mig med passthrough queries.

Men tak for jeres hjælp, og læg et svar begge to :)
Avatar billede terry Ekspert
17. marts 2011 - 18:05 #14
svar
Avatar billede terry Ekspert
02. april 2011 - 10:29 #15
tak
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