PDA

Visualizza versione completa : avvisi di scadenza.


aleocel
19-10-2005, 11.05.51
Come si fa a fare in modo che il computer avvisi l'utente di una scadenza vicina con VBA (es. creare un db con access e, un giorno prima della scadenza, essere avvertiti con un messaggio)?

Thor
19-10-2005, 11.39.27
ciao aleocel.

per favore, non aprire lo stesso thread in più sezioni. ho dovuto cancellarti quello (identico) in "office suite"

grazie

aleocel
19-10-2005, 11.45.51
Scusa Thor, ti ho appena mandato un msg per cancellare il thread su visual basic perchè pensavo fosse il posto sbagliato dove metterlo... e lasciarlo su office, poi sono tornato qui ed ho visto che avevi gia cancellato quello su office. Ti prego, lascialo da qualche parte, dove pensi sia più opportuno, Grazie.

LoryOne
19-10-2005, 13.57.36
Prima di tutto ti serve una funzione che:
1 - Effettui la differenza in giorni tra la data di scadenza e quella odierna
Ovviamente se il valore=1, è ora di mostrare il messaggio
2 - Pensare quando e come effettuare iul controllo al punto 1:
Es:
Il controllo si effettua all'avvio del programma
Il controllo si effettua ogni x secondi/minuti/ore

aleocel
19-10-2005, 15.24.53
se il controllo si dovesse effettuare ogni tot tempo, come faccio a far uscire il messaggio se Access è chiuso? Da un'altra parte mi hanno detto che devo usare un file vbs, ma non so come si fa (e mi vergogno a chiederlo...) Grazie e ciao

LoryOne
19-10-2005, 15.59.32
VBS sta per Visual Basic Scripting.
Per poterlo utilizzare devi avere l'Host VBS attivato sulla tua macchina, altrimenti niente codice VBS.
Su quale S.O. intendi operare e a quali S.O. è destinato il tuo messaggio ?

La soluzione è utilizzare il servizio di messaggistica istantaneo di Windows XP o in alternativa le mailslots sul S.O. diversi da XP/2000/NT.
Tutti i S.O. di mamma M$ possono ricevere/spedire messaggi, purchè il servizio sia attivato.

98 e ME hanno winpopup, XP si avvantaggia di un servizio da attivare sia sulla macchina che spedisce il messagio, sia su quella che la riceve.

Sempre e comunque deve essere attivo un software in "ascolto"/"invio" su una porta adibita.

Interessante il discorso VBS.
Vedi se riesci a farti dare il codice e poi postalo se ti va. :)

Ps:

aleocel
20-10-2005, 08.32.52
Mi è stato spedito questo codice, non l'ho ancora provato, guarda un po' se ti dice qualcosa:

>>>> oppure lo fai con vbs e quindi lavori anche ad access chiuso
>>>>
>>
>> In un vecchio post di Giorgio
>> Dim T1
>> T1=Timer
>>
>> DO
>>
>> If T1+3600*8 < Timer Then exit Do ' Dopo otto ore esce dal loop
>>
>> Set Rs = Db.OpenRecordset("Select * From Scadenze Where
>> Scadenza=CvDate('" & Now & "')"
>>
>> If Rs.bof=false Then
>> MsgBox "Attenzione rilevate scadenze in data " & Now
>> 'Poi fai quello che vuoi
>> End If
>>
>> Wscript.Sleep(60000) ' Attesa di un minuto
>>
>> LOOP
>>
>> Lo metti in un file vbs
>> una volta lanciato fa tutto lui

Non mi sembra che ci entri molto con il discorso della messaggistica che mi facevi, però mi interessa molto anche quella; ho xp professional e le macchine a cui inviare i messaggi hanno su anche loro xp prof. (Però da un'altra parte ho ancora il '98).
Ciao e fammi sapere qlcs

LoryOne
20-10-2005, 16.05.54
Non saprei.
Ad una prima occhiata non ti funziona perchè è incompleto.
Poi verifica solo se il campo Scadenza contiene una data pari a quella odierna e a te serve impostare quanti giorni prima della scadenza deve essere visualizzato il messaggio.
Non capisco il DO LOOP con uno Sleep nel mezzo.

Il discorso messaggistica che facevo io riguardava l'invio di un messaggio di scadenza in rete, non sul computer locale.
(Probabilmente ho frainteso)

aleocel
21-10-2005, 08.58.28
Che cosa manca per completarlo? la connessione al db? basta quella?
Lo sleep suppongo che serva per fare il controllo delle date ogni minuto.

aleocel
21-10-2005, 09.00.01
La messaggistica in rete non può essere integrata a questo script?