Mutatie leden na peildatum

  • Onderwerp starter Onderwerp starter SA3
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

SA3

Gebruiker
Lid geworden
3 jan 2016
Berichten
130
Ik wil de nieuwe en vertrokken leden na een in te geven peildatum in het zelfde formulier weergeven.
Dus een formulier waarop de peildatum ingegeven kan worden en dan hierna d.m.v. een knop deze info ophalen en weergeven.
Hoe kan ik dat het beste doen?
 
Ik neem aan dat je een formulier hebt gemaakt waar je de selectie in laat zien en dat je op en of meer velden kan filteren. Mij lijkt het onmogelijk om dat op één veld te doen, omdat het andere gegevens zijn. Maar niet onmogelijk.
 
Ik stel me het volgende voor:
- in een formulier (dit formulier heb ik) vraag ik om de Peildatum. Met een knop Opslaan wordt deze datum gesaved in de database
- hierna klik ik in hetzelfde formulier op een knop die code opstart die:
- alle records uit de database haalt waarvoor geldt dat de Inschrijfdatum groter is dan de Peildatum (Nieuw) en
- alle records uit de database haalt waarvoor geldt dat de Uitschrijfdatum groter is dan de Peildatum (Vertrokken)
- geselecteerde records worden weergegeven op dit formulier

Op deze manier hoop ik alle ledenmutaties na een ingegeven peildatum te tonen.
 
Kan volgens mij een stuk simpeler. Sowieso de knop Opslaan? Niet nodig, lijkt mij. Al was het maar omdat de peildatum een virtuele datum zou moeten zijn die steeds wisselt. En waar sla je die op? Moet in een andere tabel zijn als die waar de mutaties in staan.
Ik zou dus een tekstvak gebruiken, of keuzelijst, waarin je de peildatum kiest of selecteert (tekstvak met DatePicker) en d gebeurtenis Bij Wijzigen gebruiken om het formulier te filteren. Één handeling, gelijk resultaat.
 
Het klinkt heel simpel, maar ik begrijp het niet.
Het tekstvak met DatePicker heb ik, maar hoe nu verder?
 
Als je een voorbeeldje post, kunnen we wat nauwkeuriger aangeven wat je moet doen. Nu dus alleen een eigen voorbeeldje:

Code:
Private Sub Peildatum_Change()
Dim sFilter As String

    If Not Me.Peildatum.Text & "" = "" Then
        sFilter = "[aanmelddatum] > Cdate(" & CDbl(CDate(Me.Peildatum.Text)) & ")  OR [afsluitdatum] > Cdate(" & CDbl(CDate(Me.Peildatum.Text)) & ")"
        MsgBox sFilter
        Me.Filter = sFilter
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
End Sub
 
De records met de velden 'aanmelddatum' en 'afsluitdatum' staan in mijn tabel. Hoe krijg ik ze in deze procedure?
[tabel].aanmelddatum werkt niet.
 
Ik neem aan dat jij andere veldnamen hebt voor je datums; ik vermoed (bericht #3) dat die bij jou [Nieuw] en [Vertrokken] heten. Dat is het probleem als wij eigen voorbeeldjes posten: de veldnamen zijn altijd anders. Daarom vragen we ook om bestanden met de door jou gebruikte objecten en namen. (lees voor 'jou': elke vraagsteller ;) )
 
Zou ook kunnen door het resultaat dmv een query te laten verschijnen. In deze query geef je de datums als criteria weer, die de gebruiker in pop-up venstertjes kan invullen. Dat lijkt mij het meest gemakkelijk en gebruiksvriendelijk.
 
Ik heb mijn eigen veldnamen ingevuld, maar dat werkt niet. De veldnamen worden in sFilter gewoon als tekst weergeven.

Code:
Option Compare Database

Private Sub Peildatum_Change()
Dim sFilter As String

    If Not Me.Peildatum.Text & "" = "" Then
        sFilter = "([Ledenbestand].Inschrijfdatum) > Cdate(" & CDbl(CDate(Me.Peildatum.Text)) & ")  OR ([Ledenbestand].Einde lidmaatschap) > Cdate(" & CDbl(CDate(Me.Peildatum.Text)) & ")"
   
        MsgBox sFilter
        Me.Filter = sFilter
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
End Sub
 
na lang weifelen toch even inbreken :confused:
in bijlage een mogelijke oplossing ?!?!
(zonder code, me baserend op bericht #3)
 

Bijlagen

3 Formulieren (ook nog eens met macro's.... ) terwijl mijn code + 1 tekstvak (wel even de veldnamen weer aanpassen) gewoon hetzelfde doet. Dat noem ik van de regen in de drup :D.
Code:
Private Sub Peildatum_Change()
Dim sFilter As String

    If Not Me.Peildatum.Text & "" = "" Then
        sFilter = "[Inschrijfdatum] > Cdate(" & CDbl(CDate(Me.Peildatum.Text)) & ")  OR [Uitschrijfdatum] > Cdate(" & CDbl(CDate(Me.Peildatum.Text)) & ")"
        MsgBox sFilter
        Me.Filter = sFilter
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
End Sub
 
Maar het werkt niet bij mij. Ik krijg b.v. het veld [Ledenbestand].Inschrijfdatum niet uit mijn tabel. Wat doe ik fout?
 
En daarom vragen we dus altijd om een voorbeeldje.... Ik heb nu in 2 databases (ook die van Duke) mijn functie gezet, en hij werkt prima.
 
Ter aanvulling. Ik krijg onderstaande MsgBox.

MsgBox.JPG
 
Ik kan 'm wél openen, maar waar staat dat tekstvak dan? Ik zie nergens een formulier waarmee je filtert...
 
Op het formulier MutatieLeden staat het tekstvak Peildatum met DatePicker. Achter "Bij wijzigen" hiervan staat de filtercode.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan