Avatar billede nca Juniormester
29. maj 2004 - 17:39 Der er 9 kommentarer og
1 løsning

Tryk på en knap, når formen åbnes.

Jeg har med stor hjælp fra thomasjepsen fået lavet min egen søgeformular.
Mit problem er nu, at hvis jeg skal søge i en anden del af databasen, end den jeg har åbnet, skal jeg først åbne en form med den den af databasen, der skal søges i. Dette sker når brugeren klikker på "Søg i hele basen". Dernæst skal brugeren klikke på søgeknappen i den nye form, for at komme til den endelige søgeboks. Det er lidt for besværligt.
Jeg vil gerne ha' at formen, når den bliver åbnet, sætter fokus på søgefeltet og derefter foretager en åbning af søgeformen.
Hvordan gøres det??
Avatar billede hekla Nybegynder
29. maj 2004 - 17:53 #1
Du kan sætte fokus på dit søgefelt og åben søgeformularen med følgende kode på formularens VedÅbning hændelse
Docmd.gotocontrol "Mitsøgefelt"
DoCmd.RunCommand acCmdFind
Avatar billede nca Juniormester
29. maj 2004 - 18:05 #2
Det virker desværre ikke.
Problemet er at søgeformen bruger:
Screen.ActiveControl
og formen når ikke at blive aktiv, før den kalder søgeformen, som derfor fejler.
Kan der ikke indsættes en forsinkelse efter formens åbning, før man fyrer kommandoen af?
Avatar billede hekla Nybegynder
29. maj 2004 - 18:17 #3
Så prøv at sætte koden ind ved en af de andre åbningshændelser. Jeg tror at det skal være VedAktuel, men jeg er ikke sikker.
Avatar billede hekla Nybegynder
29. maj 2004 - 18:19 #4
Ellers kan du prøve at sætte Docmd.gotocontrol "Mitsøgefelt" ind i formularens VedAktuel hændelse og DoCmd.RunCommand acCmdFind ved søgefeltets VedFokus hændelse
Avatar billede nca Juniormester
29. maj 2004 - 18:30 #5
Jeg har prøvet at sætte koden ind ved de forskellige hændelser. Stadig den samme fejl.
Jeg har sat en messagebox ind i VedFocus. Det ser ud som om denne event ikke bliver udløst.
Avatar billede hekla Nybegynder
29. maj 2004 - 18:36 #6
Er det et tekstfelt eller en knap, du sætter fokus på? og hvilken fejlmeddelelse får du?
Avatar billede nca Juniormester
29. maj 2004 - 18:46 #7
Det er et tekstfelt

Noget af koden til søgeboksen:

Private Sub Form_Load()
    On Error Resume Next
    Me!Overskrift = "Søg på feltet: " & SøgeControlfelt.Name
    Me!lblAktuelt.Caption = SøgeControlfelt.Name
    Me!Kriterie = Søgkriterie
End Sub

Private Sub Form_Open(Cancel As Integer)
    On Error GoTo Err_Søg_Open
    Set Søgeform = Screen.ActiveForm
    Set SøgeControlfelt = Screen.ActiveControl
    If SøgeControlfelt.ControlSource = "" Then
        MsgBox "Kan ikke søge på dette felt", vbCritical, "Kan ikke søge!"
        DoCmd.CancelEvent
        Exit Sub
    End If
    Exit Sub
Err_Søg_Open:
    MsgBox "Der er intet at søge på!", vbExclamation, "Kan ikke søge!"
    DoCmd.CancelEvent
    Exit Sub
End Sub

Fejlen er stammer fra Form_Open (se herover)
Avatar billede hekla Nybegynder
29. maj 2004 - 22:09 #8
Jeg er ikke helt sikker på, at jeg kan gennemskue, hvad det er, du gør.
Så vidt jeg forstår det, har du to formularer:
1. En ny formular, hvor du har de data, som du ønsker at søge i.
2. En søgeformular (=søgeboks)
Jeg går ud fra at den kode, du har lagt ud, stammer fra søgeboksen.
Den kode jeg skriver om, skal sættes ind i den nye formulars VedÅbning eller VedAktivering hændelse - ikke i søgeboksens.
Avatar billede hekla Nybegynder
29. maj 2004 - 22:13 #9
Og så skal koden hedde:
Docmd.gotocontrol "Mitsøgefelt"
DoCmd.OpenForm "MinSøgeboks"

hvis søgeboksen er en formular, du selv har lavet.
Avatar billede nca Juniormester
30. maj 2004 - 09:42 #10
Jeg beundrer din ihærdighed :-)
Det er rigtigt, at jeg har lavet en hjemmelavet søgeboks, som kaldes alle de steder, hvor jeg har brug for en søgning. De fleste steder vises et udsnit af databasen enten på listform eller i formular form. Ved klik på søgeknappen åbnes min søgeboks. Alt er fint.
Problemet opstod, når jeg skulle søge i en datamængde, der ikke blev vist. Fx. kunne jeg stå i Kunde-databasen og herfra ønske at foretage en søgning i hele databasen. Så skulle jeg først vise hele databasen i et nyt vindue og brugeren skulle så i dette nye vindue trykke på en søgeknap. Lidt indviklet, men jeg har fundet løsningen.
Jeg har i formen, der viser hele databasen, sat timerinterval på 300 (0,3 sek.) og i hændelsen VedTimerudløb har jeg lagt kaldet til søgeformen. For at søgeformen kun skal komme op automatisk én gang, sætter jeg timerinterval til 0, efter kaldet af søgeboksen.
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