29. maj 2004 - 17:39Der 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??
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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
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?
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
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.
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
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.
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.
Synes godt om
Ny brugerNybegynder
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.