Avatar billede dla Praktikant
15. juni 2004 - 12:04 Der er 18 kommentarer og
1 løsning

Thomas Jepsens dynamiske filter igen

Jeg har brugt Thomas’ dynamiske søgefunktion (www.makeiteasy.dk) i flere databaser, og folk er meget begejstret for den, men jo mere avanceret databasen bliver, jo mere krævende bliver folk. Nu vil de gerne have at man kan søge på postnumre der ligger mellem to numre de skal taste ind. Kan du klare den, Thomas?
Avatar billede terry Ekspert
15. juni 2004 - 12:26 #1
isnt it just a case of entering a new field on the form and name it

søgPostnumre
Avatar billede terry Ekspert
15. juni 2004 - 12:28 #2
and Postnumre must be the same name as the field in your database table.

You also need to set the fields TAG prperty to one of the following

Tekst
Fritekst
Tal
Dato

depending on the field type
Avatar billede dla Praktikant
15. juni 2004 - 12:45 #3
Jo, jeg er med på at der skal være et felt mere, men vi skal jo have "between det ene og det andet postnummerfelt" med i sql-strengen, og det kan jeg ikke se hvordan skal gøres.
Avatar billede proaccess Nybegynder
15. juni 2004 - 12:47 #4
Du er SÅ tæt på...

SELECT xxx FROM xxx WHERE [Postnr] BETWEEN a AND b;
Avatar billede dla Praktikant
15. juni 2004 - 12:50 #5
Ja, men hvordan får jeg det implementeret i den eksisterende sql-streng der bliver genereret af Thomas' case-sætning???
Avatar billede terry Ekspert
15. juni 2004 - 13:03 #6
well thats where THomas's dynamic search routine has a flaw I think!
Avatar billede terry Ekspert
15. juni 2004 - 13:05 #7
it doenst support >= or <= or Between!
Avatar billede dla Praktikant
15. juni 2004 - 13:08 #8
Maybe you're right, Terry, but let's wait and see if Thomas has anything to add.
Avatar billede terry Ekspert
15. juni 2004 - 13:11 #9
add these lines to the GetFilter function

Case "DatoG"
    If Ctrl <> "" Or Not IsNull(Ctrl) Then
      SQLStr = SQLStr & "[" & Mid(Ctrl.Name, 4) & "] >= #" & Format(Ctrl, "yyyy-mm-dd") & "# And "
    End If
Case "DatoL"
    If Ctrl <> "" Or Not IsNull(Ctrl) Then
      SQLStr = SQLStr & "[" & Mid(Ctrl.Name, 4) & "] =< #" & Format(Ctrl, "yyyy-mm-dd") & "# And "
    End If


Then you need to use

DatoG for the field where the date has to be >=
and
DatoL for the field where the date has to be <=

(in the Tag property)

NOTE: NOT TESTED :o)
Avatar billede terry Ekspert
15. juni 2004 - 13:13 #10
If you use BETWEEN then BOTH date fields need to be enetered. Using >= and <= allows you to only enter one of the date fields.
Avatar billede terry Ekspert
15. juni 2004 - 13:16 #11
What am I on about, its a postal code interval your are interested in :o)

Is the postal code numeric or text?
Avatar billede dla Praktikant
15. juni 2004 - 13:21 #12
Postnummerfeltet er faktisk text, fordi jeg også har udenlandske postnumre med mellemrum og bogstaver, kan det så lade sig gøre? Ellers ser din løsning fin ud!
Avatar billede terry Ekspert
15. juni 2004 - 13:51 #13
Case "TekstG"
    If Ctrl <> "" Or Not IsNull(Ctrl) Then
      SQLStr = SQLStr & "[" & Mid(Ctrl.Name, 4) & "] >= '" & Ctrl & "' And "    End If
Case "TekstL"
    If Ctrl <> "" Or Not IsNull(Ctrl) Then
      SQLStr = SQLStr & "[" & Mid(Ctrl.Name, 4) & "] <= '" & Ctrl & "' And "
    End If

and the same applies to the tag propery

AGAIN not tested
Avatar billede dla Praktikant
15. juni 2004 - 14:00 #14
Hej Terry, det virker, bortset fra at jeg ikke kan have to felter med samme navn, så jeg har bare skrevet
"[Postnummer] >=

i stedet for
"[" & Mid(Ctrl.Name, 4) & "]>=

Tak for hjælpen!
Avatar billede terry Ekspert
15. juni 2004 - 14:10 #15
Ah! didnt think of that :o)
two fields with these names
søgGPostnummer
søgLPostnummer

Then code

Case "TekstG"
    If Ctrl <> "" Or Not IsNull(Ctrl) Then
      SQLStr = SQLStr & "[" & Mid(Ctrl.Name, 5) & "] >= '" & Ctrl & "' And "    End If
Case "TekstL"
    If Ctrl <> "" Or Not IsNull(Ctrl) Then
      SQLStr = SQLStr & "[" & Mid(Ctrl.Name, 5) & "] <= '" & Ctrl & "' And "
    End If


og selv tak
Avatar billede terry Ekspert
15. juni 2004 - 14:11 #16
just to keep it dynamic :o)
Avatar billede dla Praktikant
15. juni 2004 - 14:13 #17
ja, du har ret, tak:-}
15. juni 2004 - 19:50 #18
Terry, har du overvejet at blive supporter i www.makeiteasy.dk?
Det klarer du jo helt flot :o))
Avatar billede terry Ekspert
15. juni 2004 - 20:00 #19
thanks Thomas. We cant keep the customer waiting because you are so busy can we? :o)
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