Newsgroup: it.comp.lang.visual-basic
Titolo: Date e Scadenze?

Buongiorno a tutti voi,
mi trovo davanti un quesito al quale non riesco a dare risposta, se non 
altro come
impostazione di una funzione. E' proprio fuori dalla mia zucca e ci sbatto 
da due giorni.
Ho un database con un campo in formato data in cui scrivo la scadenza di un 
abbonamento,
che supponiamo sia 7/02/2010.
Bene. A questo punto, una funzioncina, dovrebbe avvisarmi 20 o 30 giorni 
prima
della naturale scadenza annuale, da qui al 2010.
Ho provato con dateadd ad aggiungere 20 o 30 gg alla data odierna,
per regolamentare i tempi di avviso, ma il resto è buio.
Qualcuno che sa darmi un'idea, un aiuto, una funzione, un programma, la 
microzozz...
e che ne so... ;-))))))))
Grazie a tutti
Marcella


Pianifichi ogni giorno (operazioni pianificate nel pannello di controllo) 
l'esecuzione di un programmino VB che fa una query sul DB che ritorna tutti 
gli abbonamenti che scadono fra esattamente 20 o 30 giorni (...WHERE 
dtScadenza=dateadd(day,20,GetDate()) o qualcosa di simile). Se ne trova ti 
avvisa, per esempio inviando una email (trovi esempi nel sito comune) con 
l'elenco oppure con una msgbox, altrimenti si limita a scrivere su qualche 
file di log che la verifica è stata eseguita.
Ciao
Elef. 

 ha scritto nel messaggio 
news:O97Ye.39087$nT3....@tornado.fastwebnet.it...

Grazie Elef per il tempestivo aiuto! Ma credo di essermi spiegata malino!
Supponendo che il contratto scada il 20/10/ 2010, dal 2005 al 2010, il 
programma
dovrebbe avvisarmi il 3/10/2006 il 3/10/2007 il 3/10 2008 e così via...
Non credo sia la stessa cosa.
Grazie e scusa la scarsa chiarezza. 

 Marcella
Prego!

 Non credo sia la stessa cosa.
io credo di si sai....
perchč alla fin fine io credo che sarai stata (tu o chi ha fatto l'analisi
del problema e pianificato il db) previdente
Se io pianifico la memorizzazione di un contratto
avrň 2 campi
DATADISTIPULA
DATADISCADENZA
ora...datadistipula č intoccabile finchč non cancello il contratto
dall'archivio!
Ma l'altro quando registri il pagamento o quant'altro lo dovresti aggiornare
alla nuova scadenza!
e guarda caso DATEADD ti puň aggiungere anche un anno!
Non avrai mica una sola data???

 Non avrai mica una sola data???
Anche perchè un  cliente può chiedere di prorogare per soli 6 mesi (ad
esempio perchè cessa l'attività)
o pagare in anticipo per più anni...o mille altre eccezioni!

 Non avrai mica una sola data???
Nooooooooo...certo che ne ho due!!! ;-)
Ho inserito quella distipula e quella di scadenza.
A questo unto, mi pare di aver capito che suggerite di prendere come valore
quella di stipula, aggiungere un anno con dateadd e regolamentare l'avviso
secondo un criterio di anticipo predefinito...
Sono totalmente cucuzza o ho capito il concetto? -P
Marcella
(Che ringrazia!) 

 o pagare in anticipo per piů anni...o mille altre eccezioni!
e dagli...stamani scrivo a singhiozzo!
Anche perchč a mia esperienza le proroghe automatiche si accordano bene a 1
cliente su 10
il mondo č pieno di eccezioni!
Alla fine la cosa piů pratica č stata(per chi usa i miei prog):
-) Il pc avverte
-) La segretaria controlla...emette avviso di pagamento
-) Quando registra il pagamento o comunque conferma la proroga...appare il
default ...ossia il calcolo automatico
ma anche un pulsantino....se lo preme appare un calendario...da oggi in
poi...dove clicca la nuova data di scadenza...
Alla fine č la cosa piů pratica!
Non farti fuorviare dal fatto che ci possono essere migliaia di
abbonamenti...
faccio l'esempio di un periodico
se decido di passare da un abbonamento da 12 a 6 mesi faccio in 2 modi
-) Chiamo un num telefonico...e mi risponde un call center che fa quanto
sopra
-) Invio la cedolina con barrata la casella "6 mesi"....uno scanner fa il
lavoro di sopra!
tutte le infinite variazioni (bollettino con causale "cambio da 12 a 6
mesi") prevedono comunque che qualcuno/qualcosa lo legga e  passi al pc!
Basta ora ho detto tutto!

 (Che ringrazia!)


... WHERE
DateAdd(Day,-20,Dateserial(year(Date()),Month(Scadenza),Day(scadenza)))=Date()
 and
datediff(day,date,scadenza)>0
in pratica ti costruisci la data da confrontare (20/10/ ANNO_CORRENTE) 
sostituendo nella 20/10/ 2010 l'anno 2010 con quello attuale, poi gli levi 
20 (o 17?) giorni e lo confronti alla data corrente. La seconda condizione 
evita di estrarre abbonamenti già scaduti.
Ciao
Elef 

 Spero per te che tu non le debba gestire!
Debbo sottolineare che sei fantastico...eh si, fantastico perchč da una 
domanda
hai spaziato in maniera splendida dandomi anche soluzioni non previste.
Devo dirti comunque che il problema č piů semplice e le date diiscrizione
e contratto devono coincidere. Parlo di locazione immobili.
Di un tizio cioč  che affitta 3 immobili e ne vorrebbe controllare
ogni anno la scadenza appunto annuale per aumentare il canone secondo
istat.
Ergo, se costui stipula dal 10/10/2005 al 10/10/2013, ogni anno
20/30 giorni prima della fine dell'anno (contrattuale) il sw fa una 
scansione
e propone chi deve subire l'aggiornamento istat.
Spero adesso di essere stata meno contorta!
Graziee...