Newsgroup: it.comp.appl.access
Titolo: Avvisi su scadenze fisse

Ciao a tutti. Dovendo nel mio ufficio svolgere delle statistiche,
vorrei che all'avvicinarsi della scadenza l'operatore fosse avvisato
della prossima fine periodo e si attivasse di conseguenza.
Avevo pensato a delle etichette ma quello che assolutamente non riesco
a fare è legare l'apparizione delle etichette di avviso alle scadenze
temporali trimestrali/quadrimestrali/semestrali.
E' possibile impostare una routine in tal senso?
Un grazie a chi vorrà aiutarmi.

 ha scritto nel messaggio 
news:1174266483.4...@l75g2000hse.googlegroups.com...

Certo che si può.
Il mio consiglio è di far partire la routine di verifica ad ogni nuova 
apertura del db.
Per esempio se mi interessa vedere la scadenza di un prodotto e mostrare un 
messaggio almeno 30 gg prima della scadenza stessa, con una semplice query 
mi ricerco la data di scadenza - 30 di/degli articoli e la confronto con la 
data attuale; se il risultato è maggiore di data attuale mostro una msgbox 
con l'avviso oppure apro, previo messaggio, una maschera con l'elenco degli 
articoli in scadenza.
Lo stesso si può fare per i valori sottoscorta o con qualunque altro limite 
temporale come scadenze trimestrali.
Ciao, Carlo 

 ha scritto nel messaggionews:1174266483.4...@l75g2000hse.googlegroups.com...

Grazie Carlo, proverò a mettere in pratica i tuoi consigli, se dovessi
incontrare difficoltà chiederò ancora.
Un saluto, Marco.

 - Mostra testo tra virgolette -
Non ci riesco, forse quello che mi complica il tutto è che le scadenze
sono cicliche, e che quindi si dovrebbero ripetere ad ogni scadenza
trimestre anno dopo anno.
Non esiste in VBA il modo per, stabilite delle date fisse (es 01/04 o
01/07 o 01/10 o 01/01) - 5gg di qualsiavoglia anno, far partire la
routine?
Ho provato a vedere nell'help DateSerial e DateValue ma non ho capito
ne se, ne come dovrei impiegarle in questo caso.
Un saluto.

 ha scritto nel messaggio 
news:1174388847....@y80g2000hsf.googlegroups.com...
cut
Non ci riesco, forse quello che mi complica il tutto è che le scadenze
sono cicliche, e che quindi si dovrebbero ripetere ad ogni scadenza
trimestre anno dopo anno.
Non esiste in VBA il modo per, stabilite delle date fisse (es 01/04 o
01/07 o 01/10 o 01/01) - 5gg di qualsiavoglia anno, far partire la
routine?
Ho provato a vedere nell'help DateSerial e DateValue ma non ho capito
ne se, ne come dovrei impiegarle in questo caso.
Un saluto.
-----------------------
Certo che si può.
Ci possono essere molte strade quale l'uso di tabelle o il codice.
Se usi la tabella metterai i campi ID(contatore), TipoScadenza (testo), 
DataScadenza(testo), con questi record:
ID = 1    TipoScadenza = Trimestrale    DataScadenza = 31/03
ID = 2    TipoScadenza = Semestrale    DataScadenza = 30/06
ecc.
Questo ti permette sempre di sapere di quale scadenza parliamo e, 
aggiungendo l'anno e sottraendo i famosi 30 gg, avrai anche la data a 
partire dalla quale mostrare l'avviso.
Altra strada è quella del codice.
Supponiamo che una scadenza semestrale sia il 30/giugno/2007.
In un modulo pubblico dichiara una variabile date:
Global ScadGiugno as date
Public sub ImpostaScadGiugno()
ScadGiugno = format("30/06/" & year(date),"dd/mm/yyyy")
End sub
Se per esempio all'apertura della maschera di avvio esegui:
Call ImpostaScadGiugno
otterrai sempre disponibile la tua data di giugno sulla quale potrai fare 
tutte le operazioni che vuoi:
p.e.: MiaData = ScadGiugno - 30
Così per tutte le altre scadenze.
Ciao, Carlo 

Carlo Costarella ha scritto:

Stamattina provo i tuoi suggerimenti Carlo. Grazie mille.

Carlo Costarella ha scritto:

