Guten Morgen zum Samstag,
ich hoffe, ich bin mit der Frage zu Makro in diesem Forum-Teil richtig:
Ich würde gerne wissen, wie lange ein Makro an der Erledigung einer gestellten Aufgabe (Löschen von Tabellen, Anfügeabfragen) arbeitet.
Gibt es eine Möglichkeit, diese Zeit zu stoppen, d.h. dass nach Ablauf des Makros z.B. angezeigt wird: ,,Dauer xxx Sekunden" ?
Wenn ja, wo und wie muss ich da etwas setzen?
Beste Grüße
Axel
Hallo Axel,
im Prinzip dauert immer alles zu lange ... ;D
Es gab hier im Forum schon diese Frage, daher ...http://www.access-o-mania.de/forum/index.php?topic=2111.0 (http://www.access-o-mania.de/forum/index.php?topic=2111.0)
HTH
Peter
Für einfache Messungen könntest du auch die GetTickcount Api-Funktion heranziehen. Diese hat zwar nicht die hohe Auflösung der QueryPerformanceCounter-Funktion, ist aber kürzer.
Nur ein
Declare Function GetTickCount Lib "KERNEL32.DLL" () As Long
sowie
lStart = GetTickcount
Call Dein Macro/(e)Sub/(e)Function
lStop = Gettickcount
UsedTime = lStop - lStart ' in millisekunden
Gruss
Daniel
Hallo,
dieser gepostete Tipp ist aber nicht so gut. Es gibt eine Lösung als Klassenmodul, Autor mir unbekannt.
Hier mein Posting von 2001 ;D
http://www.ms-office-forum.net/forum/showpost.php?p=198815&postcount=2 (http://www.ms-office-forum.net/forum/showpost.php?p=198815&postcount=2)
Gruß Andreas
Edit:
Antwort bezieht sich auf Link in Antwort 1
Hallo Andreas,
wenn mein Makro "M_Gesamt" heisst, wie stelle ich es an, dass mit Deinem Timer-Vorschlag das Makro gestartet wird und das Zeit-Ergebnis anschliessend angezeigt wird?
Beste Grüße
Axel
Hallo,
erstmal speichere den Code in einem Klassenmodul unter dem Namen clsTimer
Dann schreibe zu Beginn der Prozedur (verwende für Code nicht die Bezeichnung Makro) folgendes:
Dim myTimer As New clsTimer
myTimer.Calibrieren
myTimer.start
Und am Ende der Prozedur schreibe folgendes:
myTimer.halt
myTimer.ShowTime
Set myTimer = Nothing
Gruß Andreas
Hallo,
@Andreas
Ich fürchte fast, Axel schreibt nicht nur Makro sondern - das ist eines :o
siehe Startbeitrag: http://www.access-o-mania.de/forum/index.php?topic=13330 (http://www.access-o-mania.de/forum/index.php?topic=13330)
Hmmm... würde es da genügen, zwischen 'myTimer.Start' und 'myTimer.halt' den Aufruf zu plazieren ... DoCmd.RunMacro "M_Gesamt" oder wartet der Code nicht auf die Abarbeitung des derart aufgerufnen Makros.
Ich muss die Frage so stellen weil ich mit Makros so gut wie ÜBERHAUPTGARNIENIX was mache und auch nicht weiß wie VBA einen derartigen Aufruf behandeln würde.