Υπολογισμός Διάρκειας

Συζητήσεις για την τοπική βάση δεδομένων Access της Microsoft

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
spooky7
Δημοσιεύσεις: 5
Εγγραφή: 14 Οκτ 2009 18:57

Υπολογισμός Διάρκειας

Δημοσίευση από spooky7 » 14 Οκτ 2009 19:03

Πολύ καλησπέρα ,

Προσπαθώ να φτιάξω μια απλή βάση . Έχω φτιάξει έναν πίνακα και σε αυτόν 4 πεδία ημερομηνίας . 2 με ημερομηνία και ώρα έναρξης και άλλα δύο με ημερομηνία και ώρα λήξης . Σε ένα άλλο πεδίο θέλω να αποθηκεύεται η διάρκεια από την ημερομηνία και ώρα έναρξης μέχρι την ημερομηνία και ώρα λήξης σε λεπτά . Πως μπορώ να το κάνω ?

Ευχαριστώ .

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Υπολογισμός Διάρκειας

Δημοσίευση από dimsis » 14 Οκτ 2009 21:31

=DateDiff("n", [StartDateTime], [EndDateTime])

spooky7
Δημοσιεύσεις: 5
Εγγραφή: 14 Οκτ 2009 18:57

Υπολογισμός Διάρκειας

Δημοσίευση από spooky7 » 14 Οκτ 2009 22:04

Δεν ξέρω γιατί αλλά δεν δουλεύει.

Λοιπόν περιγράφω τι κάνω . Έχω έναν πινακα με τα πεδιά StartDate , StartTime , EndDate , Endtime kai Duration . Απόαυτόν τον πίνακα φτιάχνω μια φόρμα. Αν βάλω τώρα μερικά δεδομένα π.χ. StartDate=14/10/09 , StartTime=09:00 , EndDate=15/10/09,EndDate=09:00 , τότε στο duration θέλω να μου δείξει 1440 . Πάω λοιπόν στην σχεδίαση της φόρμας και στις ιδιότητες του πεδίου duration και στην καρτέλα δεδομένα κατά το άνοιγμα βάζω =DateDiff("n", [StartTime], [EndTime]) , αυτό καταλαβαίνω θα πάει και θα δεί μόνο τα πεδία με την ώρα . και δεν θα καταλάβει ότι έχει αλλάξει ημέρα . Ένα αυτό και δεύτερο δεν μου το βάζει γιατί όταν την ξανανοίγω μετά δεν έχει τιποτα .


Κάνω κάτι λάθος ?

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Υπολογισμός Διάρκειας

Δημοσίευση από dimsis » 14 Οκτ 2009 23:40

Γενικώς δεν χρειάζεσαι διαφορετικά πεδία για ημερομηνία και ώρα.

Φτιάξε και τρέξε ένα ερώτημα :
SELECT DateDiff("n", [StartTime], [EndTime])
FROM οπίνακαςσου;
και δες αν σου γυρίζει το 1440 που θέλεις με τις τιμές όπως που έχεις στο παράδειγμα σου.

spooky7
Δημοσιεύσεις: 5
Εγγραφή: 14 Οκτ 2009 18:57

Υπολογισμός Διάρκειας

Δημοσίευση από spooky7 » 15 Οκτ 2009 16:10

Τελικά έκανα το εξής . Πήγα στην φόρμα , στις ιδιότητες του πεδίου EndTime και μετά την ανανέωση έβαλα τον παρακάτω κώδικα :

[Duration] = DateDiff("n", [StartDate] & " " & [StartTime], [EndDate] & " " & [EndTime])
και δουλεύει μια χαρά .

Τώα έχω άλλη μια απορία όμως . Θέλω να κάνω ένα ερώτημα που να μου επιστρέψει όλες τις εγγραφές μεταξύ των StartDate και EndDate τις οποίες θα τις βάζω εγώ .

Πως μπορώ να το πετύχω αυτό ?

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Υπολογισμός Διάρκειας

Δημοσίευση από dva_dev » 15 Οκτ 2009 17:12

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

Αυτό που ζητάς με την αναζήτηση μεταξύ των ημερομηνιών φαντάζομαι δεν έκανες τον κόπο να ψάξεις αν έχει απαντηθεί, έτσι;

http://www.freestuff.gr/forums/viewtopic.php?t=36974
http://www.freestuff.gr/forums/viewtopic.php?t=34347
http://www.freestuff.gr/forums/viewtopic.php?t=29215

Διαλέγεις και παίρνεις.

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

spooky7
Δημοσιεύσεις: 5
Εγγραφή: 14 Οκτ 2009 18:57

Υπολογισμός Διάρκειας

Δημοσίευση από spooky7 » 16 Οκτ 2009 15:10

Προσπαθώ για την πρώτη λύση και δεν γίνεται τίποτα . Καμιά βοήθεια ?

Για να γίνω και λίγο πιο συγκεκριμένος : Έχω ένα πίνακα που αποθηκεύω Ημ.νια και ώρα έναρξης καθώς και Λήξης ενός συμβάντος .

Θέλω να φτιάξω ένα report στο οποίο να μου αποικονίζονται τα συμβάντα που έλαβαν μέρος ανάμεσα 2 ημερομηνιών που θα εισάγω εγώ . Δηλαδή πριν ανοίξει το report θα ήθελα να ανοίγει μια φόρμα στην οποία θα βάζω δυο ημερομηνίες θα πατάω ένα καυμπί και θα μεφανίζεται το report με τα συμβάντα που έλαβαν χώρα ανάμεσα στις 2 ημερομηνίες που έχβαλα παραπάνω . Κάτι έχω καταφέρει αλλά δεν μπορώ να βρω πως συνδέεται η φόρμα που ανόιγει με το ερώτημα και το report .

Καμιά ιδέα ?

Απάντηση

Επιστροφή στο “MS Access”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης