Newsgroup: it.comp.appl.access
Titolo: Aiuto panico Moduli!

Ciao al ng!
Seguendo i consigli di Silvio berruti e Bande sono andato nel sito comune ed
ho copiato il modulo relativo a "Conteggio dei giorni lavorativi tra due
date" creando un modulo in access!
Ora però non ho la minima idea di come utilizzare e visualizzare i risultati
che dovrebbe dare il modulo!
Sareste così gentili da indicarmi passo passo come fare per inserire il
risultato dentro un report, quali campi creare e che stringhe immettere?
CIao e Grazie

 ha scritto nel messaggio
news:nm0E7.19328$7A4.1...@news.infostrada.it...

Tranquillo... niente panico.
La funzione "Conteggio dei giorni lavorativi tra due date", dandole in pasto
una data iniziale e una data finale, provvede a restituirti il n° di giorni
lavorativi che intercorrono.
Quindi, innanzi tutto, devi creare un nuovo modulo e copiarvi x intero il
testo della funzione e delle 2 funzioni che da questa sono richiamate (cioè
dal 1° Public Function all'ultimo End Function); dopo di che compili e
salvi, facendo attenzione a non chiamare il modulo con il nome di una delle
funzioni.
Bene, ora hai a disposizione di Access 3 nuove funzioni che calcolano quando
cade la Pasqua in un certo anno, se un giorno specifico è festivo o no, e il
conteggio dei giorni lavorativi.
X capire come funziona, facciamo una prova in una maschera nuova, la cui
origine record sia vuota, e inserisci una casella di testo, chiamandola
GGLavorativi; nell'origine controllo scrivi:
=ContaLavorativi(#01/01/2001#;Date();Falso)
Quando vai in visualizzazione maschera, vedrai che ti riporta il n° di
giorni lavorativi tra il 1° gennaio 2001 e oggi, senza settimana corta.
Ora crea 2 nuove caselle di testo, che chiamerai DataInizio e DataFine, e
una casella di controllo che chiamerai SettCorta e a cui imposterai il
valore predefinito a No.
Vai a modificare l'origine controllo di GGLavorativi così:
=ContaLavorativi([DataInizio];[DataFine];[SettCorta])
Quando inserirai le date in DataInizio e DataFine, avrai il n° di giorni
lavorativi tra le 2 date, e, cliccando su SettCorta, vedrai che il valore
cambia se deve considerare la settimana corta oppure no.
X migliorare quanto abbiamo fatto, dobbiamo ancora togliere l'errore che
viene visualizzato quando non sono presenti valori in DataInizio e DataFine.
Un sistema potrebbe essere questo: modifica l'origine controllo di
GGLavorativi come segue
=ContaLavorativi(nz([DataInizio];#01/01/2001#);nz([DataFine];Date());[SettCo
rta])
e, se non sono presenti valori nei controlli [DataInizio] e [DataFine],
otterrai il n° di giorni lavorativi dal 1° gennaio 2001 ad oggi.
Buon divertimento.
--
Silvio
il sito comune di it.comp.appl.access:
http://www.sitocomune.com

 ha scritto nel messaggio
news:Dq8E7.20442$7A4.1...@news.infostrada.it...

Complimenti per la chiarezza.
Paolo


Grazie, ma, in questi casi, mi viene in mente come e quanto sono stato
aiutato in questo NG quando non capivo e non sapevo come muovermi.


 ha scritto nel messaggio
news:Dq8E7.20442$7A4.1...@news.infostrada.it...
Ciao Silvio e grazie per la tua disponibilità e competenza!
Funziona tutto alla grande, ed avrei bisogno di chiederti dei chiarimenti:
Per giorni lavorativi sono intesi solo i giorni feriali ho anche le
feste?Quali sono esattamente le feste riconosciute dal modulo?
COme posso inserire le altre festività mancanti?
Ci
ao e Grazie


 COme posso inserire le altre festività mancanti?
Innanzi tutto sei pregato di rispondere dopo il testo dei messaggi
precedenti. Grazie.
Se vai a vedere la funzione Festivo, che viene richiamata dalla funzione
ContaLavorativi, troverai il seguente codice che provvede ad aggiungere le
feste comandate:
   If Day(D) = 1 And (Month(D) = 1 Or Month(D) = 5 Or Month(D) = 11) Or _
         Day(D) = 6 And Month(D) = 1 Or Day(D) = 25 And (Month(D) = 4 Or _
         Month(D) = 12) Or Day(D) = 15 And Month(D) = 8 Or (Day(D) = 8 Or _
         Day(D) = 26) And Month(D) = 12 Then
      Festivo = True
      Exit Function
   End If
che tradotto significa
se il giorno è il 1° di gennaio o di maggio o di novembre o se il giorno è
il 6 di gennaio o se il giorno è il 25 di aprile o di dicembre o se il
giorno è il 15 di agosto o se i giorni sono l'8 o il 26 di dicembre allora è
festa.
Ora, se ti è + chiaro cosa è scritto in VBA, puoi tranquillamente aggiungere
altri giorni a tuo piacimento aggiungendo un ulteriore sequenza di Or giorno
e And mese.
E, come diceva quel signore in TV, "provare x credere".
