none
Access Formular nach Zeit schliessen RRS feed

  • Frage

  • Hallo,
    ich habe folgende Aufgabenstellung zu lösen.
    Ich benutze Access um nächtliche Auswertungen zu fahren. Dazu nutze ich die Option "Formular anzeigen" und öffne ein Formular. Dieses Formular hat Code beim Form_load hinterlegt. Nach Abarbeitung gibt es dann ein docmd.quit. Das funktioniert soweit sehr gut. Ich mache das über das Formular weil ich noch einige Anzeigen im Formular zur Kontrolle sehen möchte.

    Jetzt würde ich aber gerne die Möglichkeit haben, das das Startformular sich öffnet und ich eine Möglichkeit bekomme die Ausführung zu verhindern, oder wenn ich nicht eingreife der Code nach 10 Sekunden dann weiter läuft.

    ich habe schon diverse Ansätze versucht aber leider ohne Erfolg.
    Ein Ansatz von mir war, ein weiteres Formular zuerst zu öffnen und dort eine schleife zu durchlaufen, die einige Zeit in Anspruch nimmt, und dort ein Button zu haben um die Sub zu unterbrechen. Das scheitert aber daran das das Formular sich zwar öffnet aber ich nichts sehe, da es sich nicht aktualisiert.

    Private Sub Form_Load()
    Dim i  As Long
    Form.Visible = True
      For i = 1 To 10000
        Me.BezCounter.Caption = i
        Me.Refresh
      Next i
       
    DoCmd.Close

    End Sub

    hat jemand eine Idee wie ich das einfach und elegant lösen kann.

    Gruß
    Andreas

    Montag, 18. Juni 2018 09:50

Antworten

  • Schau mal im Designer des Formulars in den Eigenschaftsseiten im Register "Ereignis" nach "Bei Zeitgeber" und "Zeitgeberintervall".

    Das Intervall wird in Millisekunden angegeben, also bei 10000 wir das Ereignis nach 10 Sekunden ausgeführt.

    • Als Antwort vorgeschlagen Der Suchende Montag, 18. Juni 2018 10:35
    • Als Antwort markiert Andreas2805 Dienstag, 19. Juni 2018 06:50
    Montag, 18. Juni 2018 10:34

Alle Antworten

  • Schau mal im Designer des Formulars in den Eigenschaftsseiten im Register "Ereignis" nach "Bei Zeitgeber" und "Zeitgeberintervall".

    Das Intervall wird in Millisekunden angegeben, also bei 10000 wir das Ereignis nach 10 Sekunden ausgeführt.

    • Als Antwort vorgeschlagen Der Suchende Montag, 18. Juni 2018 10:35
    • Als Antwort markiert Andreas2805 Dienstag, 19. Juni 2018 06:50
    Montag, 18. Juni 2018 10:34
  • Super, das hat schon mal funktioniert.

    Jetzt habe ich aber noch ein Problem, vielleicht hast Du da auch eine Idee zu.

    ich öffne das Warte Formulau aus dem Startformular mit Call openWarteFrm,

    trotzdem läuft der Code im Startformular aber weiter, ich dachte, immer das wenn man ein Call öffnet dieser erst abgearbeitet würde.

    Gruß

    Andreas

     

    Montag, 18. Juni 2018 11:39
  • Dafür muss man ein Formular als Dialog "Modal" anzeigen. Dann hält die Ausführung an, bis das Formular geschlossen wird.
    https://support.office.com/de-de/article/modal-eigenschaft-gebunden-0b934d8c-b1af-4405-8808-3a61219c6d99

    Dies ist eine Eigenschaft des Formulars.

    Es ist auch ganz hilfreich, wenn man Dialoge öffnen möchte, die z.B. mit OK/Abbrechen bestätigt werden müssen bevor es weitergeht.

    PS:
    Wenn dir eine Antwort gefällt, markiere diese doch bitte als Antwort;-).


    • Bearbeitet Der Suchende Montag, 18. Juni 2018 12:51
    • Als Antwort vorgeschlagen Der Suchende Montag, 18. Juni 2018 12:51
    Montag, 18. Juni 2018 12:50
  • Vielen Dank, das hat mir sehr geholfen!
    Dienstag, 19. Juni 2018 06:50