Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Πίνακες ] Πεδία με περιεχόμενο χρονομετρήσεις

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 27-07-11, 08:05
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 141
Προεπιλογή Πεδία με περιεχόμενο χρονομετρήσεις

Καλημέρα σας. Έχω ένα πίνακα που γράφω χρόνους αθλητών. Πως μπορώ να τους γράφω με τη μορφή: 09:54:98 λλ:δδ:εε και μετά να τους αφαιρώ από κάποιον άλλο χρόνο; Π.Χ αν 11:25:98- 01:30:98 = 09:54:98 που είναι το σωστό και όχι 11:25:98- 01:30:98 = 10:85:98.
Ευχαριστώ
Απάντηση με παράθεση
  #2  
Παλιά 27-07-11, 11:16
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

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

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #3  
Παλιά 27-07-11, 12:48
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 141
Προεπιλογή

Δεν υπάρχουν μεγαλύτεροι χρόνοι εκεί που θα χρησιμοποιηθεί. Εγώ θέλω να καταχωρώ τις επιδόσεις (χρόνους) με τη μορφή λλ:δδ:εε ή λλ:δδ.εε (δεν με πειράζει αυτό, άλλωστε μπορώ να το κάνω) και να μπορώ να τους αφαιρώ.
Θα ανεβάσω αυτό που έχω κάνει να το δείτε.
Ευχαριστώ για την άμεση απάντηση.
Απάντηση με παράθεση
  #4  
Παλιά 27-07-11, 12:57
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 141
Προεπιλογή

Αυτό είναι το αρχείο.
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb ΑΓΩΝΕΣ.mdb (164,0 KB, 15 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 27-07-11, 13:43
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 141
Προεπιλογή

Η αφαίρεση που έγραψα στο αρχικό κείμενο ήταν λάθος δικό μου. Το σωστό είναι αυτό που έγραψες εσύ. Συγνώμη.
Απάντηση με παράθεση
  #6  
Παλιά 27-07-11, 16:00
Όνομα: Γιώργος
Έκδοση λογισμικού 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 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 27-07-11, 20:50
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 141
Προεπιλογή

Καλησπέρα. Πολύ καλό! Μόνο που πρόσθεσα τη μάσκα εισαγωγής για να μην πληκτρολογώ τις άνω-κάτω τελείες. Ευχαριστώ πολύ.
Απάντηση με παράθεση
  #8  
Παλιά 28-07-11, 22:30
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 141
Προεπιλογή

Καλησπέρα. Μια ερώτηση ακόμα. Η βάση δεδομένων που ανεβάσατε ανοίγει αυτόματα τη φόρμα. Δεν βρήκα μακροεντολή που να κάνει αυτή τη δουλειά. Εγώ ανοίγω την όποια φόρμα θέλω με μακροεντολή που την ονομάζω "AUTOEXEC". Από περιέργεια, εδώ πως γίνεται;
Απάντηση με παράθεση
  #9  
Παλιά 29-07-11, 08:20
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

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

Φιλικά/Γιώργος .
Απάντηση με παράθεση
  #10  
Παλιά 29-07-11, 08:59
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 141
Προεπιλογή

Ευχαριστώ!
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Μορφοποίηση] Κλείδωμα κελιού με βάση το περιεχόμενο ενός άλλου. dimharos Excel - Ερωτήσεις / Απαντήσεις 1 28-05-16 06:06
[ Συναρτήσεις ] Δώστε τίτλο που να υποδηλώνει το περιεχόμενο του μηνύματος artchrist73 Access - Ερωτήσεις / Απαντήσεις 2 29-10-15 16:39
[Μορφοποίηση] άθροισμα κελιών - κελιού με μικτό περιεχόμενο skapet155 Excel - Ερωτήσεις / Απαντήσεις 4 09-09-11 15:55


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