| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Καλημέρα σας. Έχω ένα πίνακα που γράφω χρόνους αθλητών. Πως μπορώ να τους γράφω με τη μορφή: 09:54:98 λλ:δδ:εε και μετά να τους αφαιρώ από κάποιον άλλο χρόνο; Π.Χ αν 11:25:98- 01:30:98 = 09:54:98 που είναι το σωστό και όχι 11:25:98- 01:30:98 = 10:85:98. Ευχαριστώ |
|
#2
| |||
| |||
|
Καλημέρα Γιώργο, τα δεδομένα του παραδείγματος (:98 και όχι ,98) και το αποτέλεσμα της αφαίρεσης (11:25:98- 01:30:98 = 09:54:98 αντί 09:55:00) με μπέρδεψε. Αν κατάλαβα καλά, θέλεις να καταχωρείς τρία διψήφια τμήματα τα οποία θα χωρίζονται με άνω και κάτω τελεία (:). Το πρώτο τμήμα θα εκφράζει χρόνο σε λεπτά, το δεύτερο σε δευτερόλεπτα και το τρίτο σε εκατοστά του δευτερόλεπτου. Αν είναι έτσι, ο μεγαλύτερος χρόνος που θα μπορούσε να καταχωρηθεί είναι :99:99:99= 1 ώρα, 40 λεπτά και 39,99 δευτερόλεπτα. Στην περίπτωση που έχουμε μεγαλύτερους χρόνους πως θα καταχωρούνται; Νομίζω ότι χρειάζεται να εξηγήσεις καλύτερα το ερώτημα; Φιλικά/Γιώργος |
|
#3
| |||
| |||
|
Δεν υπάρχουν μεγαλύτεροι χρόνοι εκεί που θα χρησιμοποιηθεί. Εγώ θέλω να καταχωρώ τις επιδόσεις (χρόνους) με τη μορφή λλ:δδ:εε ή λλ:δδ.εε (δεν με πειράζει αυτό, άλλωστε μπορώ να το κάνω) και να μπορώ να τους αφαιρώ. Θα ανεβάσω αυτό που έχω κάνει να το δείτε. Ευχαριστώ για την άμεση απάντηση. |
|
#4
| |||
| |||
|
Αυτό είναι το αρχείο.
|
|
#5
| |||
| |||
|
Η αφαίρεση που έγραψα στο αρχικό κείμενο ήταν λάθος δικό μου. Το σωστό είναι αυτό που έγραψες εσύ. Συγνώμη.
|
|
#6
| |||
| |||
|
Καλησπέρα Γιώργο, στη ΒΔ που επισυνάπτω, προσπάθησα να δώσω μια λύση στο ζητούμενο. Βασίζεται στη ΒΔ που ανέβασες, αλλά με κάποιες αλλαγές. Τις ακόλουθες: 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
Κάνε δοκιμές και ενημέρωσέ μας, αν σε καλύπτει. Φιλικά/Γιώργος |
|
#7
| |||
| |||
|
Καλησπέρα. Πολύ καλό! Μόνο που πρόσθεσα τη μάσκα εισαγωγής για να μην πληκτρολογώ τις άνω-κάτω τελείες. Ευχαριστώ πολύ.
|
|
#8
| |||
| |||
|
Καλησπέρα. Μια ερώτηση ακόμα. Η βάση δεδομένων που ανεβάσατε ανοίγει αυτόματα τη φόρμα. Δεν βρήκα μακροεντολή που να κάνει αυτή τη δουλειά. Εγώ ανοίγω την όποια φόρμα θέλω με μακροεντολή που την ονομάζω "AUTOEXEC". Από περιέργεια, εδώ πως γίνεται;
|
|
#9
| |||
| |||
|
Καλημέρα Υπάρχει δυνατότητα, σε κάθε ΒΔ, να ορίσουμε μία φόρμα, ως φόρμα εκκίνησης. Στην access 2007 γίνεται ως εξή: 1. Κλικ στο κουμπί του office (πάνω αριστερά) 2. Στο παράθυρο, που ανοίγει, κλικ στο κουμπί «Επιλογές της access». 3. Στο παράθυρο «Επιλογές της access», κλικ στην επιλογή «Τρέχουσα βάση δεδομένων» και στο πτυσσόμενο πλαίσιο «Εμφάνιση φόρμας», επιλογή της φόρμας εκκίνησης. Φιλικά/Γιώργος . |
|
#10
| |||
| |||
|
Ευχαριστώ!
|
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | 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 |
Η ώρα είναι 18:41.


Αλλαγή σε γραμμικό τρόπο

