Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Πίνακες ] Πεδία με περιεχόμενο χρονομετρήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/1280-pedia-me-periexomeno-xronometriseis.html)

gmax 27-07-11 08:05

Πεδία με περιεχόμενο χρονομετρήσεις
 
Καλημέρα σας. Έχω ένα πίνακα που γράφω χρόνους αθλητών. Πως μπορώ να τους γράφω με τη μορφή: 09:54:98 λλ:δδ:εε και μετά να τους αφαιρώ από κάποιον άλλο χρόνο; Π.Χ αν 11:25:98- 01:30:98 = 09:54:98 που είναι το σωστό και όχι 11:25:98- 01:30:98 = 10:85:98.
Ευχαριστώ

kapetang 27-07-11 11:16

Καλημέρα

Γιώργο, τα δεδομένα του παραδείγματος (:98 και όχι ,98) και το αποτέλεσμα της αφαίρεσης (11:25:98- 01:30:98 = 09:54:98 αντί 09:55:00) με μπέρδεψε.
Αν κατάλαβα καλά, θέλεις να καταχωρείς τρία διψήφια τμήματα τα οποία θα χωρίζονται με άνω και κάτω τελεία (:).
Το πρώτο τμήμα θα εκφράζει χρόνο σε λεπτά, το δεύτερο σε δευτερόλεπτα και το τρίτο σε εκατοστά του δευτερόλεπτου.
Αν είναι έτσι, ο μεγαλύτερος χρόνος που θα μπορούσε να καταχωρηθεί είναι :99:99:99= 1 ώρα, 40 λεπτά και 39,99 δευτερόλεπτα. Στην περίπτωση που έχουμε μεγαλύτερους χρόνους πως θα καταχωρούνται;
Νομίζω ότι χρειάζεται να εξηγήσεις καλύτερα το ερώτημα;

Φιλικά/Γιώργος

gmax 27-07-11 12:48

Δεν υπάρχουν μεγαλύτεροι χρόνοι εκεί που θα χρησιμοποιηθεί. Εγώ θέλω να καταχωρώ τις επιδόσεις (χρόνους) με τη μορφή λλ:δδ:εε ή λλ:δδ.εε (δεν με πειράζει αυτό, άλλωστε μπορώ να το κάνω) και να μπορώ να τους αφαιρώ.
Θα ανεβάσω αυτό που έχω κάνει να το δείτε.
Ευχαριστώ για την άμεση απάντηση.

gmax 27-07-11 12:57

1 Συνημμένο(α)
Αυτό είναι το αρχείο.

gmax 27-07-11 13:43

Η αφαίρεση που έγραψα στο αρχικό κείμενο ήταν λάθος δικό μου. Το σωστό είναι αυτό που έγραψες εσύ. Συγνώμη.

kapetang 27-07-11 16:00

1 Συνημμένο(α)
Καλησπέρα

Γιώργο, στη ΒΔ που επισυνάπτω, προσπάθησα να δώσω μια λύση στο ζητούμενο.
Βασίζεται στη ΒΔ που ανέβασες, αλλά με κάποιες αλλαγές. Τις ακόλουθες:
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

Η συνάρτηση χρησιμοποιείται στο ερώτημα και στη φόρμα για τον υπολογισμό των διαφορών.
Κάνε δοκιμές και ενημέρωσέ μας, αν σε καλύπτει.

Φιλικά/Γιώργος

gmax 27-07-11 20:50

Καλησπέρα. Πολύ καλό! Μόνο που πρόσθεσα τη μάσκα εισαγωγής για να μην πληκτρολογώ τις άνω-κάτω τελείες. Ευχαριστώ πολύ.

gmax 28-07-11 22:30

Καλησπέρα. Μια ερώτηση ακόμα. Η βάση δεδομένων που ανεβάσατε ανοίγει αυτόματα τη φόρμα. Δεν βρήκα μακροεντολή που να κάνει αυτή τη δουλειά. Εγώ ανοίγω την όποια φόρμα θέλω με μακροεντολή που την ονομάζω "AUTOEXEC". Από περιέργεια, εδώ πως γίνεται;

kapetang 29-07-11 08:20

Καλημέρα

Υπάρχει δυνατότητα, σε κάθε ΒΔ, να ορίσουμε μία φόρμα, ως φόρμα εκκίνησης.
Στην access 2007 γίνεται ως εξή:
1. Κλικ στο κουμπί του office (πάνω αριστερά)
2. Στο παράθυρο, που ανοίγει, κλικ στο κουμπί «Επιλογές της access».
3. Στο παράθυρο «Επιλογές της access», κλικ στην επιλογή «Τρέχουσα βάση δεδομένων» και στο πτυσσόμενο πλαίσιο «Εμφάνιση φόρμας», επιλογή της φόρμας εκκίνησης.

Φιλικά/Γιώργος .

gmax 29-07-11 08:59

Ευχαριστώ!


Η ώρα είναι 21:36.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2