met een butten filteren op periode

Status
Niet open voor verdere reacties.

dinoshop

Terugkerende gebruiker
Lid geworden
8 sep 2000
Berichten
1.100
heb een formulier en wil daarop kunnen filteren
nu heb ik een cboboc met daar in 1 tot 13 wij werken met 13 periodes .
zat in eerste instantie te denken om te werken met if case 1 then enz
maar kom er niet uit .
wie o wie weet er een betere oplossing ?
ps graag script

voor beeld hoe ik il zoeken zit er bij let op de datums
periode.jpg
 
Wat je laat zien is een tabel, geen formulier. De makkelijkste manier is dan om het formulier te filteren met de gekozen waarde. Dus bij de gebeurtenis <Bij klikken> zet je dan een code als:
Code:
me.Filter = "[Periode] = " & Me.cboPeriode
Me.filterOn = True
En meer is het niet.
 
Laatst bewerkt:
klopt maar hierop moet de zoek filter dus werken
dus in formulier cboPriode 1 tot 14 en dan moet die gaan filteren in de tbl............. die als bijlage in de formulier zit
dus formulier bestaat uit twee delen

hoop dat je het begrijpt wat ik bedoel
programma sturen kan niet is te groot en staan teveel prive dingen in kan wel opzetje maken, maar hoop zo optelossen
 
Helaas, ik snap je niet. In je keuzelijst heb je 13 (nu al weer 14?) periodes die je wilt kunnen selecteren. En die keuze bepaalt dan het filter voor je formulier. Een tabel filteren vanuit een formulier moet je niet eens willen... Bovendien: wat doet die gebruiker in de tabel? Die hoort op een formulier te werken!
 
Dus als ik het goed begrijp, wil je de records in het subformulier filteren op de waarden in de keuzelijst? Moet je in ieder geval de datums die in de keuzelijst de periodes bepalen toevoegen aan die keuzelijst, anders kun je ze niet gebruiken. En waarom überhaupt een subformulier? Vind je de opdracht te makkelijk als je er (wat ik zou doen) gewoon één formulier voor maakt?
 
Laatst bewerkt:
ik snap wat jij bedoeld, zou ik ook wel willen maar boven in de balk komen nog meer opdrachten te staan .
die betrekking hebben op sub form .
ik had zelf iets bedacht om te doen met functie case if case is 1 than between date and date .
maar dit werkt niet echt .
en dat dit mogelijk is via formulier in sub formulier weet ik, alleen de script nog .
maar al avst dank dat je er na kijkt
 
Dus als ik het goed begrijp, wil je de records in het subformulier filteren op de waarden in de keuzelijst? Moet je in ieder geval de datums die in de keuzelijst de periodes bepalen toevoegen aan die keuzelijst, anders kun je ze niet gebruiken. En waarom überhaupt een subformulier? Vind je de opdracht te makkelijk als je er (wat ik zou doen) gewoon één formulier voor maakt?
Option Compare Database
Option Explicit


Private Sub cmdStartSelectie_Click()


Me.RecordSource = "select * from TBLPeriode where PerID between #" _
& CDate(Format(begindatum - 1, "mm/dd/yy")) & "# AND #" & CDate(Format(einddatum + 1, "mm/dd/yy")) & "#"


End Sub


ik gebruik nu deze code, werkt goed .
maar wil dus via combox 1-13 gebruiken en dat hij dan in de filter zelf de datums vind en uitvoert .
helaas werkt dit met twee invulvakken en een uitvoer button en dat wil ik nu zo hebben met 1 combo boks

snappy
 
Laatst bewerkt:
Lijkt mij hoogst onwaarschijnlijk dat jouw code werkt; niet alleen filter je niet op je subformulier, je filtert ook nog eens op de data van de keuzelijst, en niet de data van het formulier! Bovendien gebruik je een Format code die helemaal niks doet, omdat Access nu eenmaal naar de waarde van een veld kijkt, niet naar de opmaak ervan. Dit werkt (op basis van je voorbeeldje) dus wel:
Code:
Private Sub Keuzelijst0_Click()
Dim sFilter As String

    sFilter = "[Veld1] Between #" & Me.Keuzelijst0.Column(1) & "# AND #" & Me.Keuzelijst0.Column(2) & "#"
    With Me!Subformulier_Tabel1.Form
        .Filter = sFilter
        .FilterOn = True
    End With

End Sub

Of, om het foolproof te maken, je converteert de datums naar een getal en gebruikt die om te filteren.
Code:
Private Sub Keuzelijst0_Click()
Dim sFilter As String
Dim iDatum1 As Double, iDatum2 As Double

    iDatum1 = CDbl(CDate(Me.Keuzelijst0.Column(1)))
    iDatum2 = CDbl(CDate(Me.Keuzelijst0.Column(2)))
    sFilter = "Cdbl([Veld1]) Between " & iDatum1 & " AND " & iDatum2
    With Me!Subformulier_Tabel1.Form
        .Filter = sFilter
        .FilterOn = True
    End With

End Sub
 
bij mij werkt het niet
zou je deze die je getest hebt in stukje prog wat ik stuurde kunnen geven in dit progje zodat ik ook kan zien wat ik verkeerd doe
bij foolproof geeft die meteen vba i datum1 = cdb1 enz in geel aan
 
Ik heb, zoals ik je eerder al aangaf dat je ook moest doen in bericht #6, de twee datums toevoegen aan de keuzelijst. Dan werkt de code want ik heb verder niks veranderd aan je voorbeeld.
 
werk niet.jpg
heb hem nu zo gemaakt maar krijg deze melding.

hij filter niet in subformulier_tabel1
 
Kijk eens wat er anders is in mijn versie. Die zou wel moeten werken.
 

Bijlagen

aha nu heb ik jouw door ik zit met mijn gedacht 1 is begin tot eind periode 1
2 periode twee en zo had ik hem dus ook opgebouwd
jij zet die twee data`s in een combo box
werkt perfect maar die had ik ff niet door .

sorry
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan