Ανανέωση ιστοσελίδας

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 07-06-16, 04:28
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή SQL Transaction

Kalimera sas,
signomi gia ta greeklish alla to pc edo den exei Ellinika.

To provlima mou einai to Eksis.

Exo 2 pedia ena einai Date Kai to allo einai Time.

Anebazontas tin basi se SQL Server den douleuei pleon to filtro me Date Kai time.
Yparxei kapoios tropos na metatrepo auta ta 2 pedia os ena Kai na dino filtro px 06.06.2016 22:15 eos 07.06.2016 06:15 Kai na leitourgei? Mexri tora APO to erotima tis Access leitourgouse kanonika. Tora me SQL exo provlima. Mporei kanenas na boithisei??

Eyxaristo.
Απάντηση με παράθεση
  #2  
Παλιά 07-06-16, 10:31
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή

Update: Κατάφερα με την εντολή CAST να φιλτράρω την ημερομηνία. Ακόμα αντιμετωπίζω πρόβλημα με την ώρα μετά τις 00:00 το βράδυ και δεν κατάφερα επίσης να ενώσω τα 2 πεδία.
Απάντηση με παράθεση
  #3  
Παλιά 08-06-16, 09:46
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλημέρα
Δοκίμασα να ενώσω τα πεδία [dat] (ημερομηνία 08/06/2016) και [tim] (ώρα 10:28) και νομίζω ότι το αποτέλεσμα είναι το "επιθυμητό".

Κώδικας:
Format([Dat] & " " &[Tim],"dd/mm/yyyy\_hh:nn")
φτιάχνει το 08/06/2016_10:28

Ζήτησα μετά να με πει το αποτέλεσμα της σχέσης :
Κώδικας:
? Format([Dat] & " " &[Tim],"dd/mm/yyyy\_hh:nn") > "08/06/2016_10:29"
και έδωσε False.

Δεν έχω ιδέα αν ό,τι αναρτώ θα σε βοηθήσει... αλλά θα ήθελα να βρεις λύση

Με εκτίμηση / Νίκος

Α! Γιατί δεν χρησιμοποιείς τη συνάρτηση Now() και αντί αυτής τις date() και Time() ;
Απάντηση με παράθεση
  #4  
Παλιά 08-06-16, 11:03
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή

Σε ευχαριστώ πολύ για το ενδιαφέρον σου. Θα το δοκιμάσω αυτό και θα ενημερώσω εάν γίνει η δουλειά. Η εντολή Now() στον SQL Server είναι GETDATE() και έχω πρόβλημα στην ώρα! Αν καταφέρω να διαμορφώσω και την ώρα με την εντολή Convert ή την εντολή Cast θα είμαι εντάξει. Προς το παρών χρησιμοποιώ "πίσω πόρτα" για να πάρω αυτό που θέλω. Έκανα ένα ερώτημα στην access που "κοιτάει" σε ODBC πίνακα, και απο εκεί φιλτράρω την ημερομηνία με την ώρα κανονικά. Όμως δεν είναι ο σωστός τρόπος και δεν θέλω να κάνω πρόχειρες δουλειές, γι αυτό πρέπει να βρώ μια λύση.
1000 ευχαριστώ και πάλι.
Απάντηση με παράθεση
  #5  
Παλιά 08-06-16, 11:09
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα στην παρέα

Χρήστο, ίσως βοηθήσουν τα παρακάτω:

1) Ανεξάρτητα από την εμφάνιση, η ημερομηνία μαζί με την ώρα αποθηκεύονται ως αριθμός.

Ο αριθμός αυτός εκφράζει τον αριθμό των ημερών και το τμήμα ημέρας που πέρασε από μία χρονική στιγμή που θεωρείται αφετηρία (1/1/1900 00:00:00) μέτρησης του χρόνου.

Για παράδειγμα ο αριθμός 42522,9659259259 δείχνει ότι πέρασαν από την αφετηρία 42522 ημέρες και 0,9659259259 ημέρας.

Το δεκαδικό μέρος με κατάλληλες μετατροπές (πολλαπλασιασμό με 24 κλπ) μπορεί να εκφραστεί σε ώρες λεπτά και δευτερόλεπτα.

Αν στο άμεσο παράθυρο εκτέλεσης πληκτρολογήσουμε: ?Cdate(42522.9659259259), θα πάρουμε την ημερομηνία και ώρα στην οποία αντιστοιχεί: 1/6/2016 11:10:56 μμ

2) Συνέπεια των παραπάνω:

Δε χρειαζόταν να έχεις δύο πεδία, ένα για την αποθήκευση της ημερομηνίας (πχ dt ακέραιο μέρος) και ένα (πχ tm δεκαδικό μέρος).

Για την περίπτωσή σου δοκίμασε τα κριτήρια:

Για την access: dt+tm Between #6/6/2016 22:15:00# And #7/6/2016 06:15:00#

