Juli 12, 2020, 16:58:46

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


wie kann man die Zeit messen, die ein Makro braucht?

Begonnen von Axel18, November 13, 2010, 08:49:35

⏪ vorheriges - nächstes ⏩

Axel18

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


Beste Grüße
Axel

database

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

HTH
Peter

lumbumba

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
---

Hondo

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
Gruß Andreas

Edit:
Antwort bezieht sich auf Link in Antwort 1

Axel18

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
Beste Grüße
Axel

Hondo

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

database

November 13, 2010, 21:59:27 #6 Letzte Bearbeitung: November 13, 2010, 22:07:17 von database
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

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.