Ich versuche, die DB zu schließen, nachdem 2 Minuten vergangen sind (zu Testzwecken mache ich gerade eine MsgBox
erscheinen nach den 2 Minuten). Um dies zu tun, habe ich ein Hauptformular namens DTForm
und eine versteckte Form namens Timer
. Beide Formulare öffnen beim Öffnen des DB, aber Timer
öffnet sich im versteckten Modus.Access VBA: Form Timer zeigt MsgBox zur geplanten Zeit
AutoExec Macro:
1. Open DTForm (the main form)
2. Open Timer (the hidden form)
Modul 1:
Option Compare Database
Option Explicit
Public timer_start As Date
Public timer_end As Date
Public timer_diff As Integer
DTFORM (Benutzer nur dieses Formular sehen)
Option Compare Database
Option Explicit
Public Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
timer_start = Time
timer_end = DateAdd("n", 2, timer_start)
End Sub
Timer (die versteckte Form):
Option Compare Database
Option Explicit
Public Sub Form_Open(Cancel As Integer)
timer_start = Time
timer_end = DateAdd("n", 2, Time)
End Sub
Public Sub Form_Load()
timer_start = Time
timer_end = DateAdd("n", 2, Time)
End Sub
Public Sub Form_Timer()
timer_diff = DateDiff("n", timer_end, Time)
If timer_diff >= 0 Then
'Application.Quit
MsgBox "timer reached 0"
timer_start = Time
timer_end = DateAdd("n", 2, Time)
End If
End Sub
Update - das Problem: So, jetzt das Problem ist die Maus. Es sieht so aus, als würde nur die Maus um das Formular bewegt werden. Allerdings, bewegt die Maus aus dem Navigationsbereich in das Formular und zurück (rein und raus) löst die Mausbewegung aus. Das erscheint wirklich kontraintuitiv - warum nicht alle Mausbewegungen berücksichtigen?
Anmerkungen: Hinzugefügt Option Explicit
zu den Oberseiten beider Formen und reparierte einige fehlende variable Deklarationen.
application.OnTime könnte besser für Sie arbeiten? Oder konnten Sie die DB-Verbindung nicht nach 2 Minuten ohne Zeitüberschreitung einrichten? –
Wie lautet die Timer-Eigenschaft Ihres Formulars? Was ist timer_start? Du hast es nirgendwo definiert. Fügen Sie oben die Option Explicit hinzu - deklarieren Sie dann alle von Ihnen verwendeten Variablen. Wenn Sie einen Variablenwert über Ereignisse hinweg verfolgen wollen, müssen Sie ihn oben deklarieren - vor allem Subs – dbmitch
@CodyG. Ich brauche die ganze DB um zu schließen. – whatwhatwhat