Ehilà
Sulla base del codice fornito, sembra che l'errore si verifichi specificamente sulla riga: "Dim WithEvents TimerEvent As Timer". Il motivo di questo errore è che l'oggetto "Timer" non è direttamente disponibile in Microsoft Access come in alcuni altri ambienti di programmazione.
Per ottenere la funzionalità desiderata, è possibile utilizzare un approccio diverso utilizzando un evento modulo basato su timer anziché WithEvents.
Seguire i passaggi rivisti di seguito per implementare la funzionalità timer senza la dichiarazione WithEvents:
- Aprire il database di Microsoft Access in visualizzazione Progettazione.
- Crea un nuovo modulo (se non l'hai già fatto) andando alla scheda "Crea" e selezionando "Design modulo".
- Aggiungere un controllo Timer al form:
- Vai alla scheda "Progettazione" e fai clic su "Toolbox" per aprire il riquadro della casella degli strumenti.
- Scorri verso il basso e trova "Timer" nei controlli disponibili.
- Fare clic e trascinare il controllo "Timer" sul modulo. Verrà creato un controllo timer denominato "Timer0".
- Impostare la proprietà TimerInterval del controllo Timer su 900000 (15 minuti in millisecondi):
- Con il modulo aperto nella visualizzazione Progettazione, selezionare il controllo Timer (Timer0) nel modulo.
- Nel riquadro Finestra delle proprietà, individuare la proprietà "TimerInterval".
- Immettere il valore "900000" (ovvero 15 minuti in millisecondi) per TimerInterval.
- Aggiungi il codice evento Timer per eseguire la subroutine:
Fare doppio clic sul controllo Timer (Timer0) per aprire la finestra del codice VBA.
Aggiungere il codice riportato di seguito alla routine evento Timer:
Sub privato Timer0_Timer()
' Run the subroutine you want every 15 minutes here
' Replace 'NameSubroutine' with the real name of your subroutine
Nome chiamataSubroutine
Fine sub
- Salvare il modulo con un nome appropriato (ad esempio, "frmTimer").
- Nel database di Access, creare un nuovo modulo o utilizzarne uno esistente per memorizzare le funzioni StartTimer e StopTimer. Modificare il codice come segue:
Public frmTimerInstance As Form
Public Sub StartTimer()
Se frmTimerInstance non è nulla, allora
Imposta frmTimerInstance = Nuovo Form_frmTimer
Fine Se
frmTimerInstance.Timer0.Enabled = True
Fine sub
Public Sub StopTimer()
Se non frmTimerInstance non è nulla, allora
frmTimerInstance.Timer0.Enabled = False
Set frmTimerInstance = Nothing
Fine Se
Fine sub
Ora è possibile avviare il timer ed eseguire la subroutine ogni 15 minuti chiamando la routine StartTimer ed è possibile arrestare il timer utilizzando la procedura StopTimer.
Se riscontri ulteriori problemi o hai domande, non esitare a contattarci. Sono qui per aiutarti.
Migliori saluti
Ivan
Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.