Avatar billede martin_sj Nybegynder
16. marts 2010 - 11:02 Der er 12 kommentarer og
1 løsning

Søgning i Form

Hej Eksperter

Jeg har en form der er låst for indtasning.
Denne form har et felt [navn]
Når jeg vil søge i navn med Access Søgefunktion, så skal jeg hver gang vælge "Any part of field" også selvom jeg har fulgt denne opsætning:
Tools-options-Edit/find-Default find and... sat til general search.
eller direkte i applikationen:
Application.SetOption "Default Find/Replace Behavior",1

Hvordan kommer jeg uden om dette problem, og får den til at søge i Any part of Field som default?
Kunne man lave noget med at når man dobbelt klikker på [navn] kommer en boks op hvor man indtaster det man vil søge efter og trykker enter?
Avatar billede mugs Novice
16. marts 2010 - 12:00 #1
Dim VARa As String
VARa = InputBox(Prompt:="Indtast Navn.", Title:="Find kunde.", Default:="")
DoCmd.GoToControl "Navn"
DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True
Avatar billede martin_sj Nybegynder
16. marts 2010 - 12:38 #2
Det virker helt perfekt!
Har dog ændret AcEntire til AcAnywhere.

Takker!
Avatar billede mugs Novice
16. marts 2010 - 14:25 #3
Selv tak - Her fungerer AcEntire i Acc 2000.
Avatar billede martin_sj Nybegynder
16. marts 2010 - 14:32 #4
OK,
Mugs hvis jeg siger cancel på prompten så får jeg følgende fejl:
The FindRecord action requires a Find What argument.

Altså jeg kan ikke lukke prompt, når den forventer en Find What til FindRecord.

Har du en ide?
Avatar billede mugs Novice
16. marts 2010 - 14:47 #5
Når du afbryder funktionen får du en fejl, fodi Access jo forventer et input.

Du kan lave en errorhandler i stil med dette:

Dim VARa As String
On error goto errrorhandler
VARa = InputBox(Prompt:="Indtast Navn.", Title:="Find kunde.", Default:="")
DoCmd.GoToControl "Navn"
DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True
errorhandler:
If errnumber = og her følger fejlnummeret then
Exit sub
end if
Avatar billede martin_sj Nybegynder
16. marts 2010 - 15:01 #6
Hej Mugs

Så får jeg fejlen "Label not defined"

Private Sub KundeFornavn_DblClick(Cancel As Integer)
Dim VARa As String
On Error GoTo errrorhandler
VARa = InputBox(Prompt:="Indtast søgeord.", Title:="Find kunde.", Default:="")
DoCmd.GoToControl "KundeFornavn"
DoCmd.FindRecord VARa, acAnywhere, False, , True, acCurrent, True
errorhandler:
If Err.Number = 2142 Then
Exit Sub
End If
End Sub

Kan du se hvad der går galt?
Avatar billede martin_sj Nybegynder
16. marts 2010 - 15:03 #7
Ahhh, der var et 'r' for meget i errorhandler!!!
Det virker perfekt!
Avatar billede martin_sj Nybegynder
16. marts 2010 - 15:04 #8
Tusind tak for hjælpen!
Avatar billede mugs Novice
16. marts 2010 - 15:08 #9
Stavefejl her:

On Error GoTo errrorhandler

Samtuidig med, at du har navngivet errorhandleren således:

errorhandler

Så kan den ikke feinde errorhandler. Ret een af dem
Avatar billede mugs Novice
16. marts 2010 - 15:13 #10
Selv tak - Men fejlen var jo min!!
Avatar billede martin_sj Nybegynder
17. marts 2010 - 11:16 #11
Hej mugs

Jeg har et problem med søgningen og det er at promptvinduet forsvinder så man ikke har muligheden for at sige find næste.
Er det muligt at lave prompten som en form, som så ikke forsvinder eller andet?

Vil gerne sætte 60 point på denne også.

Mvh. Martin
Avatar billede martin_sj Nybegynder
17. marts 2010 - 11:16 #12
Jeg kunne også godt tænke mig at få den til at søge på alle felter i formen.
Avatar billede mugs Novice
17. marts 2010 - 12:59 #13
Du kan filtrere kunderne efter at have fundet navnet:


Dim VARa As String
VARa = InputBox(Prompt:="Indtast navn.", Title:="Find navn.", Default:="")
DoCmd.GoToControl "Kundefornavn"
DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True
Me.Filter = "Kundefornavn = '" & Me!Kundefornavn & "' "
Me.FilterOn = True

Hvis du vuk sæge i alle felter, vil jeg anbefale Thomas Jepsen's fremragende "Dynamiske- søge og filtrering" på hjemmesiden:

mekaiteasy.dk

Oppe til højre under downloads. Den er uforlignelig.
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