Για τον SQL Server: dt+tm Between CAST(‘20160606 22:15:00’ as datetime) And CAST(‘20160607 06:15:00’).

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

Τελευταία επεξεργασία από το χρήστη kapetang : 08-06-16 στις 15:43. Αιτία: αντί And CAST(‘20160706 06:15:00’), And CAST(‘20160607 06:15:00’).
Απάντηση με παράθεση
  #6  
Παλιά 08-06-16, 11:24
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή

Μπορώ με αυτήν την εντολή που μου έγραψες να πώ πχ
dt+tm Between CAST(dbo.Data.Date as datetime) And CAST(dbo.Data.Time) ??
Θα δουλέψει έτσι?? Γιατί αντιμετωπίζω πρόβλημα όταν ζητάω να μου φέρει πχ
Between 06.06.2016 22:15 and 07.06.2016 06:15 μου επιστρέφει κενό. Ενώ αν δώσω
Between 06.06.2016 22:15 and 07.06.2016 23:59 δουλεύει μια χαρά Με έχει μπερδέψει τελείως. Ή δεν ξέρω επειδή τραβάω τα δεδομένα στο Excel μήπως απο εκεί μπορώ να κάνω καμία πατέντα.
Καινούρια χωράφια (SQL), καινούρια προβλήματα.
Απάντηση με παράθεση
  #7  
Παλιά 08-06-16, 13:53
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Χρήστο δεν ξέρω τι προσπαθείς να κάνεις.

Ανακατεύεις, Access, SQL server και τώρα πρόσθεσες και το Excel.

Στο προηγούμενο μήνυμά μου εξήγησα πως αποθηκεύεται η ημερομηνία και η ώρα και έδωσα και δύο παραδείγματα.

Τα δοκίμασες;

Η έκφραση dt+tm Between CAST(dbo.Data.Date as datetime) And CAST(dbo.Data.Time) δεν έχει τη δομή των παραδειγμάτων και προφανώς δε θα δουλέψει.
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb DateTime.accdb (612,0 KB, 19 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 08-06-16 στις 14:12.
Απάντηση με παράθεση
  #8  
Παλιά 08-06-16, 20:02
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή

Αγαπητέ Γιώργο να σου εξηγήσω την κατάσταση ώς έχει. Μέχρι τώρα είχα μία βάση στην Access κοινόχρηστη ώς BackEnd και τα τερματικά δούλευαν με το FrondEnd χωρίς πρόβλημα. Απο εκεί αντλούσα δεδομένα στο Excel για να δημιουργώ κάθε ώρα κάποια στατιστικά και διαγράμματα μιάς και η Access δεν φημίζεται γι' αυτόν τον λόγο. Όμως λόγω του όγκου των δεδομένων (Περίπου 4000 κάθε μέρα) και λόγω το ότι οι χρήστες αυξήθηκαν, αποφασίσαμε να ανεβάσουμε την βάση σε SQL Server για ταχύτητα και μεγαλύτερη όσο γίνεται ασφάλεια των δεδομένων. Η μεταφορά της βάσης έγινε με απόλυτη επιτυχία και μπορώ να πω με σιγουριά ότι και η ταχύτητα αυξήθηκε. Από την καινούρια βάση πλέον τραβάω τα δεδομένα στο Excel για τον ίδιο λόγο. Όλα κατεβαίνουν κανονικά πλην όμως της ώρας, που ενώ εμφανίζεται κανονικά δεν λειτουργεί όπως λειτουργούσε όταν η βάση ήταν με την Access. Με αποτέλεσμα να μπορώ να φιλτράρω ώρες μόνο μέσα στην ίδια μέρα. Λόγω το ότι χρειάζομαι κάθε ώρα στατιστικά έχω πρόβλημα όταν πρέπει να ζητήσω δεδομένα από τις 23:15 της ίδιας μέρας μέχρι και τις 00:15 της επόμενης μέρας, ή μέχρι τις 06:15 της επόμενης που τελειώνει η νυχτερινή βάρδια. Δεν μπορώ να καταλάβω αυτήν να μου επιτραπεί η έκφραση ηλιθιότητα της βάσης του SQL Server με τις μετατροπές ημερομηνιών και ώρας. Και από ότι βλέπω στο Internet αντιμετωπίζουν ή αντιμετώπισαν αρκετά άτομα το ίδιο πρόβλημα με εμένα.
Με εκτίμηση
Χρήστος.
Απάντηση με παράθεση
  #9  
Παλιά 09-06-16, 10:29
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Χρήστο, μετέτρεψα τη βάση του προηγούμενου μηνύματος σε βάση SQL (*.mdf).

Το συνημμένο αρχείο Excel παίρνει δεδομένα από το αρχείο *.mdf.

Δες το σχετικό φιλτράρισμα.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx BookSQL.xlsx (21,6 KB, 19 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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



Η ώρα είναι 14:11.