Su apertura del DB (nella maschera di login – che ribadisco è farlocca, non ha una vera utilità di sicurezza) verifico se l’ID dell’utente è uguale a quello che ho inserito in un campo di una tabella specifica (se non mi serve nessuno metto nel campo uno zero):
If Forms!frmLogin!cbxUtente.Column(0) = DLookup("IDUtente", "tblSistema") Then DoCmd.OpenForm "frmTimer", acNormal, , , , acHidden
Una volta caricata la form Timer, sull’evento SuTimer:
if MsgBox (“TESTO DEL MESSAGGIO” & vbNewLine & "Posso eliminare il messaggio?", vbYesNo + vbInfo, ”Avviso”= vbNo Then Exit Sub
Call EliminaTimer
La funzione richiamata (sta in un modulo, non nella form frmTimer):
DoCmd.Close, "frmTimer", acSaveYes ‘non si sa mai ci sia qualcosa da salvare
DoCmd.DeleteObject acForm, "frmTimer"
Non c’è tutta questa scienza informatica (che non ho).
Prima che si dica “non basta mandare una MsgBox a video?”: si, solo che dovrei ogni volta andarmi ad aprire il codice, cercar il punto e inserire la msgbox.
In questo modo ho su un DB a parte (insieme a vari “pezzi pronti" che uso spesso) la form timer, c'è un solo evento programmato su quella form quindi quando apro il codice sto già sul punto, cambio il testo del messaggio e copio la form intera nel DB.
Come detto, posso lasciarla tranquillamente li, non è un problema. E' solo quella cosa che risulta aperta anche se chiusa.
Perchè E' chiusa: ho fatto una prova mettendo un timer di 10 secondi e un messaggio. Se dopo un tot di volte premo un pulsante (su un'altra form) con il comando di chiusura della frmTimer, il messaggio non compare più (il che credo voglia dire che è chiusa….)