Newsgroup: it.comp.appl.access
Titolo: Date e settimane dell'anno...al cinema!

Ho una base dati composta da tutti i film che mi interessano con indicate le 
date in cui sono usciti o usciranno al cinema. Adesso vorrei impostare una 
maschera con 4 sottomaschere in ognuna delle quali sono presenti i film 
rispettivamente della settimana attuale, la prossima, quella successiva e 
quella ancora dopo. Per fare ciò ho pensato di creare 4 query sulle quali 
basare ognuna delle mie sottomaschere. Inoltre, nella maschera principale, 
dovrà essere presente, per ognuna delle 4 settimane, la data del venerdì 
relativo (giorno in cui escono solitamente i film nelle sale).
In poche parole la mascherà definitiva indicherà, per esempio:
__________________________________________________________________________
22 settembre
lista dei film che escono nella settimana di venerdì 22/09
29 settembre
lista dei film che escono nella settimana di venerdì 29/09
06 ottobre
lista dei film che escono nella settimana di venerdì 06/10
13 ottobre
lista dei film che escono nella settimana di venerdì 13/10
__________________________________________________________________________
Ho provato a creare le 4 query per le sottomaschere impostando dei criteri 
con le varie funzioni delle date ma non ci sono riuscito. Ho trovato anche 
una funzione che sarebbe potuta risultare utile, num.settimana, ma non sono 
stato capace di utilizzarla. Come posso fare?
Inoltre nella maschera principale, come fare in modo che vengano 
visualizzate le 4 intestazioni dei giorni (corrispondenti ai venerdì)?
Grazie mille

 ha scritto nel messaggio 
news:5izQg.3105$AK3....@tornado.fastwebnet.it...

questa è una soluzione...
maschera con 4 sottomaschere(maschera1, maschera2...)
nel form_load della maschera principale ci metti sta roba:
Private Sub Form_Load()
    'oggi_data contiene la data odierna
    'oggi_giorno contiene il giorno della settimana:1=domenica, 2=lunedi ecc 
(è in americano...)
    'maschera1 ... 4 sono le 4 maschere inserite come sottomaschere
    'maschera1_etichetta... sono le etichette attaccate alle maschere quando 
crei la sottomaschera
    Dim oggi_data As Date
    Dim oggi_giorno As Integer
    oggi_data = Date
    oggi_giorno_sett = Weekday(oggi_data)
    'facendo la differenza tra la costante del giorno e il numero del giorno 
troviquanto sommare
    'alla data odierna per trovare i venerdi...
    Maschera1_Etichetta.Caption = oggi_data + (6 - oggi_giorno_sett)
    Maschera2_Etichetta.Caption = oggi_data + (13 - oggi_giorno_sett)
    Maschera3_Etichetta.Caption = oggi_data + (20 - oggi_giorno_sett)
    Maschera4_Etichetta.Caption = oggi_data + (27 - oggi_giorno_sett)
End Sub
per le query i giorni adesso li hai...[oggi_data+ (6 - oggi_giorno_sett)]
non ti resta che trovare i dati...
(non so come hai la/e tabella/e
impostando la sorgente dati della maschera prima della end sub:
che se non vado errato è:
Maschera1.Form.RecordSource="SELECT campi FROM tabella WHERE 
campo_con_data=#" & oggi_data+ (6 - oggi_giorno_sett)] & "#"
Maschera1.Form.RecordSource="SELECT campi FROM tabella WHERE 
campo_con_data=#" & oggi_data+ (13 - oggi_giorno_sett)] & "#"
Maschera1.Form.RecordSource="SELECT campi FROM tabella WHERE 
campo_con_data=#" & oggi_data+ (20 - oggi_giorno_sett)] & "#"
Maschera1.Form.RecordSource="SELECT campi FROM tabella WHERE 
campo_con_data=#" & oggi_data+ (27- oggi_giorno_sett)] & "#"
ma questo non lo ho provato (ma stava fatica creare tutti i film...)
i giorni funzionano
prova...
ciao
nik 

 ha scritto nel messaggio
news:5izQg.3105$AK3....@tornado.fastwebnet.it...



Mi pare di capire che tu sia un maschio, peccato, se eri femmina un
bacio in bocca di 4 ore circa non te lo levava nessuno!
GRAZIEEEEEEEEEEEEEE!!!!!!!!!!!!!!
(PS. Spero di riuscire ad inserirlo nel mio DB, dovessi avere qualche
difficoltà, dopo ore passate sui libri a cercare qualche soluzione
inutilmente, mi permetterò di disturbarti ancor.
Speriamo non accada!
^_*
leev

il grazie basta... grazie...

Aiutoooooooo Nicola, mi spiace ma ho ancora bisogno!
Premetto che tutto quello che mi hai dato era tutto funzionante e mi è
stato di grande aiuto per comprendere molte cose che non sapevo,...se
non chè con il tuo metodo venivano elencati tutti i film che uscivano
giustamente il venerdì, però se un film veniva posticipato o
anticipato di qualche giorno non compariva.
Allorchè mi sono cimentato nella ricerca della soluzione. Niente di
più semplice, i miei 4 recordset, corrispondenti alle 4 settimane, li
avrei creati con between aggiungendo un -4 (arrivando così al lunedì
precedente) ed un +2 (arrivando così alla domenica successiva) alle
date per poter visualizzare tutti i film all'interno della settimana
che include il venerdì considerato. Non funzionava, allora ho
semplificato per vedere cosa non andasse (da inesperto avrei anche
potuto aver commesso errori nella sintassi).
Ho lasciato il between ma ho messo la medesima data prima e dopo di
esso in questo modo:
sfrmSettimana1.Form.RecordSource = "SELECT tblFilm.TitoloFilm,
tblFilm.DataUscita FROM tblFilm WHERE tblFilm.DataUscita Between #" &
oggi_data + (6 - oggi_giorno) & "#" & " And " & "#" & oggi_data + (6 -
oggi_giorno) & "# ORDER BY tblFilm.DataUscita"
sfrmSettimana2.Form.RecordSource = "SELECT tblFilm.TitoloFilm,
tblFilm.DataUscita FROM tblFilm WHERE tblFilm.DataUscita Between #" &
oggi_data + (13 - oggi_giorno) & "#" & " And " & "#" & oggi_data + (13
- oggi_giorno) & "# ORDER BY tblFilm.DataUscita"
sfrmSettimana3.Form.RecordSource = "SELECT tblFilm.TitoloFilm,
tblFilm.DataUscita FROM tblFilm WHERE tblFilm.DataUscita Between #" &
oggi_data + (20 - oggi_giorno) & "#" & " And " & "#" & oggi_data + (20
- oggi_giorno) & "# ORDER BY tblFilm.DataUscita"
sfrmSettimana4.Form.RecordSource = "SELECT tblFilm.TitoloFilm,
tblFilm.DataUscita FROM tblFilm WHERE tblFilm.DataUscita Between #" &
oggi_data + (27 - oggi_giorno) & "#" & " And " & "#" & oggi_data + (27
- oggi_giorno) & "# ORDER BY tblFilm.DataUscita"
Oggi che è il 23 ottobre in teoria dovrei vedere i film
rispettivamente delle settimane corrispondenti ai venerdì 22 e 29
settembre e 6 e 13 ottobre.
Ebbene vedo le prime due e l'ultima settimana ma non vedo i film del 6
ottobre (e ti garantisco che ci sono!).
Inoltre ho notato che nel campo dati delle sottomaschere di ogni
settimana si forma la query "imposta" dal VBA. Ebbene, le date
risultanti in queste query sono, nell'ordine, le seguenti:
Between #9/22/2006# And #9/29/2006#
Between #9/29/2006# And #6/10/2006#
Between #6/10/2006# And #6/10/2006#
Between #10/13/2006# And #10/13/2006#
Ma che succede?
Perchè, per esempio nel primo caso qui vedo dal 22 al 29 e invece i
film poi risultanto esattamente solo del 22?
Nella seconda settimana forse access fa confusione fra date americane
ed europee?
Non so se senza DB riuscirai a dirmi qualcosa, a me pare proprio un
mistero.
Nel caso lo avessi bisogno il DB è di 7,2 MB regolati tu sul da farsi,
ma ti prego, aiutami perchè sono in alto mare!
Ti prometto che non ti bacerò neanche stavolta    ^_^

 ha scritto nel messaggio
news:1159022642....@b28g2000cwb.googlegroups.com...
Inoltre ho notato che nel campo dati delle sottomaschere di ogni
settimana si forma la query "imposta" dal VBA. Ebbene, le date
risultanti in queste query sono, nell'ordine, le seguenti:
Between #9/22/2006# And #9/29/2006#
Between #9/29/2006# And #6/10/2006#
Between #6/10/2006# And #6/10/2006#
Between #10/13/2006# And #10/13/2006#
Ma che succede?
Perchè, per esempio nel primo caso qui vedo dal 22 al 29 e invece i
film poi risultanto esattamente solo del 22?
Nella seconda settimana forse access fa confusione fra date americane
ed europee?
Non so se senza DB riuscirai a dirmi qualcosa, a me pare proprio un
mistero.
Nel caso lo avessi bisogno il DB è di 7,2 MB regolati tu sul da farsi,
ma ti prego, aiutami perchè sono in alto mare!
Ti prometto che non ti bacerò neanche stavolta    ^_^
[risposta]
penso che il problema possa essere nel formato delle date.
tu ovviamente sai che le date vengono memorizzate nel formato americano
mm/dd/yyyy
mentre il dato è passato in italiano dd/mm/yyyy
in questo caso per farglielo interpretare bene potresti provare a
passarglielo in americano con la funzione Format
vedi l'help per chiarimenti ma in sostanza
Format((oggi_data + (6 - oggi_giorno) ),"dd/mm/yyyy")
vedi se funzia meglio...
Ciao
Nik

 Nik
Grazie di tutto.
Smanettando un po' ho trovato una soluzione, diciamo, alternativa,
cioè ho usato le funzioni da te proposte direttamente in access,
anzichè nel VB, che per me è ancora un po' complicato ed ho ottenuto
il tuo stesso risultato, senza i problemi della formattazione delle
date.
Così sono riuscito ad ottenere ciò che volevo (lungi dal significare
DB terminato!!!) e, quel che più conta, ho imparato un sacco di
cosette interessanti.
Grazie Nicola!

Così sono riuscito ad ottenere ciò che volevo (lungi dal significare
DB terminato!!!) e, quel che più conta, ho imparato un sacco di
cosette interessanti.
Grazie Nicola!
Prego. Buon lavoro
Nik