Buona giornata a tutti, volevo chiedere un consiglio su una sub che dovrebbe servire a chiudere una maschera ed aprire un'altra ad orari stabiliti ma solo se è stato scelto SI da un Msgbox.
Spiego meglio il mio problema. Ho provato a codificare questa sub in questo modo sull'evento Timer:
Private Sub Form_Timer()
Dim i As String, ora As Variant
ora = Time
If ora = #7:00:00 AM# Then
If ora = #2:00:00 PM# Then
If ora = #10:00:00 PM# Then
i = MsgBox("L'OPERATORE " & etiOP.Caption & " E' ATTUALMENTE COLLEGATO." & vbCrLf & "SI DESIDERA EFFETTUARE IL LOGOUT?", vbYesNo, "CONTROLLO ACCESSO")
If i = vbYes Then
DoCmd.Close acForm, Me.name
DoCmd.OpenForm "m_operatore"
Else
Exit Sub
End If
End If
End Sub
Su Intervallo Timer ho messo 1000. Adesso i problemi sono 2.
1° problema) Così com'è codificato non può funzionare perché dato che l'Intervallo Timer effettua un controllo ad ogni secondo e alla variabile "ora" ho scelto che l'orario di confronto con la funzione "Time" deve essere UGUALE a quella scelta da me, chiaramente appena sono le ore 07:00:00 del mattino la sub non si avvia perché trascorre quel secondo. Invece se la modifico inserendo accanto all'uguale il simbolo di maggiore (">"):
.......................................
If ora >= #7:00:00 AM# Then
If ora >= #2:00:00 PM# Then
If ora >= #10:00:00 PM# Then
..............................................
la sub funziona ma non in modo corretto, perché chiaramente in questo caso tutti gli orari maggiori o uguali alle 07:00, alle 14:00 e alle 22:00 sono validi, invece io devo fare in modo che il confronto lo deve avere solo se gli orari sono UGUALI a quelli prestabiliti.
2° problema) Come spero si capisca, questa sub fa in modo che agli orari prestabiliti compare un Msgbox che mi da due scelte. Adesso, se scegliessi SI una maschera si chiude e un'altra si apre (così com'è indicato). Ma se scegliessi NO, avendo messo 1000 all'Intervallo Timer, ad ogni secondo mi viene riproposto il messaggio. Io invece vorrei che se scegliessi NO allora il messaggio scompaia e al successivo orario prestabilito compaia nuovamente e così via all'infinito.
Spero di essermi spiegato bene e che qualcuno mi possa aiutare.
Grazie.