WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Software

Software Rat & Tat bei Softwareproblemen

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 24.10.2003, 07:19   #1
snatch
Jr. Member
 
Registriert seit: 28.02.2002
Alter: 46
Beiträge: 37


Standard access zeiten rechnen

hallo zusammen,

kann man in access zeiten im format stunden minuten sekunden und hundertstelsek. addieren bzw. subtrahieren. brauch dass für eine zeitnehmungsverwaltung für diverse schi- bzw. laufrennen.

gibts andere programme die mit zeiten auf hundertstel genau rechnen können, diese müssten halt auch eine ascii schnittstelle für die übernahme der zeitnehmungsdaten haben.

lg
snatch ist offline   Mit Zitat antworten
Alt 24.10.2003, 09:00   #2
Seidl
Veteran
 
Registriert seit: 10.01.2001
Beiträge: 478


Standard

Warum in die Ferne schweifen, ...


Public Sub use()
Debug.Print diff("0:0:0:2", "0:0:0:1")
End Sub

Public Function diff(a As String, b As String) As String
Dim PartsA() As String
Dim PartsB() As String
Dim ah As Long
Dim bh As Long
Dim x As Long
Dim i As Integer
Dim flag As Boolean
PartsA() = Split(a, ":")
PartsB() = Split(b, ":")
If UBound(PartsA) <> 3 Or UBound(PartsB) <> 3 Then
MsgBox "Erwartet XX:XX:XX:XX", vbInformation, "Ungültiges Format"
Else
flag = True
For i = 0 To 3
flag = flag And IsNumeric(PartsA(i)) And IsNumeric(PartsB(i))
Next
If flag Then
ah = (PartsA(0) * 360000 + PartsA(1) * 6000 + PartsA(2) * 100 + PartsA(3))
bh = (PartsB(0) * 360000 + PartsB(1) * 6000 + PartsB(2) * 100 + PartsB(3))
x = ah - bh
PartsA(0) = x \ 360000
x = x - PartsA(0) * 360000
PartsA(1) = x \ 6000
x = x - PartsA(1) * 6000
PartsA(2) = x \ 100
x = x - PartsA(2) * 100
PartsA(3) = x
flag = True
For i = 0 To 3
flag = flag And PartsA(i) = Abs(PartsA(i))
PartsA(i) = Abs(PartsA(i))
Next
diff = Join(PartsA, ":")
If Not flag Then
diff = "-" & diff
End If
Else
MsgBox "Alphanumerische Zeichen sind nicht erlaubt.", vbInformation, "Ungültiges Format"
End If
End If
End Function


Seidl ist offline   Mit Zitat antworten
Alt 27.10.2003, 10:49   #3
snatch
Jr. Member
 
Registriert seit: 28.02.2002
Alter: 46
Beiträge: 37


Standard

danke für die antwort.

kannst du mir da auf die sprünge helfen, wie ich diesen code anwende.

den code ansich versteh ich, obwohl ich mich mit vb bzw vba mich nicht wirklich beschäftige. wie kann ich die prozedur ausführen im excel.


lg
snatch ist offline   Mit Zitat antworten
Alt 27.10.2003, 11:39   #4
Seidl
Veteran
 
Registriert seit: 10.01.2001
Beiträge: 478


Standard

Unter Excel? Ich dachte unter Access.
Nun, wie dem auch sei.

1.) Excel öffnen und ALT+F11 drücken, um den Visual-Basic-Editor zu öffnen.
2.) Im Projekt-Explorer (links oben) das betreffende VBA-Projekt mit der rechten Maustaste anklicken und "einfügen/Modul" wählen.
3.) Im Code-Fenster des neuen Moduls (rechts), den Code der Funktion "diff" einfügen.
4.) Speichern und Code-Fenster schliessen.
5.) Die Funktion verwenden, wie jede andere Funktion auch [z.B. =Diff(A1;B1)]
Seidl ist offline   Mit Zitat antworten
Alt 27.10.2003, 19:03   #5
hoshibrother
Elite
 
Registriert seit: 18.06.2001
Alter: 44
Beiträge: 1.333


Standard

hab so ein ähnliches prob mit dienstplan gehabt: ich rechne mir die minuten und stunden in dezimalstelle um und bei der ausgabe wieder zurück.
____________________________________
wissen ist macht - nichts wissen macht auch nichts
hoshibrother ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:11 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag