Buonasera ragazzi, ho un problema, devo creare un evento in base ai giorni festivi, ho già trovato qualche esempio però non lo riesco ad integrarlo con il mio codice, inizialmente ho utilizzato questo:
Private Sub data_inizio_Change()
If Weekday([data inizio].Text, vbMonday) = 6 Or Weekday([data inizio].Text, vbMonday) = 7 Then
Forms![18_aggiungi interventi in reperibilità]![ore str festivo].Visible = True
Forms![18_aggiungi interventi in reperibilità]![Etichetta57].Visible = True
Forms![18_aggiungi interventi in reperibilità]![ore str].Visible = False
Forms![18_aggiungi interventi in reperibilità]![Etichetta55].Visible = False
Else
Forms![18_aggiungi interventi in reperibilità]![ore str festivo].Visible = False
Forms![18_aggiungi interventi in reperibilità]![Etichetta57].Visible = False
Forms![18_aggiungi interventi in reperibilità]![ore str].Visible = True
Forms![18_aggiungi interventi in reperibilità]![Etichetta55].Visible = True
End If
End Sub
praticamente se nel campo data inserisco un giorno che sia sabato o domenica mi compaiono i campi festivi, viceversa i feriali (è un codice forse un po' spartano però è funzionante).
ora voglio fare in modo che oltre ai fine settima volevo inserire anche le festività nazionali e cercando su internet ho trovato questo:
Option Compare Database
Option Explicit
' VERIFICA SE LA DATA E' UN GIORNO FESTIVO IN ITALIA
Public Function Festivo(myDate As Date) As Boolean
Select Case myDate
'1. GENNAIO NUOVO ANNO
Case DateSerial(year(myDate), 1, 1)
Festivo = True
'6.GENNAIO - EPIFANIA
Case DateSerial(year(myDate), 1, 6)
Festivo = True
'25. APRILE - LIBERAZIONE
Case DateSerial(year(myDate), 4, 25)
Festivo = True
'1. MAGGIO FESTA LAVORATORI
Case DateSerial(year(myDate), 5, 1)
Festivo = True
'2. GIUGNO FESTA DELLA REPUBBLICA
Case DateSerial(year(myDate), 6, 2)
Festivo = True
'PASQUA
Case Easter(year(myDate))
Festivo = True
'LUNEDI DI PASQUA
Case Easter(year(myDate)) + 1
Festivo = True
'15. AGOSTO
Case DateSerial(year(myDate), 8, 15)
Festivo = True
'1. NOVEMBRE - TUTTI I SANTI
Case DateSerial(year(myDate), 11, 1)
Festivo = True
'8. DICEMBRE - IMMACOLATA CONCEZIONE
Case DateSerial(year(myDate), 12,
Festivo = True
'25. DICEMBRE - NATALE
Case DateSerial(year(myDate), 12, 25)
Festivo = True
'26. DICEMBRE - SANTO STEFANO
Case DateSerial(year(myDate), 12, 26)
Festivo = True
' DATE DI FESTIVITA' LOCALI(PATRONO Ecc...)
'Case DateSerial(year(myDate), nn, nn)
' Festivo = True
'
' Per rendere più flessibile la parametrizzazione
' di Festività LOCALI si potrebbe usare una Tabella
' e recuperare il RS con la Data...!
' Case ELSE
' Dim rs as DAO.Recordset
' sSQL="SELECT * FROM Tb_FesteLocali " & _
' "WHERE Data=#" & Format$(myDate,"yyyymmdd") & "#"
' set rs=DbEngine(0)(0).OpenRecordset(sSQL, _
' dbOpenDynaset,dbReadOnly)
' ' Se il rs è vuoto significa che la data non è inserita
' come FESTIVITA'
' Festivo=NOT rs.Eof
' rs.Close
' Set rs=Nothing
End Select
End Function
' CALCOLO DELLA PASQUA
Function Easter(year As Integer) As Date
Dim d As Integer
d = (((255 - 11 * (year Mod 19)) - 21) Mod 30) + 21
Easter = DateSerial(year, 3, 1) + d + (d > 48) + 6 - _
((year + year \ 4 + d + (d > 48) + 1) Mod 7)
End Function
dove mi elencano le festività compreso il calcolo della Pasqua, il mio problema è che non riesco ad integrare questo codice a quello scritto in precedenza…sono consapevole di essere una pippa
Vi ringrazio anticipatamente