Avatar billede amiedk Nybegynder
27. november 2003 - 10:42 Der er 29 kommentarer og
1 løsning

søgefunktion i access

Hejsa

Jeg har lige 2 sidste spørgmsål til min ene base, før jeg stopper i morgen.

Jeg skal lave en søgeform, hvor man kan indtaste forskellige søgemuligheder og den viser så en boks med alle de kunder hvor alle kriterierne er opfyldt. Jeg har lavet en forspørgelse, med dette kriterie for det ene søgefeldt:

Like [Forms]![Find Kunde Indtastning]![Batch]+'*'

Virker også fint. Det virker også når jeg sætter det ind i kriteriet for de andre felter. Problemet er at den tager hver kriterie for sig selv og sætter dem ikke sammen. Hvis man har to kriterier på nu, så viser den alle de kunder som opfylder hvert enkelte uafhængigt af hinanden. Det skal den jo ikke. Det skal være sådan at man kan indtaste forskellige søgeting og den skal kun vise de kunder hvor alle kriterierne er opfyldt.

Jeg har lavet det sådan at den åbner en ny form med et Underordnet objekt i, som ref. til den forspørgelse hvor resultatet er i. Virker også helt fint, men man kan ikke ændre i kundeoplysningerne. Er det fordi det er taget fra en forspørgelse ?? Hvis ja.. hvordan kan man ellers lave det ?

Ved godt der er 2 spørgsmål i det her, men de hænger sammen.

Håber inderligt at der er en der kan hjælpe mig, da jeg har sidste arbejdsdag i morgen og det skal være færdigt inden :) .. puha nogen der sagde stress ? :)

venlig hilsen
malene
27. november 2003 - 10:51 #1
Mht dine kriterier; Alle dine kriterier skal stå på samme linie i forespørgslen.
Dernæst tror jeg også at det vil ændre noget, at du bruger &-tegn i stedet for +-tegn. Således:
Like [Forms]![Find Kunde Indtastning]![Batch] & '*'
Avatar billede amiedk Nybegynder
27. november 2003 - 10:57 #2
når jeg skriver dem alle på en linie i forspørgelsen, så viser den slet ingen resultater. Jeg prøver lige med & og ser om det ændre noget
Avatar billede amiedk Nybegynder
27. november 2003 - 10:59 #3
Nope.. hvis de står på samme linie, så viser den slet ingen resultater overhoved.
Avatar billede amiedk Nybegynder
27. november 2003 - 11:06 #4
jeg tror man skal lave en if sætning i SQL'en, men jeg er bare ikke haj til hvordan man gør det.

Tesen er dog den at der er ingen grund til at kæmpe med forspørgelsen HVIS det er grunden til at man ikke kan ændre ændre data'erne i underobjektet.
Avatar billede mugs Novice
27. november 2003 - 11:17 #5
Dette kriterie:

Like [Forms]![Find Kunde Indtastning]![Batch] & '*'

returnerer alle de poster hvor der i feltet [Batch] i formularen [Find Kunde Indtastning]er en matchende tekststreng. Hvis der i Batch står "Jensen" returneres f.eks "Jens", "Jensen", "Jensenius" o.s.v. fordi du bruger '*' til højre for kriteriet.

Det samme hvis du indsætter kriteriet i et andet felt f.eks feltet [By]. Så vil dit kriterie se således ud:

Like [Forms]![Find Kunde Indtastning]![By] & '*'

Hvis der så i formularen indtastes ordet "Svendborg", vil du kun få de poster fra Svendborg hvor kunden hedder "Jens", "Jensen" eller "Jensenius".

Har du i det hele taget nogle poster der opfylder kriterierne. Prøv at åbne forespørgslen og når du promptes for indtastning, indtaster du kriterier, som du er sikker på opfylder en kundes data. Prøv i første omgang at holde formularen udenfor.
Avatar billede amiedk Nybegynder
27. november 2003 - 11:29 #6
yeps det er det jeg gør.. og den virker fint, men den tager de to kriterier uafhængigt af hinanden. Det er det den ikke skal. Hvis vi tager udgangspunkt i de to du har skrevet så skal den vise alle de kunder der har jensen* i efternavn og samtidig bor i svenborg*.

På nuværende tidspunkt tager den alle Jensen* og alle Svenborg* så fx Sørensen fra Svenborg kommer med og Jensen fra København kommer også med. Det er det den ikke må.
Avatar billede amiedk Nybegynder
27. november 2003 - 11:29 #7
og ja.. jeg har tjekket med tabellen at der er kunder der opfylder kriterierne
Avatar billede amiedk Nybegynder
27. november 2003 - 11:35 #8
ok stop .. efter jeg puttede & ind og sætter det på samme linie så virker det. Hvorfor ved jeg ikke. Jeg har gjort det flere gange før med + istedet for &, men der må være noget der går galt der. Så den del virker nu. Den finder de rigtige ud fra flere kriterier.

Men problemet er at man ikke kan ændre i dem. det skal være muligt at ændre hvis man fx finder en stavefejl eller hvis man skal sætte en til afvist ( et af felterne der også bliver søgt på )
Avatar billede mugs Novice
27. november 2003 - 12:51 #9
Hvis du ikke er 100% inde i underformularer, så drop dem specielt, når du er i tidnød. Prøv at lave en autoformular fra din søgeforespørgsel, og se om du ikke kan rette i den. Åbn den fra den formular hvori du indtaster dine Kriterier.
Avatar billede amiedk Nybegynder
27. november 2003 - 13:27 #10
jamen når jeg ikke engang kan ændre i den tekst der er i forspørgelsen, så kan man da heller ikke når man gør det i en formular vel ??
Avatar billede mugs Novice
27. november 2003 - 14:13 #11
Nej.
Lav en formular, som du kan rette indeholdende en primær nøgle. I den formular der modtager resultaterne af din søgning laver du en kommandoknap og sætter dette ind i VedKlik:

