27. november 2003 - 10:42Der 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 ? :)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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] & '*'
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.
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å.
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å )
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.
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
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 ???
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.
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.
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å.
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.
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 :)
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.