Allora, ti dico cosa ho fatto:
Creato un nuovo modulo
Global ScadMarzo as date
Public sub ImpostaScadMarzo()
ScadMarzo = format("30/03/" & year(date),"dd/mm/yyyy")
End sub
Creata una etichetta (Promemoria) nella mia maschera di avvio
impostata a non visibile.
Nell'Open della maschera ho messo
Call ImpostaScadMarzo
If ScadMarzo - 10 <= Date Then
Me.Promemoria.Visible = True
Il risultato è che non mi si apre proprio la maschera di avvio :) Un
aiutino...?

 ha scritto nel messaggio 
news:1174475867.5...@n59g2000hsh.googlegroups.com...
cut
Allora, ti dico cosa ho fatto:
Creato un nuovo modulo
Global ScadMarzo as date
Public sub ImpostaScadMarzo()
ScadMarzo = format("30/03/" & year(date),"dd/mm/yyyy")
End sub
Creata una etichetta (Promemoria) nella mia maschera di avvio
impostata a non visibile.
Nell'Open della maschera ho messo
Call ImpostaScadMarzo
If ScadMarzo - 10 <= Date Then
Me.Promemoria.Visible = True
Il risultato è che non mi si apre proprio la maschera di avvio :) Un
aiutino...?
---------------------
Perchè su Apertura il codice ancora non conosce i controlli...
Metti su Sub Form_Load...
Ciao, Carlo 

 Ciao, Carlo
Aspetta che ho detto una stupidata...
Questi gli eventi che si susseguono all'apertura della maschera:
Apertura > Caricamento > Ridimensionamento > Attivazione > Corrente
Non vorrei che nel codice che hai postato manchi veramente l' end if:
Call ImpostaScadMarzo
If ScadMarzo - 10 <= Date Then
Me.Promemoria.Visible = True
qui manca End IF
Ancora. Non è che hai usato un cancel = true?
Inoltre l'etichetta Promemoria contiene qualcosa di scritto?...altrimenti è 
normale che non vedi nulla.
Fammi sapere.
Ciao, Carlo 

 ha scritto nel messaggionews:etral7$m3e$1...@tdi.cu.mi.it...

Mannaggia all'End If!!! Strano però che non mi mandi in debug...
Ora non ho sotto mano il DB, sicuramente non ho messo l'End If, appena
posso riprovo e ti faccio sapere.
Grazie 2000.

 > Fammi sapere.
Funziona Carlo, grazie ancora.

 Così per tutte le altre scadenze.
Ho parlato troppo presto...sto cercando di replicare il codice per
tutte le altre scadenze; nel dettaglio:
nello stesso modulo che ho creato per ScadMarzo con il codice
Global ScadMarzo as date
Public sub ImpostaScadMarzo()
ScadMarzo = format("31/03/" & year(date),"dd/mm/yyyy")
End sub
ho inserito
Global ScadGiugno as date
Public sub ImpostaScadGiugno()
ScadGiugno = format("30/06/" & year(date),"dd/mm/yyyy")
End sub
ripetendo il tutto per le altre due scadenze trimestrali.
Nell'open della maschera di avvio ho messo
Call ImpostaScadMarzo
If ScadMarzo = Date Then
DoCmd.OpenForm "Trim"       'ho deciso di mettere solo un avviso e di
utilizzare una maschera per questo
End If
Call ImpostaScadGiugno
If ScadGiugno = Date Then
DoCmd.OpenForm "Trim"
End If
anche qui ho ripetuto il codice per le altre due scadenze e ancora una
volta non mi si apre la mia maschera di avvio. Dove sto sbagliando?

T_A_O ha scritto:

Scusate se ripropongo il mio problema ma sono ad un punto fermo;
nonostante abbia fatto diversi tentativi non mi riesce di far
funzionare questa routine che mi sarebbe davvero utile.
Spero che Carlo o qualcun'altro mi dia una mano, da solo non ci riesco
proprio.
Un saluto, Marco.

 > Cosě per tutte le altre scadenze.

Trim č parola riservata per Access. Cambia questo nome.
Non č facile seguirti non avendo il db di fronte.
Metti dei punti di interruzione e segui il codice passo passo...muoviti poi 
con F8 e credo troverai il problema; togli anche tutti gli On error resume 
next.
Ciao, Carlo

 Ciao, Carlo
Ciao Carlo, sembra che a furia di prove sia riuscito a farlo
funzionare.
Ho aperto un nuovo modulo per ogni scadenza e con il codice che ho
postato sull'open della maschera gli avvisi ora mi compaiono.
Non so se sia giusta come procedura ma funziona.
Il codice è tale e quale a come l'ho postato, nessun On Error.
Un grazie di cuore per l'aiuto, Marco.