Kommandoknap der åbner en forespørgsel i en formular
Jeg er helt nybegynder i Access 2007 og kender ikke til SQL mv. og hvor dette indtastes. Jeg har en opstartsmenu med et par kommandoknapper. På denne opstartsmenu vil jeg gerne lave en kommandoknap, der åbner en forespørgsel i en bestemt form.
Formålet er at brugerne nemt kan finde netop de data som de har behov, på en brugervenlig måde ved at trykke på en knap.
Hvordan gør jeg det? Gerne uden at skulle kode i SQL m.v.
Tjah. Start med at oprette en udvælgelsesforespørgsel (Microsoft har fejlagtigt oversat den til Marker). Træk de tabeller, som du har brug for, ind i forespørgslen og forbind relevante felter ved at trække i feltnavnene. Træk så de felter, som du skal indgå i resultatet, ned i gitteret. Vælg evt. også sortering.
I formularen indsætter du en knap. Tast F4 for at få vist Egenskabsarket. På fanen Hændelser vælger du i VedKlik en Hændelsesprocedure og klikker på knappen med tre punkter. Så kommer du ind i VBA koden, hvor du skriver:
Private Sub DinKnap_Click() DoCmd.OpenQuery "DinForespørgsel" End Sub
(ret DinKnap og DinForespørgsel til dine egne værdier)
.. og hvis du vil åbne forespørgslen i en Form, opretter du bare en form, der er baseret på din forespørgsel (Egenskabsarket / Data / Postkilde), og åbner formen i stedet for: DoCmd.OpenForm "DinForm"
Ja, det er netop hvad jeg vil; altså at man trykker på en kommando-knap og så åbnes en Formular med en given forespørgsel.
Udfordringen med #2 er, som jeg ser det, så vil jeg få en lang række Formularer at skulle vedligeholde. Og det ønsker jeg ikke.
Det skal med andre ord være tale om en generisk formular, som jeg kan bruge til at åbne en række forespørgsler. F.eks. har jeg tre knapper med tre forskellige forespørgsler. Men ligegyldigt hvilken knap jeg trykker på, så er det den samme Formular jeg gør brug af.
Sådan som jeg forstår #2, så skal der oprettes en ny Formular for hver kommandoknap. Eller er det helt forkert.....
Det er ikke nødvendigt med en form pr. forespørgsel - hvis vi bare er enige om at datagrundlaget er éns for de tre knapper, altså samme felter.
Du kan i knappens OnClick/VedKlik lægge en linie, der åbner formen: DoCmd.OpenForm "DinForm", , , , , , 1 Den sidste parameter er OpenArgs, et argument, ,som man kan sende med igennem til formen.
Når formen åbner, kan man aflæse OpenArgs. Det kan du bruge til at styre datagrundlaget, f.eks. kan du lægge følgende i OnOpen/VedÅbning:
Select Case OpenArgs Case 1 Me.RecordSource = "SELECT Forespørgsel1.* FROM Forespørgsel1 ORDER BY EtFelt" Case 2 Me.RecordSource = "SELECT Forespørgsel2.* FROM Forespørgsel2 ORDER BY EtFelt" Case 3 Me.RecordSource = "SELECT Forespørgsel3.* FROM Forespørgsel3 ORDER BY EtFelt" End Select
you have to accept one of the answers NOT place a new answer :o)
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.