
21-08-11, 16:35
|
 | Συντονιστής Όνομα: Νίκος Έκδοση λογισμικού Office: Ms-Office 2007 Γλώσσα λογισμικού Office: Ελληνική | | Εγγραφή: 28-12-2008 Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
| |
Επιτρέψτε με ένα σχόλιο. Αν διαβάσουμε με προσοχή την απάντηση του Νάσου, θα δούμε ότι την ημερομηνία 01/07/2011 την εμφανίζει μέσα στην select του(που είναι μια SQL πρόταση!), ως #7/1/2011#. Αυτό γίνεται διότι ο υπολογιστής με δομή ηη/μμ/εεεε, τις προτάσεις SQL, όταν τις τρέχει αντιστρέφει στην ημερομηνία ημέρες και μήνες (εκτός αν ημέρες>12) και έτσι στην περίπτωσή μας, θα εργαστεί με την 01/07/2011 ! (Έτσι δεν είναι Νάσο;) Η πρότασή μου είναι να γράψουμε την ημερομηνία ως εξής: - Γράφουμε στην πρόταση SQL(*)Format(#01/07/1980#, ‘mm/dd/yyyy') , η οποία θα δουλέψει σωστά σε υπολογιστή με Ευρωπαϊκή δομή ημερομηνίας ηη/μμ/εεεε δηλαδή ο υπολογιστής θα καταλάβει οτι η δοσμένη ημερομηνία αφορά την 1η του μήνα Ιουλίου.
- Κάνουμε χρήση της Dateserial(2011,7,1) που θα δουλέψει σε οποιοδήποτε υπολογιστή!!!
(*) Και τώρα να σας "μπερδέψω" λίγο. Είμαι σε περιβάλλον σχεδίασης ερωτήματος και σε κάποιο πεδίο θέλω κριτήριο ημερομηνίες μεγαλύτερες από 01/07/2011. Πώς θα το γράψω αυτό το κριτήριο; Απάντηση: Θα γράψω >Format(#7/1/2011#;'μμ/ηη/αααα') και η SQL δομή στο ερώτημα θα έχει γράψει >Format(#1/7/2011#,'mm/dd/yyyy')!!!!!!! Συμπέρασμα λοιπόν: Αν γράψεις SQL σε VBA κώδικα τότε γράψε την ημερομηνία όπως πραγματικά είναι δηλ. για την 01/07/2011 γράψε >Format(#1/7/2011#,'mm/dd/yyyy'). Αν πάλι γράφεις σε περιβάλλον ερωτήματος, τότε δούλεψε την ημερομηνία σε περιβάλλον SQL, σαν να γράφεις VBA και άσε την Access να γράφει τα τρελά της στο περιβάλλον σχεδίασης του ερωτήματος. Αυτά φίλοι μου Με εκτίμηση Νίκος Δ.
ΥΣτερολόγιο: Άλλαξα τον τίτλο της αρχικης ανάρτησης, ώστε στο μέλλον οι επισκέπτες και τα μέλη να μπορούν με ευχέρεια να εντοπίζουν βοήθεια σε δομή ημερομηνιών... |