![]() |
![]() |
|
![]() |
![]() |
|
Software Rat & Tat bei Softwareproblemen |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Jr. Member
![]() Registriert seit: 28.02.2002
Alter: 46
Beiträge: 37
|
![]() 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 |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() 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 ![]() |
![]() |
![]() |
![]() |
#3 |
Jr. Member
![]() Registriert seit: 28.02.2002
Alter: 46
Beiträge: 37
|
![]() 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 |
![]() |
![]() |
![]() |
#4 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() 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)] |
![]() |
![]() |
![]() |
#5 |
Elite
![]() Registriert seit: 18.06.2001
Alter: 44
Beiträge: 1.333
|
![]() 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 |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|