Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: schoolvakantiedagen Kerstvakantie  (gelezen 2740 keer)

0 leden en 1 gast bekijken dit topic.

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
schoolvakantiedagen Kerstvakantie
« Gepost op: 20 januari 2021, 07:30:39 »
Beste Oplosser,
Ik loop tegen het probleem met onderstaande functie.

Case en bevindingen:
Bedoeling is om in kalender de vrije dagen van de kerstvakantie weer te geven.
In het tekstvak(datumveld) komt Kerstvakantie te staan. 
Het loopt mis als je in de kalender naar januari gaat.
Dan genereerd de functie de schoolvakantiedagen voor volgend Kerstperiode en kan niet de bedoeling zijn.
De bedoeling is dan dat de resterende kerstvakantiedagen die in de maand januari valt ook te tonen in het tekstvak(datumveld).
De start van de Kerstvakantie is variabele datum. Hij geeft de datum weer wanneer de kerstvakantie begint.
Heb hele nacht geprobeerd om het opgelost te krijgen maar het lukt mij niet.
Ik vraag naar jullie bedreven expertise om mee te vinden/zoeken naar een oplossing.

Public Function Iskerstvakantie(jaar As Integer) As Date
'Auteur: Diezel
'e-mail:
'Datum: Dinsdag 12 januari 2021
'Object: modFunctie ? strHolKerVak(#12/22/2020#)
'Doel: Genereer een geldige datum voor start van de kerstvakantie!
'Commentaar: De kerstvakantie begint de maandag van de week waarin Kerstdag valt en duurt 2 weken;
'Indien Kerstdag op een zaterdag of zondag valt, dan begint de kerstvakantie op de maandag na Kerstdag.

'http://www.wettelijke-feestdagen.be/wettelijke-feestdagen-belgie-2015.aspx
'de kerstvakantie begint de maandag van de week waarin refKerstvakantievalt en duurt 2 weken.
'Indien refKerstvakantieop een zaterdag of zondag valt, dan begint de kerstvakantie op de maandag na Kerstdag;
Dim result As Date
Dim refKerstvakantie As Date

        refKerstvakantie = DateSerial(Jaar, 12, 25)
       

'De kerstvakantie begint de maandag van de week waarin refKerstvakantie valt.
'Valt refKerstvakantie op een zaterdag of zondag dan start de kerstvakantie op de maandag na kerstdag.
        Select Case Weekday(refKerstvakantie)
       
        Case 7
        'Zaterdag
        Iskerstvakantie = refKerstvakantie + 2
        Case 6
        'Vrijdag
        Iskerstvakantie = refKerstvakantie - 4
        Case 5
        'Donderdag
        Iskerstvakantie = refKerstvakantie - 3
        Case 4
        'Woensdag
        Iskerstvakantie = refKerstvakantie - 2
        Case 3
        'Dinsdag
        Iskerstvakantie = refKerstvakantie - 1
        Case 2
        'Maandag
        Iskerstvakantie = refKerstvakantie
        Case 1
        'Zondag
        Iskerstvakantie = refKerstvakantie + 1
        End Select
       
End Function

Public Function strHolKerVak(ByVal dtmDate As Date) As String

Dim HolidaysKerstVakantie(0 To 13) As Date
Dim refKerstvakantie As Date
Dim Holidays As Integer
Dim dtmStr As String


    'We vragen begin van de Kerstvakantie op rekinghoudend wanneer de 25 december valt in de week of weekend
    refKerstvakantie = Iskerstvakantie(Year(dtmDate))
 

   'We steken de vrije dagen van het kerstverlof in de array HolidaysKerstvakantie
    For Holidays = 0 To 13 Step 1
   
    'We tellen de vrije Kerstvakantiedagen op(14d)
    HolidaysKerstVakantie(Holidays) = CDate(refKerstvakantie) + Holidays
 
    'Print in venster direct de kerstvakantiedagen af
    'Debug.Print HolidaysKerstVakantie(Holidays)
    Next Holidays
   
   
    For Holidays = 0 To 13 Step 1
    'Indien dtmDate overeenkomt met een Holidaydatum uit de array,
    'dan krijgt dtmStr "Kerstvakantie"
         
     If HolidaysKerstVakantie(Holidays) = dtmDate Then
   
    dtmStr = "Kerstvakantie"
 
          Exit For
          End If
          Next Holidays
           
          strHolKerVak = dtmStr
         
 End Function


Kalender met module komt in bijlage zodat je het visueel het resultaat van het probleem kan zien.
Klik op dec en januari om het probleem te zien.

Vriendelijke groet,

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: schoolvakantiedagen Kerstvakantie
« Reactie #1 Gepost op: 21 januari 2021, 08:58:48 »
hey , sry maar ik heb totaal geen ervaring met Acces....
Mvg,
Arnold.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: schoolvakantiedagen Kerstvakantie
« Reactie #2 Gepost op: 21 januari 2021, 10:22:42 »
Dag Montagnard,

Na dagje doordoen heb ik het opgelost gekregen. Wat in het begin héél moeilijk en lastig maakte bleek achteraf gezien niet zo moeilijk te zijn.
Met de jaarwissel voorzag ik een switch in vba voor maand 12 en 1, ..... gebeurtenis,  zodat ik netjes de schoolvakantiedagen krijg. De Functie werkt in de kalender.
Zie in bijlage een screenshot.

Alvast bedankt om te reageren.

Vriendelijke groet,

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: schoolvakantiedagen Kerstvakantie
« Reactie #3 Gepost op: 21 januari 2021, 11:06:54 »
goed zo , de beste leerschool begint bij Uzelf... \o/
Mvg,
Arnold.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

 


www.combell.com