bijwerk query op bepaalde dag van de maand

Status
Niet open voor verdere reacties.

Sushike

Gebruiker
Lid geworden
4 sep 2009
Berichten
25
Hoi,

Ik heb een vraagje.
Ik heb een query(bijwerk of selectie) gemaakt, met een macro autoexec kan ik deze automatisch openen telkens ik de database opstart. ( Ik heb wat vba code geschreven en deze open ik dan via een macro autoexec met "runcode" automatisch bij het opstarten van de database.)
Nu zou ik graag hebben dat deze query enkel opent op een bepaalde dag van iedere maand, bv elke 3de maandag of elke 15de van de maand .

Ik heb wat gepuzzeld in VBA met If en Now() maar het lukt me maar niet.

Iemand die me opweg kan zetten?

Thanks

Sushike
 
Je zou de code kunnen triggeren op een (verborgen) formulier, waarbij je de query laat uitvoeren op een specifieke datum. Als het formulier standaard wordt geladen, bijvoorbeeld in een AutoExec macro, dan heb je er verder geen omkijken meer naar.
 
Dank voor de snelle reactie michel!
Maar ik snap jammer genoeg niet echt wat je bedoeld...
In formulieren ben ik niet echt thuis. Misschien enig idee welke functie ik moet gebruiken om na te gaan of we vandaag (=de dag dat ik de database open) de 15de van de maand zijn?

Ik probeerde dit:

If Now() = 28 / 4 / 2010 Then --> )als test op specifieke datum eigenlijk zou ik hier graag 15de hebben)
DoCmd.OpenQuery "query3"
DoCmd.OpenQuery "query4"

Else
End If
 
het kan ook via een Procedureaanroep vanuit de macro Autoexec, dan hoef je geen formulier te maken. De functie kan er dan zo uitzien:

Code:
Public Function QueryDraaien()
Dim i As Integer, iDag As Integer, x As Integer
Dim dtDatum As Date, dtDatum3 As Date

iDag = Weekday(DateSerial(Year(Date), Month(Date), 1), vbMonday)
If Not iDag = 1 Then
    Do Until x = 1
        i = i + 1
        dtDatum = DateSerial(Year(Date), Month(Date), i)
        x = Weekday(DateSerial(Year(Date), Month(Date), i), vbMonday)
    Loop
End If

dtDatum = DateSerial(Year(Date), Month(Date), i)
dtDatum3 = DateSerial(Year(Date), Month(Date), i + 14)

MsgBox "Eerste maandag: " & dtDatum & vbLf & "Derde maandag: " & dtDatum3

If Date = dtDatum3 Then
    DoCmd.OpenQuery "query3"
    DoCmd.OpenQuery "query4"
End If

End Function
In de macro gebruik je dan de actie <ProcedureUitvoeren>, en gebruik je de functie QueryDraaien() als uit te voeren procedure.
Ik heb er even een msgbox tussengezet, zodat je kunt zien wat hij doet. In het voorbeeld laat ik de query uitvoeren op de derde maandag van de maand.
 
Hoi,

Werkt inderdaad perfect!

bedankt
Ik heb het zelf kunnen analyseren en aanpassen om te testen, echt super

Groetjes
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan