Newsgroup: it.comp.appl.access
Titolo: calcolare la data partendo dal numero settimana

esempio pratico: oggi è il 14/12/2005
se in una textbox digito 3 voglio che in un altra textbox ritorni il
16/01/2006 che è il primo gg della 3 settimana del 2006
se in una textbox digito 20 voglio che in un altra textbox ritorni il
15/05/2006 che è il primo gg della 20 settimana del 2006
cioe deve ritornare sempre una data futura in base al numero della settimana
indicata.
come posso impostare una routine del genere?
sto ragionando sul datepart ma sono inchiodato...
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Paolo

Paolo ha scritto:


Sitocomune/General
"6.109 Determinare il primo e l'ultimo giorno di ciascuna delle 52
settimane di un anno"
-- 
TANNHAUSER
"I've seen things you people wouldn't believe..."
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 settimane di un anno"
Si, grazie, avevo già dato un occhiata, ma non riesco ad adattarla alla mia
situazione
oppure sono io che sono "de coccio"...
Paolo


www.donkarl.com/it
 FAQ 2.9 Il Lunedì di una data settimana
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
+ Conferenza Italiana per Sviluppatori di Access (CISA) 

 
www.donkarl.com/it
 FAQ 2.9 Il Lunedě di una data settimana
Ciao Karl,
ho testato sia il tuo metodo (che dovrebbe, a questo punto, risolvere il
quesito di Paolo), sia quello di Carlo nel Sitocomune/General/6.109. I due
metodi restituiscono il lunedi spostato esattamente di una settimana (in
meno per il metodo di Carlo): ovvio se nella Dlookup sposto il criterio in
avanti di uno, a quel punto il risultato č identico.
Grazie.


 quel punto il risultato č identico.
Per me la mia funzione funziona. ;-)
Dimmi un esempio cosa e come hai fatto e ricevuto.
-- 
cu


 Dimmi un esempio cosa e come hai fatto e ricevuto.
Si, lo so che la tua funziona, l'ho provata prima di dirtelo :-)
Quella di Carlo del sitocomune si basa su di una tabella che va costruita
per prima dove ci sono tutte le date di inizio e fine settimana generate
usando il codice:
Public Sub DeterminaSettimane(DataIniziale As Date)
   ' in DataIniziale mettere il primo giorno dell'anno che si desidera
   'nel formato "01/01/2003"
   'esempio: DeterminaSettimane("01/01/2003")
 
   Dim NuovaData As Date
   Dim rcs As Recordset, i As Integer
   Dim MioGiorno
   MioGiorno = WeekDay(DataIniziale, vbMonday)
   'questo perchč il primo giorno č il lunedě
 
   'Ora accodo i valori solo per la prima settimana
   Set rcs = CurrentDb.OpenRecordset("Settimane")
    With rcs
    .AddNew
    !NSettimana = 1
    !DataInizio = DataIniziale
    !DataFine = DataIniziale + (7 - MioGiorno)
    .Update
    End With
 
    NuovaData = DataIniziale + ((7 - MioGiorno) + 1)
 
    'finalmente accodo gli altri valori
    For i = 2 To 53
            With rcs
            .AddNew
            !NSettimana = i
            !DataInizio = NuovaData
            !DataFine = NuovaData + 6
            NuovaData = !DataFine
            .Update
            End With
        NuovaData = NuovaData + 1
    Next i
    rcs.Close
End Sub
Passando poi il numero di settimana (ad esempio in un controllo di una
form) viene restituita la data dell'inizio della settimana e quella della
fine utilizzando le funzioni:
DLookUp("DataInizio","Settimane","NSettimana = 45")
DLookUp("DataFine","Settimane","NSettimana = 45")
Ti ripeto, si discosta dalla tua esattamente di una settimana.



intanto grazie,
Ho provato, e ci siamo quasi.
Il problema č che settando 3 come settimana (ArgKW) e se recupero in
automatico
l'anno year(date) che torna attualmente 2005 non mi va bene
perchč mi torna 17/01/2005
mentre io vorrei che mi tornasse  la ps. data futura e coič 16/01/2006
Non vorrei passargli manualmente l'anno giusto (perchč cosě funziona)
come fare...???
Paolo

 Si, lo so che la tua funziona, l'ho provata prima di dirtelo :-)
Ed io non ho capito bene il tuo messaggio. Sai che il mio italiano
e circa come la virtů di leggere di ciroteo. ;-)

Il codice assume che il primo giorno di un anno sia nella prima
settimana dell'anno. Questo non č vero o diciamo solo per caso.
In quasi tutta l'Europa č in grado l'ISO standard 8601 dicendo che
la prima settimana dell'anno č questo che ha 4 giorni.
Se Carlo non legge il thread dobbiamo informarlo che c'č questo
problema nel suo metodo. Puo risolvere con verificare nel codice
se la sua NSettimana 1 ha 4 giorni e in caso di no deve prendere
la prossima come NSettimana 1 prima di accodare gli altri valori.


 la prossima come NSettimana 1 prima di accodare gli altri valori.
Se stai leggendo, Carlo, prendi nota.


 l'anno corrente...
Perchè non implementi un bel IF..Then..Else dove con IF testi se il numero
che passi alla funzione per la settimana è > o < di quello della settimana
corrente dell'anno in corso e con Then ed Else passi alla funzione o
l'anno corrente, estratto con Year (Date) o Year(Date)+1.


Si ok è proprio quello che sto provando ora, poi ti dico.
Paolo


 > che passi alla funzione per la settimana č > o < di quello della
