knop criteria in query

Status
Niet open voor verdere reacties.

allard1977

Gebruiker
Lid geworden
7 feb 2011
Berichten
215
hallo allemaal

Ik heb een formulier met 6 knoppen. met iedere knop wil ik op de zelfde qeury 6 verschillende criteria kunnen activeren (allemaal om de individueel). zo als ik knop 1 indruk dat ik criteria 1 activeer en dat het formulier wat gebaseerd is op de qeury alleen cretiria 1 weer geeft.
er zijn geen tekst of combo boxen op het formulier met de knoppen.

is dit mogelijk.

groet Allard
 
Waarom met knoppen? Het is een stuk makkelijker als je de criteriavelden op je formulier zet (tekstvakken, keuzelijsten, etc) en met één knop het filter samenstelt. Het is namelijk bijna niet te doen om een filter te maken op basis van het indrukken van een specifieke knop (dat is overigens wel mogelijk) en dan de eerder ingedrukte knoppen ook nog meenemen. De meest logische werkwijze daarvoor zou zijn om de criteriums van de verschillende knoppen uit te lezen, bijvoorbeeld uit de Tag van de knop, maar hoe moet je weten op welke knoppen er eerder is geklikt? Terwijl het heel simpel is om verschillende ingestelde filteringen te verzamelen, en daar één criterrium van te maken.
 
Beste Octafish,

Het is erg moeilijk om uit te leggen wat ik bedoel. ik heb 6 knoppen zeg maar 1 t/m 6. nu wil ik graag op knop 1 drukken, wat inhoud dat er in de query in het eerste veld criteria 1 als filter word in gestel voor het formulier. het formulier is een zoek formulier, als je klaar bent met het zoeken in 1 dan heb ik een knop formulier sluiten en terug gaan naar het form met de 6 knoppen. als je nu naar een ander nummer wilt kijken moet je op het des betrefende knop duwen.
dus het is niet de bedoeling om meerder criterias intevullen in een query met de 6 knopen.
hoop dat het nu wat beter te begrijpen is. ander moet ik maar een test database maken, want die van mij is zeer groot en complex om het makkelijk uit te leggen.

bijvoorbaat dank allard
 
Dan lijkt het mij toch vrij simpel; 6 knoppen maken die de query openen met het juiste criterium. Het enige probleem is dan dat je het criterium op die query moet zien te krijgen. En dat is goed te doen als je gebruik maakt van de QueryDefs collectie. Een simpel voorbeeldje:
Code:
Private Sub Knop67_Click()
Dim tmp As QueryDef
Dim strSQL As String
    strSQL = "SELECT Sum(BEDRAG_a) AS Bedrag FROM Betalingen " _
        & "WHERE kode = '" & Me.lstClient & "' AND betaald = False"
    Set tmp = CurrentDb.QueryDefs("Query5")
    tmp.SQL = strSQL
End Sub
Hier wordt via een keuzelijst een klant gekozen en Query5 wordt middels de WHERE aangepast.
 
Beste Octafish.

Dit gaat mijn pet te boven. ik snap niks van querydefs. Ik ga me zoek opdrachten iets anders inrichten zodat het toch voor mij een stuk makkelijker gaat.
Nu had ik nog wel een ander vraagje aan u. aangzien dat erg veel access gebruik zou ik toch wel een curssus willen gaan doen welke kan u aanbevelen in de omgeving van maastricht.

groet allard
 
Ik weet een hoop (dat denk ik althans zelf ;) ) maar over het cursusaanbod in Maastricht kan ik toch niet zo heel veel zeggen. Querydefs komen in de cursus die ik in Helpmij schrijf overigens ook aan bod, dus wellicht dat je daar nog wat aan hebt. Als je een voorbeeldje kan posten, dan wil ik er wel een paar inzetten, want veel meer dan bovenstaande code is het eigenlijk niet. Om er twee knoppen van te maken, ziet het er bijvoorbeeld zo uit:

Code:
Private Sub Knop67_Click()
Dim tmp As QueryDef
Dim strSQL As String
    strSQL = "SELECT Sum(BEDRAG_a) AS Bedrag FROM Betalingen " _
        & "WHERE kode = '" & Me.lstClient & "' AND betaald = False"
    Set tmp = CurrentDb.QueryDefs("Query5")
    tmp.SQL = strSQL
End Sub

Code:
Private Sub Knop68_Click()
Dim tmp As QueryDef
Dim strSQL As String
    strSQL = "SELECT Sum(BEDRAG_a) AS Bedrag FROM Betalingen " _
        & "WHERE Month([Betaaldatum]) = '" & Me.cboMaand & "' AND betaald = True"
    Set tmp = CurrentDb.QueryDefs("Query5")
    tmp.SQL = strSQL
End Sub
In beide gevallen draait de query op de tabel [Betalingen], maar elke knop gebruikt een andere filtering. En die querydefinitie bepaal je dus met een QueryDefs. Het is alsof je in het query ontwerpscherm een ander criterium op de tabel zet, en hem opslaat onder dezelfde naam. In het eerste voorbeeld een filtering op Client Code, in het tweede op maand.
 
bestandje als voorbeeld.

Beste Octafish,

Alvast heel erg bedankt voor uw moeite.
Het bestandje wat ik heb toegevoegd is access 2010,
je begint in frmsearchprotocol, daar zie je zes knoppen, vb. knop 2011-022: wat ik graag zou willen is dat als ik op de knop druk het protocol nummer (gelijk aan de naam van de knop) als criteria (2011-022) ingesteld wordt in de query QalgInfo en dat het formulier opent searchok, met als filter(2011-022) de criteria die ik met de knop heb ingesteld.


http://www.mijnbestand.nl/Bestand-8XBB6VGJONBC.accdb

bijvoorbaat heel erg bedankt.
Met vriendelijke groet allard.
p.s. ik heb uw code geprobeerd te gebruiken in het oorspronkelijke database, in deze database zit die dus niet meer.
 
Zal er vanavond naar kijken.
 
Het kan allemaal wat simpeler, als je het tweede formulier althans een klein beetje aanpast. Daar zit nu nog een filtering op bij het openen. Als je die weghaalt, kun je het formulier openen met het filter van de knop, en hoef je helemaal niks te doen met Querydefs.
 

Bijlagen

Laatst bewerkt:
Einddoel is bereikt.

Beste Octafish,

Het einddoel van mijn vraag is bereikt. Je kan je inderdaad blindstaren opiets wat dus makkelijker kan. Heel erg bedankt voor de moeite die u hier in hebt gestoken.

met vriendelijke groet allard
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan