PDA

Vollständige Version anzeigen : Sleep() oder Wait()


Ivo
25.06.2001, 13:17
Hallo,
hat jemand eine Idee wie ich ein Warteschleife implementieren kann? Also ähnlihc wie in C der Aufruf: Sleep(5).
Allerdings in VBA ohne den Formtimer zu benutzen. Für Tipps wäre ich dankbar.

GRuss Ivo.

FW
25.06.2001, 13:33
... im Sekunden-Takt geht das mit der DATEDIFF-Funktion, für kleinere Zeitspannen mit der TIMER-Funktion, dann darf das aber nicht über Mitternacht stattfinden...

A.S.
25.06.2001, 13:35
Hallo Ivo,

Public Sub Wait(sngSeconds As Single)
Dim sngStart As Single
Dim sngTimer As Single
sngStart = Timer
While Format(sngTimer - sngStart, "Fixed") < sngSeconds
sngTimer = Timer
DoEvents
Wend
End Sub

benutzt zwar auch den Timer, aber nicht in der Timer-Routine eines Formulars etc.

Aufruf erfolgt über

Wait {Sekunden}

{Sekunden} ist ein Wert vom Typ Single, mit welchem Du angibst wie viele Sekunden die Prozedur verstreichen lassen soll. Während der Warteschleife wird lediglich das "DoEvents" ausgeführt um unterdessen auftretende Ereignisse (sowohl für die App als auch für Windows) durchkommen zu lassen.


------------------
HTH

Arno

Kurt aus Kienitz
25.06.2001, 13:41
Hallo Ivo,

Daß geht so:

Sub Warten(AnzSekunden As Integer)

Dim Uhrzeit As Date

Uhrzeit = Now()

While Now() < DateAdd("s", AnzSekunden, Uhrzeit)
DoEvents
Wend


End Sub

DoEvents ist wichtig, weil sonst der Rechner für die AnzahlSekunden lahmgelegt wird ;)

Da war Arno schneller :)
@Arno: Hast Du eine neue Signatur, wie kommt's ? :D

Ivo
25.06.2001, 14:04
dankeschön. hat funktioniert!

FW
25.06.2001, 15:12
... um das nochmal deutlich zu sagen: Die TIMER-Lösung läuft nur, wenn während des Wartens Mitternacht nicht überschritten wird, weil die TIMER-Funktion die Sekunden seit Mitternacht zählt!!!!!!!!!!!!

A.S.
26.06.2001, 08:15
Hallo FW,

nuja, für solche Fälle ist vielleicht die API-Lösung besser - respektive da ohne großen Codingaufwand herzustellen eh die bessere Alternative.

Erhältich hier: <a href="http://www.mvps.org/access/api/api0021.htm">API: Make code go to Sleep</a>

Hab ich gestern Abend noch ausgegraben.

Gruß

Arno

PS Deine Tastatur prellt!

FW
26.06.2001, 09:06
Hallo Arno,

nein, nicht meine Tastatur prellt, sondern ab und zu stürzt mir der Rechner oder besser gesagt der Explorer ab, und dann weiß ich nicht, ob die Antwort angekommen ist oder nicht.
Wenn ich dann Eure Seite erneut aufrufe und meine Antwort nicht finde, dann schreibe ich diese halt nochmal, um dann, genauso erstaunt wie Du, zu sehen, dass der erste Beitrag dann doch auftaucht.
Ansonsten prelle weder ich irgendwas noch meine kleine Tastatur.

Bis dann

Frank