Newsgroup: it.comp.appl.access
Titolo: data lavorativa o festiva

Salve, chi mi può aiutare, in una query oltre a calcolare raggruppare
ed altro, che funziona perfettamente, ho la necessità  che  in un
nuovo campo che chiamerò "Presenza"   questo restituisse in base alla
data filtrata se è - Festivo o Lavorativo  calcolando il festivo solo
domeniche e festivi infrasettimanali, si potrà fare?
Grazie.
 


sul 
sitocomune.com
 sezione general  ci sono esempi che ti possono aiutare


Grazie Gerardo, ho visto sul sitocomune, con una maschera separata
riesco solo a vedere se è un giorno lavorativo il mio grande successo
è, che  da una query da cui si genera un report per ogni data a fianco
deve essere scritto festivo o lavorativo non riesco a scrivere
l'espressione.
Grazie.

Antony laid this down on his screen :

Per i festivi infrasettimanali abbiamo una tabella?
Perché non tutti i festivi infrasettimanali sono
validi per ogni dove, alcuni festivi infrasettimanali
si è convenuto di festeggiarli la domenica successiva, etc
 
Bruno
 
 

 l&#39;espressione.
 
Ciao!
 
Se la query che fa da origine dati del report contenesse un campo booleano "DataFestiva", potresti avere una casella di testo con origine dati l'espressione
=Iif([DataFestiva]=TRUE,"Festivo","Lavorativo")
 
HTH
Popi
 

 Grazie.
 
Ciao Antony,
puoi fare così tenendo presente di aggiungere solo la festa patronale nella select della Function VerificaFestivo:
in un modulo di classe inserisci le due seguenti Function:
 
Public Function VerificaFestivo(myDate As Date) As String
   Select Case myDate
      '1. GENNAIO NUOVO ANNO
      Case DateSerial(year(myDate), 1, 1)
          VerificaFestivo = "Festivo"
 
      '6.GENNAIO - EPIFANIA
      Case DateSerial(year(myDate), 1, 6)
          VerificaFestivo = "Festivo"
 
      '25. APRILE - LIBERAZIONE
      Case DateSerial(year(myDate), 4, 25)
         VerificaFestivo = "Festivo"
 
      '1. MAGGIO FESTA LAVORATORI
      Case DateSerial(year(myDate), 5, 1)
          VerificaFestivo = "Festivo"
 
      '2. GIUGNO FESTA DELLA REPUBBLICA
      Case DateSerial(year(myDate), 6, 2)
          VerificaFestivo = "Festivo"
 
      'PASQUA
      Case Easter(year(myDate))
          VerificaFestivo = "Festivo"
 
      'LUNEDI DI PASQUA
      Case Easter(year(myDate)) + 1
          VerificaFestivo = "Festivo"
 
      '15. AGOSTO
      Case DateSerial(year(myDate), 8, 15)
          VerificaFestivo = "Festivo"
 
      '1. NOVEMBRE - TUTTI I SANTI
      Case DateSerial(year(myDate), 11, 1)
          VerificaFestivo = "Festivo"
 
      '8. DICEMBRE - IMMACOLATA CONCEZIONE
      Case DateSerial(year(myDate), 12, 8)
          VerificaFestivo = "Festivo"
 
      '25. DICEMBRE - NATALE
      Case DateSerial(year(myDate), 12, 25)
          VerificaFestivo = "Festivo"
 
      '26. DICEMBRE - SANTO STEFANO
      Case DateSerial(year(myDate), 12, 26)
          VerificaFestivo = "Festivo"
 
      Case Else
          VerificaFestivo = "Lavorativo"
   End Select
End Function
 
' CALCOLO DELLA PASQUA
Public 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
 
e nella query:
Presenza: VerificaFestivo([TuaData])
 
modifica il nome TuaData con il vero nome del campo dove ci sono le date.
Ciao Vladimiro.

 Ciao Vladimiro.
 
Questo codice mi pare di conoscerlo...
 
P.S. una volta i CROSSPOST erano vietati anche quì... e questo lo
sarebbe.
 
Ora fate voi...
 
@Alex

 @Alex
 
Aspetta, fammi capire; che c'è di male a postare qualcosa di già esistente, tra l'altro adattato per l'occasione? 
Che dovevo fare, non rispondere per niente o prima di rispondere andare a controllare a chi apparteneva per menzionare l'autore? Credo che quello che conta in un forum è l'essere in qualche modo di aiuto a qualcuno e stai pur certo che se ricordavo a chi apparteneva l'esempio "Calcolo giorni lavorativi" da dove ho estrapolato le routine, mettevo direttamente il link spiegando poi come andarlo a modificare.
Vladimiro.

 Vladimiro.
 
Solo ora ho avuto un pò di tempo per fare le dovute ricerche, anche se debbo confessarti che qualcosa avevo intuito.
http://mirror.masterdrive.it/alessandrobaraldi/
 
I miei ossequi.
Vladimiro.

 Vladimiro.
 
Ciao Vladimiro.
il demo comunque è qui:
 
http://lnx.accessgroup.it/community/forms/calcolo-giorni-lavorativi.html
 
 
--
sv
 
-- 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

 sv
... ed io mi sono registrato :-)
anche se, inserendo nome utente e password non vengo riconosciuto.
Vladimiro
 

 Vladimiro
 
Ok, ho ricevuto la mail.
Ciao Vladimiro

 Vladimiro.
 
Nulla di grave... basterebbe segnalarlo... che è stato recuperato...
per correttezza verso chi scrive CODICE free per tutti... ;-)
Io non mi offendo, ma siccome sono il primo a inserire le origni
dell'autore quando copio codice di altri... mi piacerebbe fosse una
norma non un'eccezione.
 
@Alex

 @Alex
 
Ciao Alessandro,
capisco le tue ragioni e mi dispiace di essere passato per quello che si vuole attribuire meriti non suoi. Detto ciò, vorrei spegarti come sono andate le cose. Siccome mi son creato una cartella con appunti, link e file inseriti a mo' di archivio per essere velocemente consultabili, quando si tratta di appunti in cui quasi sempre lascio la firma della persona che ha risolto un determinato problema e di conseguenza poi non ho difficoltà a menzionarlo quando rispondo a qualcuno, trattandosi di demo, nel momento in cui quello che mi serve lo trovo all'interno di un modulo ma non c'è la firma dell'autore che l'ha scritto (tanti lo fanno e a questo punto aggiungo che fanno bene) e non ricordo a chi potesse appartenere, mi riporta a risponderti come già ho fatto, cioè se è meglio aiutare a prescindere dalla fonte o non rispondere proprio. Certo, potevo anche scrivere che il codice è stato adattato da un codice non mio, ma a cosa sarebbe servito?
 
Vladimiro


Vladimiro, quello che sostengo è che a prescindere che l'autore non
metta FIRME in tutto il Codice, io mi premunisco di farlo o almeno di
inserire i LINK da dove ho tratto l'aiuto... ripeto che il mio è
semplicemnte un modo per rendere merito, e questo perchè non ho
bisogno di prendermene...
 
L'obiettivo che spesso si porta avanti "AIUTARE" sarebbe rispettato
meglio se invece di fornire CODICE da CopiaIncollare, venissero
forniti i riagionamenti volti a comprendere la cosa... e magari
finalizzati a far scrivere il codice all'autore... in modo da
INSEGNARE.
Capisco che questo è un processo molto più scomodo e complesso al
quale si risolve incollando codice ottenendo così dai richiedenti poco
lungimiranti ottima considerazione, ma nel contesto la sostanza è
veramente poca...!
 
La mia era una semplice sensibilizzazione al modo di fare... per il
resto sono dell'idea che chiunque può dire di aver scritto quel codice
non è certamente oggetto di Copyright... sono solo 4 istruzioni
scritte in fila, come tutto
il codice che gira...
 
Sia chairo chie nulla è esplicitamente volto alla tua persona, ho
semplicemente approfittato dell'accaduto per esporre un mio parere al
modo di "AIUTARE" che ormai da anni si sta diffondendo.
 
Ciao
 
@Alex

 @Alex
 
Approfitto anch'io ed aggiungo: speriamo approfitti pure qualcun altro (magari apriamo un altro post) per esporre il mio pensiero rispetto al modo in cui ritengo più giusto AIUTARE, anche perché è un po’ di tempo che lo volevo fare e più di una volta che se ne è presentata l’occasione non l’ho fatto.
 
Dunque, secondo me, alla base di qualsiasi cosa che si tenta di intraprendere, se non c’è la passione e naturalmente anche un po’ di capacità non si và da nessuna parte.
 
Prendiamo in considerazione l’autore di questo post che tra l’altro, come tanti altri frequentatori non solo occasionali dei vari forum, non si degna neanche di ringraziare chi in qualche modo ha cercato di aiutarlo (e non parlo solo di me), se fosse uno con la passione della programmazione, una volta acquisito il codice, sono arcisicuro che andrebbe a studiarselo, mentre potrebbe non gradire il fatto che per arrivarci da solo con “l’aiuto a puntate” a mo’ di corsi di programmazione che tali non possono in alcun modo essere secondo me, vedrebbe consumarsi del tempo a lui prezioso.
D’altro canto, se fosse uno “costretto” alla programmazione, nell’uno o nell’altro caso non gli rimarrebbe nulla dell’insegnamento avuto.
 
In definitiva, quello che  voglio dire è che la pappa pronta delle volte è più salutare che non quei giri di parole che spesso confondono il concetto reale; l’importante però è che chi recepisce non sia passivo ad esso.
 
Sono sicuro di trovarmi in minoranza rispetto a quello che ho scritto, però, persone del calibro di Giorgio Rancati, Cinzia Pagani, Karl Donaubauer, Carlo Costarella sono sempre stati da subito molto esaustivi nel dare il loro contributo e non solo in termini di risoluzione del problema; almeno questo è quello che ho sempre  pensato di loro.
Vladimiro.

 Public Function VerificaFestivo(myDate As Date) As String
[...]
 
Ho rapinato anch'io il codice di @Alex
... in maniera meno evidente.
 
============================================
Public Function Festivitï¿œ(MyDate As Date) As String
Dim DS(1 To 13) As Date, d As Integer, Easter As Date
Dim i As Integer, Festivo As Boolean
 
d = (((255 - 11 * (Year(MyDate) Mod 19)) - 21) Mod 30) + 21
Easter = DateSerial(Year(MyDate), 3, 1) + d + (d > 48) + 6 - _
         ((Year(MyDate) + Year(MyDate) \ 4 + d + (d > 48) + 1) Mod 7)
 
DS(1) = DateSerial(Year(MyDate), 1, 1)
DS(2) = DateSerial(Year(MyDate), 1, 6)
DS(3) = DateSerial(Year(MyDate), 4, 25)
DS(4) = DateSerial(Year(MyDate), 5, 1)
DS(5) = DateSerial(Year(MyDate), 6, 2)
DS(6) = Easter
DS(7) = Easter + 1
DS(8) = DateSerial(Year(MyDate), 8, 15)
DS(9) = DateSerial(Year(MyDate), 11, 1)
DS(10) = DateSerial(Year(MyDate), 12, 8)
DS(11) = DateSerial(Year(MyDate), 12, 25)
DS(12) = DateSerial(Year(MyDate), 12, 26)
DS(13) = DateSerial(Year(MyDate), 2, 4) ' Santo Patrono
 
For i = 1 To 13
    If MyDate = DS(i) Then
        Festivo = True
        Festivitï¿œ = "Festivo"
        Exit Function
    End If
Next
 
' Eliminare l'OR per considerare i Sabati giorni feriali.
If WeekdayName(Weekday(MyDate, vbSunday), True, vbSunday) = "Sun" Or _
   WeekdayName(Weekday(MyDate, vbSunday), True, vbSunday) = "Sat" Then
    Festivitï¿œ = "Festivo"
Else
    Festivitï¿œ = "Feriale"
End If
 
End Function
=============================================
 
Bruno