Newsgroup: it.comp.appl.access
Titolo: Formato data in settimane

Cari ragazzi,
ho un problema che non riesco a risolvere e peraltro ho difficoltà di
accesso alla rete in quanto sono presso un cliente in Kazakhstan, quindi non
riesco nemmeno a vedere il sito comune!!!! Vengo al problema: in una tabella
ho un campo data (DATA1); dando come input il numero della settimana
dell'anno (SETT), mi dovrebbe filtrare, sul campo DATA1, tutto il set di
dati che cade in quella SETT. (utilizzando una query oppure una funzione,
non fa differenza, mi interessa, se possibile, la procedura)
Vi ringrazio in anticipo per la vostra dempre cortese collaborazione.
Lna
--------------------------------
Inviato via 
http://usenet.libero.it

On Thu, 13 Feb 2003 13:53:49 GMT, 
leonardo...@dietsmann.com
 (Lna)
wrote:

vedi format()
Saluti.
Emanuele.

 non fa differenza, mi interessa, se possibile, la procedura)
Nella struttura delle query sistemati un tuo campo
settimale:format([tuadata];"ii")
dopo sarà semplice gestirti il filtro o il richiamo.
Ciao MAssimiliano
P.s. salutami i Kazhakhstaniani... esi... come cazhakistan si chiamano???



Ciao
Il problema delle settimane è strettamente legato al primo giorno dell'anno.
Qui bisogna dire che la prima settimana dell'anno potrebbe non essere di
sette giorni.
In Italia il primo giorno della settimana è il lunedì, in America la
domenica.
Per queste ragioni bisogna escogitare un sistema che tenga conto di queste
variabili.
Mi sono ingegnato a realizzare un sistema che possa darti il risultato che
ti aspetti.
Ho realizzato una tabella chiamandola "Settimane" con un campo "NSettimana"
di tipo numerico e chiave primaria; un campo "DataInizio" di tipo data/ora e
un campo "DataFine" di tipo Data/Ora.
Poi ho realizzato la sub che riporto sotto che richiede di immettere il
primo giorno dell'anno che si vuole serializzare in settimane.
Questa sub presuppone che la tabella "Settimane" sia vuota.
Una volta eseguita la sub la tabella sarà riempita dalle 52 settimane con
data inizio e data fine settimana.
Utilizzerai questa tabella per stabilire le due date che ti servono: se
l'utente digita 45, per esempio, il valore da cercare sarà
DLookUp("DataInizio","Settimane","NSettimana = 45") e
DLookUp("DataFine","Settimane","NSettimana = 45").
Eccoti la sub:
Public Sub MiaData(DataIniziale As Date)
' in DataIniziale mettere il primo giorno dell'anno che si desidera
'nel formato "01/01/2003"
'esempio: MiaData("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
Ciao, Carlo