Hallo,
Ich würde gern die dauer eines Kopiervorgangs ermitteln:
Dim Timex As Long
Dim Timey As Long
Dim Time1 As Long
Timex = Time
Kopiervorgang …
Timey = Time
Time1 = Timey - Timex
und warum geht das nicht ?
P Danke mfg joe
Hallo,
Ich würde gern die dauer eines Kopiervorgangs ermitteln:
Dim Timex As Long
Dim Timey As Long
Dim Time1 As Long
Timex = Time
Kopiervorgang …
Timey = Time
Time1 = Timey - Timex
und warum geht das nicht ?
P Danke mfg joe
Hallo, Joe!
und warum geht das nicht ?
Dim Timex As Long
=> Timex = Date(), weil Ganzzahl/Long, und Time liefert die Uhrzeit als Nachkommastelle.
Dim Timey As Long
=> Timey = Date(), weil Ganzzahl/Long, und Time liefert die Uhrzeit als Nachkommastelle.
Und weil Du hoffentlich nicht länger als einen Tag (oder um Mitternacht herum) kopierst, bekommst Du wahrscheinlich als Dauer 0.
Deklariere Deine Time-Variablen als Date (mit Dim Timex As Date), und es sollte laufen. Wenn Du Sekunden mit einigen Nachkommastellen haben willst, solltest Du die Timer-Funktion verwenden, die die Sekunden nach Mitternacht angibt (als Single). Ist halt ein bisschen genauer. Kommt auf das an, was Du messen willst…
Gruß, Manfred
Hallo,
Ich würde gern die dauer eines Kopiervorgangs ermitteln:
Dim Timex As Long
Dim Timey As Long
Dim Time1 As LongTimex = Time
Kopiervorgang …
Timey = Time
Time1 = Timey - Timexund warum geht das nicht ?
dafür würde ich auch den Timer nehmen, aber ich bringe trotzdem mal Deinen Code in Ordnung, damit Du den Fehler findest.
Dim Timex As Date
Dim Timey As Date
Dim Time1 As Long
Timex = Time
'Kopiervorgang ....
Timey = Time
Time1 = DateDiff("s", Timey, Timex)
So funktioniert es. (Das „s“ steht für Sekunden, Du kannst die Differenz auch in Minuten … Jahren haben.)
Gruß, Rainer
Danke & Danke.
da es kopiervorgänge gibt die Minuten dauern habe ich mich an folgender IF Schleife versucht,
aber…
timex = Time
Scandir
timey = Time
time1 = DateDiff("s", timex, timey)
If time1
mfg joe
Hi Joe,
da es kopiervorgänge gibt die Minuten dauern habe ich mich an
folgender IF Schleife versucht,aber…
timex = Time
Scandir
timey = Time
time1 = DateDiff("s", timex, timey)
If time1
Wieso hast Du hier einen String??? Du bekommst doch eine Zahl zurück.
60 ist natürlich nicht "60", das wird nie 'True'.
Label76 = time1 & " Sek."
Fehler, Erklärung unten. Der Fehler tritt aber nicht auf, weil die Stelle im Programm nie erreicht wird.
Else
time1 = DateDiff("m", timex, timey)
Label76 = time1 & " Min."
Das wird wohl eine Fehlermeldung geben, Du willst eine Zahl als String verarbeiten. Besser wird wohl das klappen:
**Label76 = Str(time1) & " Min."**
ähhmmmm, wieso eigentlich Label76??? Verwendest Du keine Steuerelementefelder? Dann gehen Dir aber bald die Resourcen aus. Du darfst nur rund 200 Steuerelemente auf die Form legen. Das Label sollte Label1(76) heißen. :smile:
End If
Ich habe mal eine einfache Zeitmessung mit ein paar Variablen weniger, einfach nur beim Klicken von zwei Buttons, mehr liegt nicht auf der Form.
Option Explicit
Dim TimeX As Date
Private Sub Command1\_Click()
TimeX = Now
End Sub
Private Sub Command2\_Click()
Me.Caption = DateDiff("s", TimeX, Now)
End Sub
Gruß, Rainer