DoCmd.OpenForm "Form2" ' Din nye formular som du kan rette i
Forms!Form2!id.SetFocus ' id er navnet på den primære nøgle
DoCmd.FindRecord Me!id ' 'søgeformular skal også indeholde den primære nøgle
Avatar billede amiedk Nybegynder
27. november 2003 - 14:28 #12
ok.. der tabte du mig *plask*
Avatar billede amiedk Nybegynder
27. november 2003 - 14:57 #13
ok.. jeg er med på at jeg skal lave en ny form, som viser resultatet af søgningen. Dat har jeg også i forvejen. Har også den knap som åbner formen fra søgningen. Der jeg er lost er når du skriver at formen skal indeholde en primær nøgle ?? Kræver det ikke at man har en tabel ??

Hvis jeg forstår det her rigtigt, så vil du have at jeg laver en tabel hvor resultatet fra forespørgelsen bliver lagt over i, så man kan ændre det i den form ?? Jeg er helt rundt på gulvet nu for hvis det er sådan så ændre man jo i en temp tabel og ikke i den rigtige kundetabel. Har jeg helt misforstået det her ???
Avatar billede mugs Novice
27. november 2003 - 15:09 #14
Du MÅ da have en tabel!
Avatar billede amiedk Nybegynder
27. november 2003 - 15:20 #15
ja ja har da masser, men som jeg forstår det vil du have mig til at lave en ny ?? jeg fatter altså ikke lige det der med primær key på en form
Avatar billede mugs Novice
27. november 2003 - 15:24 #16
Der skal ikke være en ny tabel. Du må have en primær nøgle i den tabel hvori du definerer kunden. Træk denne primære nøgle ind i forespørgslerne samt i formularerne.

nåd u bruger koden

DoCmd.OpenForm "Form2"
Forms!Form2!id.SetFocus
DoCmd.FindRecord Me!id

Ska Access have en unik værdi at søge efter. Det nytter jo ikke, at der returneres 3 x "Jens" i din søgning, så dukke ved hvilken "Jens" der skal rettes. Ved at bruge den primære nøgle, kan du indsætte koden i nøgle-feltets VedIndgang. Så vil Access finde den rigtige post i Form2, når markøren går til feltet id.
Avatar billede mugs Novice
27. november 2003 - 15:31 #17
Hvis du lægger din e-mail, kan jeg sende dig et eksempel.
Avatar billede amiedk Nybegynder
27. november 2003 - 15:37 #18
amie@tiscali.dk

jeg tror jeg har set lyset lige nu.. eller i det mindste forstået hvor du vil have mig hen. Når jeg skriver din kode i min knapting så siger den "Microsoft Access kan ikke finde feltet "KundeID", der refereres til i udtrykket"

Jeg har KundeID som primær nøgle i min kundetabel. I min forspørgelse har jeg også den nøgle og i min form Formular1 er den også.

Er jeg på rigtig vej ?
Avatar billede mugs Novice
27. november 2003 - 15:39 #19
YES - Rette vej.
Men når du får den fejl, mangler du feltet "KundeID" et sted. Du skal have den i din tabel, forespørgsel og BEGGE formularer.
Zipper og sender.
Avatar billede amiedk Nybegynder
27. november 2003 - 15:43 #20
øhh ok.. det fatter jeg lige bjælle af.. kan jeg sende min base til dig ( har fjernet alle de unødvendige ting ) så du kan se hvad jeg laver ??
Avatar billede mugs Novice
27. november 2003 - 15:46 #21
OK - Men forklar lige nøjagtig hvad din søgeformular hedder og hvilke forespørgsel du bruger og zip venligst.
Avatar billede mugs Novice
27. november 2003 - 15:46 #22
mugs@mail.dk
Avatar billede amiedk Nybegynder
27. november 2003 - 15:47 #23
yeps jeg har fjernet alt andet så det kun er tabellen, forspørgelsen og 3 forms.. Du får den lige fra min arbejdsmail :)
Avatar billede amiedk Nybegynder
27. november 2003 - 15:50 #24
er sendt
Avatar billede amiedk Nybegynder
27. november 2003 - 16:51 #25
jeg bliver nød til at smutte hjem nu.. jeg er online igen om et par timer.
Avatar billede amiedk Nybegynder
27. november 2003 - 19:42 #26
så er jeg online igen..
Avatar billede mugs Novice
27. november 2003 - 20:30 #27
Og hvad siger du så til det tilsendte forslag+
Avatar billede amiedk Nybegynder
27. november 2003 - 21:37 #28
Yeps.. det er godt nok ikke sådan jeg havde tænkt mig, men igen hvis ikke det kan lade sig gøre så er det jo også fint nok. Grunden til at jeg har lavet ubundne felter i min søgeside er fordi det er sådan jeg fik at vide jeg skulle lave det .. mener faktisk det var herinde.. nå-men det er jo ligemeget nu.. bare det virker. Og som du skriver i mailen, så er det lidt besværligt, men så snart man har gjort det en enkelt gang så er det nemt og overskueligt nok.

Kæmpe tak for hjælpen.. og sluk så din computer.. du har gæster :)

Malene
Avatar billede mugs Novice
27. november 2003 - 21:50 #29
Tak for point. Husk at det ikke er nødvendigt at lukke søgevinduet mellem hver filtrering.
Avatar billede amiedk Nybegynder
27. november 2003 - 21:52 #30
nej det har jeg opdaget :)
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