Den søger blandt alle ca. 6000 kunder - sorterer i alle kunder eftersom hvad man har søgt på, og peger på den kunde som matcher søgningen.
Problemet er, at hvis man søger på et kundenavn fx \'cure\', og ordet/del-ordet \'cure\' ikke findes, så sorterer den ikke efter c, men efter ingenting, for det fandt jo ingenting. Det er IKKE smart, istedet kunne det være smart, at den så fandt noget der lignede \'cure\' og fx istedet sorterede efter \'cur\', og hvis det ikke fandtes, ja så efter \'cu\'. Kan dette lade sig gøre - det er jeg jo selvfølgelig sikker på det kan!
Hi numsi! What your asking as possible, but it has to be programmed. Lets say the user enters \'cure\' and none are found. You could then remove the last character and do the search again. This could be continued until some records are found or there are no more characters in your string. Not sure how difficult it is to implement in your appplication but it can be done.
Nedenstående skulle gøre det (jeg har ikke taget hele din kode med!). Jeg har lavet det lidt om, så du definere et recordset i en variabel istedet for at referere til den RecordsetClone hver gang (det er mere optimalt). \'**** Dim rs Forms!Kunder.RecordSource = \"SELECT * FROM Final ORDER BY \" & sOrder Set rs = Forms!Kunder.RecordsetClone do rs.FindFirst sOrder & \" Like \" & sWhere if rs.nomatch then sWhere = left(sWhere, Len(sWhere)-1 loop until rs.nomatch = false Forms!Kunder.Bookmark = rs.Bookmark \'****
NB: Jeg har ikke erklæret den som et recordset, for hvis du benytter Access 2000 vil det ikke virke hvis jeg skrev Dim rs as Recordset - nærmere forklaring gives gerne...
/Thomas
PS: Ovenstående er ikke afprøvet, men det burde virke.
Nu da jeg har eksperternes opmærksomhed (terry & thomasjepsen), hvordan skal ovenstående søgning ændres, for at søgningen foregår i starten af feltet og ikke på hele feltet???
dammit, jeg fik sgu\' rodet i pointene. Nu fik du alle point thomas - du skulle kun have haft 15 for det lille. Nå, men så håber jeg du gider hjælpe mig senere, når jeg går igang med det overordnede problem.
Undskyld, Numsi! Men hvis jeg ikke skulle have dem alle, hvem skulle så??? Så vidt jeg kan se, så er jeg den eneste som har svaret (ud over terry, som blot omtaler mit løsningsforslag i løse vendinger).
...eller ville du bare give de 15 point først og derefter de resterende 50, når du havde set om det virkede?? Det sidste tror jeg ikke er muligt at gøre!
hello Jeg bruger access2000. Jeg har debugget/kompilet og fundet ud af, at den kommer med fejlen efter den har kaldt Loop og går tilbage til rs.FindFirst sOrder & \" Like \" & sWhere - herefter går den ned i fejlmeddelelsen
Nu virker det perfekt, bortset fra lige fra søgning på datofelter......Hvordan konverterer jeg datofelterne til tekstfelter inden søgningen?? he he, jeg er ikke lige sådan til at slippe af med
Forresten, så er sWhere jo sat til String-værdi fra starten af. Så dato er allerede en string i søgningen. Problemet kommer istedet når man søger på starten af feltet i en datosøgning, for søger man på 01-03-97 og sådan en ikke findes, så finder den istedet fx 01-03-92, fordi den stadig søger på starten af feltet. Men hvad nu, hvis man hellere ville have at den søgte på hele feltet i forbindelse med datosøgning, for på den måde ville den finde det nærmeste årstal, istedet for den nærmeste måned, hvilket er mere hensigtsmæssigt. Det kræver vel, at man ændrer koden, således at den søger på starten af feltet som \'default\', men hvis kunden har indtastet i en af datofelterne eg. søgefelt 5 el. 6, så skal den søge på hele feltet.....Er det noget lort at kode??
Kunne man så ikke opdele søgningen i 2 dele - 1. del til alm. søgning på starten af feltet og 2. del specielt egnet til datofelter, hvor den skal søge på hele feltet?
Synes godt om
Ny brugerNybegynder
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.