Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: Axel18 am November 13, 2010, 08:49:35

Titel: wie kann man die Zeit messen, die ein Makro braucht?
Beitrag von: Axel18 am November 13, 2010, 08:49:35
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


Titel: Re: wie kann man die Zeit messen, die ein Makro braucht?
Beitrag von: database am November 13, 2010, 11:49:34
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
Titel: Re: wie kann man die Zeit messen, die ein Makro braucht?
Beitrag von: lumbumba am November 13, 2010, 12:19:17
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
Titel: Re: wie kann man die Zeit messen, die ein Makro braucht?
Beitrag von: Hondo am November 13, 2010, 12:55:25
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
Titel: Re: wie kann man die Zeit messen, die ein Makro braucht?
Beitrag von: Axel18 am November 13, 2010, 14:22:04
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
Titel: Re: wie kann man die Zeit messen, die ein Makro braucht?
Beitrag von: Hondo am November 13, 2010, 20:02:55
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
Titel: Re: wie kann man die Zeit messen, die ein Makro braucht?
Beitrag von: database am November 13, 2010, 21:59:27
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.