IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Access
  New Posts New Posts RSS Feed - Filtro date settimana scorsa
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

Filtro date settimana scorsa

 Post Reply Post Reply Page  12>
Author
Message
chiarava79 View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 29/Dic/2017
Status: Offline
Points: 225
Post Options Post Options   Thanks (0) Thanks(0)   Quote chiarava79 Quote  Post ReplyReply Direct Link To This Post Topic: Filtro date settimana scorsa
    Posted: 12/Feb/2019 at 08:01
Ciao a tutti, avrei l'esigenza di filtrare in una query tutti i dati la cui data è della settimana precedente (dal lunedì alla domenica compresa) e in un'altra query, le date della settimana attuale ( sempre dal lunedì ala domenica compresa)
Mi potreste aiutare? 
Grazie mille
Back to Top
Sponsored Links


Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Online
Points: 5521
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 12/Feb/2019 at 15:52
Questa Funzione restituisce il Numero della Settimana secondo Standard ISO.

Public Function Date2Week(Optional ByVal dtmDate As Variant) As Byte
    ' ------------------------------------------------------
    ' Calcolo formato ISO 8601:1988 standard
    ' Verificati i casi da KB [OK]
    ' https://support.microsoft.com/it-it/kb/200299
    ' ------------------------------------------------------
    Dim ret              As Byte
   
    ret = Format(dtmDate, "ww", vbMonday, vbFirstFourDays)
    If ret > 52 Then
      If Format(dtmDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then ret = 1
    End If
    Date2Week = ret
End Function

Se sai la settimana attuale... la settimana precedente sarà -1 e quella successiva +1

Altrimenti devi determinare i 2 Estremi della settimana scorsa metterli in AND tra loro ed in OR con quelli della successiva...

Function FirstDayInWeek(Optional ByVal dtmDate As Variant, Optional vFirstDayInWeek As VBA.VbDayOfWeek = VBA.VbDayOfWeek.vbMonday) As Date
    ' ------------------------------------------------------
    ' Restituisce il primo gg della settimana passando la Data
    ' ------------------------------------------------------
    If IsMissing(dtmDate) Then dtmDate = Date
   
    FirstDayInWeek = Fix(dtmDate - Weekday(dtmDate, vFirstDayInWeek) + 1)
   
End Function

Function LastDayInWeek(Optional ByVal dtmDate As Variant, Optional vFirstDayInWeek As VBA.VbDayOfWeek = VBA.VbDayOfWeek.vbMonday) As Date
    ' ------------------------------------------------------
    ' Restituisce l'ultimo gg della settimana passando la Data
    ' ------------------------------------------------------
    If IsMissing(dtmDate) Then dtmDate = Date

    LastDayInWeek = Fix(dtmDate - Weekday(dtmDate, vFirstDayInWeek) + 7)
   
End Function

Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
chiarava79 View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 29/Dic/2017
Status: Offline
Points: 225
Post Options Post Options   Thanks (0) Thanks(0)   Quote chiarava79 Quote  Post ReplyReply Direct Link To This Post Posted: 12/Feb/2019 at 17:01
Ti ringrazio molto ma credo di essermi spiegata male.... io vorrei che ogni qualvola che apro la query, mi vengano filtrate le date della settimana precedente e quelle della settimana attuale, senza che debba inserire la data della settimana

In pratica, dovrebbe essere eseguito il filtro a seconda della settimana in cui si visualizza la query senza che debba inserire la data d'inizio e fine settimana

Vi faccio un esempio:

Se nel campo data ho le seguenti date

01/02/2019
05/02/2019
11/02/2019

Nel caso in cui apra la query che prevede di filtrare le date della settimana precedente, l'unica data che dovrà apparire sarà 05/02/2019
essendo questa settimana compresa tra il 11/02/2019 al 17/02/2019

Se visualizzassi la stessa query il giorno 20/02/2019, dovrei visualizzare la data 11/02/2019
  
Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Online
Points: 5521
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 12/Feb/2019 at 19:27
Ti eri spiegata benissimo... forse io no...? Ti ho suggerito le funzioni da usare per sviluppare il problema in cosa non ti è chiaro...?

Matematicamente la cosa è Banale non credi... se oggi(12/02/2019) siamo in settimana [7] vuoi vedere tutto quello che è in settimana 6 ed 8..., dove 6 ed 8 però in realtà sono [Week(Oggi)]-1 e [Week(Oggi)]+1 così sono dinamici... oppure sbaglio...?

Come si fa ad ottenere questo complesso criterio di Filtro...?
Calcolo la Settimana di Oggi e la sottraggo alla Settimana della Data del Record e, se è 1 in valore assoluto significa che la data rientra nel criterio che hai esposto...!

Crei una Query e scrivi nel Criteio:
ABS(Date2Week(NomeCampoData)-Date2Week())=1

Questa la funzione da mettere in un MODULO:
Public Function Date2Week(Optional ByVal dtmDate As Variant) As Byte
    ' ------------------------------------------------------
    ' Calcolo formato ISO 8601:1988 standard
    ' Verificati i casi da KB [OK]
    ' https://support.microsoft.com/it-it/kb/200299
    ' ------------------------------------------------------
    Dim ret              As Byte
    If IsMissing(dtmDate) Then dtmDate = Date
   
    ret = Format(dtmDate, "ww", vbMonday, vbFirstFourDays)
    If ret > 52 Then
      If Format(dtmDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then ret = 1
    End If
    Date2Week = ret
End Function

Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
chiarava79 View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 29/Dic/2017
Status: Offline
Points: 225
Post Options Post Options   Thanks (0) Thanks(0)   Quote chiarava79 Quote  Post ReplyReply Direct Link To This Post Posted: 12/Feb/2019 at 21:09
Ti ringrazio..... ora forse ho capito cosa volevi dire... dico forse perchè ho un mal di testa che mi sta tormentando e per tanto non sono molto concentrata.

Un'informazione se posso... mi viene evidenziata in giallo il codice

"ret = Format(dtmDate, "ww", vbMonday, vbFirstFourDays)"

e sinceramente non so come fare.....

grazie molte
Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Online
Points: 5521
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 12/Feb/2019 at 21:52
Probabilmente hai dei riferimenti mancanti nelle librerie... spesso sono aggiunti in modo inconsapevole e non rimossi...
Se apri da vbeditor i riferimenti diversi vedere se qualcuno è marcato con Manca...
Se non serve, devi saperlo tu in base allo sviluppo, lo puoi rimuovere... se serve devi chiederti perché non sia corretto ed aggiornarlo.
Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
chiarava79 View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 29/Dic/2017
Status: Offline
Points: 225
Post Options Post Options   Thanks (0) Thanks(0)   Quote chiarava79 Quote  Post ReplyReply Direct Link To This Post Posted: 12/Feb/2019 at 22:12
Ho controllato e sebbene ce ne siano moltissimi non selezionati, in nessuno c'è scritto manca.
Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Online
Points: 5521
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 12/Feb/2019 at 22:23
In realtà ne bastano 4... quelli giusti...
Per il resto devi fare Debug del codice... la funzione non ha alcun problema.
Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
chiarava79 View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 29/Dic/2017
Status: Offline
Points: 225
Post Options Post Options   Thanks (0) Thanks(0)   Quote chiarava79 Quote  Post ReplyReply Direct Link To This Post Posted: 12/Feb/2019 at 22:33
Mi potresti dire quali devono essere selezionati?
Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Online
Points: 5521
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 12/Feb/2019 at 22:49
Facciamo che ci elenchi tu quelli che hai selezionato...
Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
 Post Reply Post Reply Page  12>
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,047 seconds.