Avatar billede keldo Nybegynder
25. september 2002 - 11:11 Der er 33 kommentarer og
1 løsning

Kan jeg lave en søgefunktion i en formular??

Efter stor succes med sidste problem, vælger jeg at tage chancen og indsende et nyt spørgsmål til Eksperten. :-)

I access 2000 er en søge funktion som jo virker fint. Jeg kunne bare godt tænke mig at gøre det lidt nemmere for brugeren. Ved typiske søgninger gøres følgende: Klik på feltet der skal søges i, klik på "Søg", vælg "En del af feltet", skriv hvad du vil søge efter.

Kunne man ikke lave det på sådan en måde at VedDobbeltKlik åbner Access automatisk søgefunktionen til at søge KUN på det pågældende felt og søge med "En del af feltet"???
Avatar billede keldo Nybegynder
25. september 2002 - 11:12 #1
PS, det er naturligvis i en Formular
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:19 #2
Altså, denne kode vil åbne søgeboksen, hvis du lægger den på kontrollens veddobbeltklik hændelse, men den vil gerne søge på alt.....

DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Avatar billede keldo Nybegynder
25. september 2002 - 11:27 #3
Ja men jeg vil jo gerne have at den KUN søger i feltet. Kan man evt. bruge makroen SøgEfterPost?? kriteriet "Søg efter" skulle så bare udløse et PopUp vindue hvor man kunne indtaste det man ville søge efter??

Og PS, den kode du har skrevet, hvor skal den stå?? Når jeg ligger den på kontrollen VedDobbeltKlik, skriver Access at den ikke kan finde makroen DoCmd??
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:34 #4
Hmmm....lad os starte bagfra:
Du vælger egenskaber for formularfeltet, fanen Hændelser, feltet VedDobbeltklik. Vælg Hændelsesprocedure.
mellem "Private Sub" og "End Sub" skriver du det jeg skrev. Luk Microsoft Visual Basic vinduet og "kør" formularen. Dobbeltklik i feltet.
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:34 #5
så åbner den "Søg og erstat" dialogboksen
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:37 #6
tallet 10 fortæller Access at det skal starte acSelectRecord (som er VBA's måde at "åbne" Søg og erstat dialogboksen)
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:38 #7
Jeg kan bare ikke finde ud af om det er muligt at sætte en parameter, så den starter dialogboksen med "Søg på" = "En del af feltet"
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:39 #8
brb, kan være jeg har fundet svaret...
Avatar billede keldo Nybegynder
25. september 2002 - 11:39 #9
Puppetmaster

Ok, det virker nu, sorry jeg var vist lidt langsom. Men den siger stadig væk "hele feltet", i stedet for "en del af feltet". Kan det slet ikke løses??
Og kan jeg lave en sådan hændelsesprocedure på alle felterne eller skal jeg så i stedet lave en makro hvis jeg vil kunne lave denne "smart" søgning selvstændigt på mange felter? Ideen skulle jo være at man kunne bruge denne dobbeltklik funktion alle steder når man søger
Avatar billede keldo Nybegynder
25. september 2002 - 11:45 #10
ok, venter spændt.... :-)

I mens......hvis jeg ville lave et modul, så jeg kan bruge denne søgefunktion mange andre steder, kan jeg så gøre således:???

Private sub [feltet som jeg står i når jeg dobbeltklikker]
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
end sub
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:47 #11
ok, nu er det MEGET tæt på!
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:49 #12
Hmmm...du kan lave en funktion, som indeholder det der skal til for at åbne Søg og erstat, og så kalde den fra formularfelternes VedDobbeltklik event.....
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:57 #13
Hmm....ikke helt så let som jeg havde regnet med.....bruger du den danske version eller den engelske?

Me.Tekst1.SetFocus
SendKeys "%ø%n", False
DoCmd.RunCommand acCmdFind
Avatar billede puppetmaster Nybegynder
25. september 2002 - 11:59 #14
Prøv lige at sætte denne kode på formularfeltets VedDobbeltklik event:

SendKeys "%ø%a", False
DoCmd.RunCommand acCmdFind
Avatar billede keldo Nybegynder
25. september 2002 - 11:59 #15
Alt står på dansk
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:00 #16
Eller denne, så bliver knappen Find næste aktiv.

SendKeys "%ø%a%n", False
DoCmd.RunCommand acCmdFind
Avatar billede keldo Nybegynder
25. september 2002 - 12:02 #17
SendKeys "%ø%a", False
DoCmd.RunCommand acCmdFind

den virker fint, men stadig kun med "hele feltet"
Avatar billede keldo Nybegynder
25. september 2002 - 12:04 #18
I øvrigt bliver "næste" aktiv i det øjeblik jeg begynder at indtaste et søgekriterie........
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:04 #19
btw, glem min sidste post, den kører nemlig Søg og erstat med det sammme
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:05 #20
hvad for en version har du? DK eller US/UK?
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:05 #21
næste? næste felt på formularen?
Avatar billede keldo Nybegynder
25. september 2002 - 12:06 #22
Ja jeg bruger
SendKeys "%ø%a", False
DoCmd.RunCommand acCmdFind
men vi skal bare have den til at søge i "en del af feltet". Det er jo det der er hele fidusen..........
Avatar billede keldo Nybegynder
25. september 2002 - 12:08 #23
Jeg har DK version

Næste... mente jeg "Find næste"....med den jeg bruger nu er det nøjagtig som hvis jeg klikker på "kikkert" symbolet. Nu skal den bare bruge "En del af feltet" i stedet for "Hele feltet"
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:08 #24
Jeg bruger Access 2000 (DK) og denne kode kører fint

Me.ActiveControl.SetFocus
SendKeys "%ø%a", False
DoCmd.RunCommand acCmdFind

Der bliver dropdown menuen udfor "Søg på" sat til "En del af feltet"
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:10 #25
Har du 3 muligheder i dropdown menuen?
* En del af feltet
* Hele feltet
* Starten af feltet
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:14 #26
Hjælper det noget at ændre
SendKeys "%ø%a", False
Til
SendKeys "%ø%a", True

%ø aktiverer "Søg på" og den næste parameter (%a) aktiverer et af elementerne på listen.......prøv med andre bogstaver end %a, det kan være det er det der skal til...
Avatar billede keldo Nybegynder
25. september 2002 - 12:15 #27
Ja det har jeg. Men når jeg bruger din nye kode markerer den kun "Søg på" altså feltet bliver blåt så jeg kan bladre i den, men standarden er stadig "hele feltet"???
Kan det være noget med opsætningen i Access 2000?? Altså i Indstillinger for rediger/søg?? Der står min til "hurtig søgning"
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:17 #28
kigger lige....brb
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:17 #29
hmmm....min er også sat til "hurtig søgning"
Avatar billede puppetmaster Nybegynder
25. september 2002 - 12:18 #30
I din VBA editor, klik på "Tools", "References" og fortæl hvilke du har der er krydset af
Avatar billede keldo Nybegynder
25. september 2002 - 12:29 #31
hmm er lige væk i ca. 30 min så kigger jeg lige på det.........tak
Avatar billede keldo Nybegynder
25. september 2002 - 13:04 #32
De eneste der er krydset af er de 4 øverste:
Visual Basic for Appl.
Microsoft Access 9.0
OLE Aut.
Micorsoft ActiveX Data
Avatar billede keldo Nybegynder
25. september 2002 - 13:17 #33
Når jeg ændrer fra False til True forsvinder markeringen i "søg på"
Avatar billede keldo Nybegynder
25. september 2002 - 13:22 #34
Jeg har nu prøvet med forskellige bogstaver "%ø%a" i stedet for "a", men der var ikke nogle af dem jeg prøvede som kunne løse det
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