Εμφάνιση ενός μόνο μηνύματος
  #6  
Παλιά 27-07-11, 16:00
kapetang Ο χρήστης kapetang δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Γιώργο, στη ΒΔ που επισυνάπτω, προσπάθησα να δώσω μια λύση στο ζητούμενο.
Βασίζεται στη ΒΔ που ανέβασες, αλλά με κάποιες αλλαγές. Τις ακόλουθες:
1) Επειδή το πεδίο «ΔΙΑΦΟΡΑ» είναι υπολογιζόμενο το αφαίρεσα από τον πίνακα, για να μη δημιουργεί προβλήματα ενημέρωσης . Η διαφορά φαίνεται στο ερώτημα και τη σχετική φόρμα.
2) Στα πεδία κειμένου «ΑΡΧΙΚΟΣ ΧΡΟΝΟΣ» και «ΤΕΛΙΚΟΣ ΧΡΟΝΟΣ» καθόρισα μήκος 8 χαρακτήρων και την συνθήκη επικύρωσης: Like "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]".
Επίσης για να μη δημιουργούνται προβλήματα αφαίρεσα τη μάσκα εισαγωγής.
3) Πρόσθεσα τη λειτουργική μονάδα «Module1» και τη συνάρτηση «Diafora», η οποία υπολογίζει τη διαφορά των χρονικών στιγμών «ΑΡΧΙΚΟΣ ΧΡΟΝΟΣ», «ΤΕΛΙΚΟΣ ΧΡΟΝΟΣ» και την αποδίδει στη μορφή: λλ:δδ:εε.
Ο κώδικας της συνάρτησης δίνεται παρακάτω:
Κώδικας:
Public Function Diafora(StartTime As Variant, EndTime As Variant) As String
    Dim S1 As Variant, S2 As Variant
    Dim N As Long, N1 As Long, N2 As Long
    
    If IsNull(StartTime) Or IsNull(EndTime) Then
        Diafora = "": Exit Function
    End If
    S1 = Split(StartTime, ":"): S2 = Split(EndTime, ":")
    'Έναρξη χρονομέτρησης σε εκατοστά του δευτερόλεπτου
    N1 = S1(0) * 6000 + S1(1) * 100 + S1(2)
    'Τέλος χρονομέτρησης σε εκατοστά του δευτερόλεπτου
    N2 = S2(0) * 6000 + S2(1) * 100 + S2(2)
    'Διαφορά σε εκατοστά του δευτερόλεπτου
    N = N2 - N1
    'Μετατροπή της διαφοράς σε μορφή λλ:δδ:εε
    Diafora = Format(N \ 6000, "00") & ":" & Format((N Mod 6000) \ 100, "00") & _
            ":" & Format((N Mod 6000) Mod 100, "00")
            
End Function
Η συνάρτηση χρησιμοποιείται στο ερώτημα και στη φόρμα για τον υπολογισμό των διαφορών.
Κάνε δοκιμές και ενημέρωσέ μας, αν σε καλύπτει.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb ΑΓΩΝΕΣ2.mdb (256,0 KB, 36 εμφανίσεις)
Απάντηση με παράθεση