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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 20-08-11, 20:51
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 31-10-2009
Μηνύματα: 13
Προεπιλογή Δομή ημερομηνίας σε SQL πρόταση

Καλησπέρα στο φόρουμ.
Η ερώτηση είναι η εξής:

Έχουμε ένα ερώτημα το οποίο παράγει ένα αποτέλεσμα Α΄
πχ: Ημερομηνία Λήξης Κλιμακίου: DateAdd("μ";24;[Ημερομηνία Έναρξης Κλιμακίου])
και μας δίνει το αποτέλεσμα δύο χρόνια μετά.
Εάν αυτό αλλάξει και τα δύο χρόνια γίνουν τρία πως τροποποιούμε αυτό το ερώτημα
ώστε μόνο οι νέες εγγραφές να ενημερώνονται και οι παλιές να μένουν ως έχουν;

Ευχαριστώ.
Απάντηση με παράθεση
  #2  
Παλιά 20-08-11, 20:59
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Νομίζω αρκεί να αλλάξεις το 24=24 μήνες=2 χρόνια σε 36
Απάντηση με παράθεση
  #3  
Παλιά 21-08-11, 09:10
Όνομα: ΝΑΣΟΣ
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-10-2010
Μηνύματα: 445
Προεπιλογή

Καλημέρα Γρηγόρη.
Έστω ότι έχουμε στο Πίνακα1 τις εγγραφές μας.Δηλ. Ονοματεπώνυμο και Ημερομηνία Έναρξης Κλιμακίου.
Εάν θεωρήσουμε ότι απο 01/07/11 αλλάζει το κλιμάκιο για νέες εγγραφές ανά 3 χρόνια τότε στο ερώτημα έχουμε:
Κώδικας:
SELECT Πίνακας1.Ονοματεπώνυμο, Πίνακας1.[Ημερομηνία Έναρξης Κλιμακίου], 
IIf([Ημερομηνία Έναρξης Κλιμακίου]<#7/1/2011#,DateAdd("m",24,[Ημερομηνία Έναρξης Κλιμακίου]),
DateAdd("m",36,[Ημερομηνία Έναρξης Κλιμακίου])) AS [Ημερομηνία Λήξης Κλιμακίου]
FROM Πίνακας1;
Απάντηση με παράθεση
  #4  
Παλιά 21-08-11, 09:19
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλημέρα

Γιατί φίλοι μου, αυτή η συζήτηση με τα ΜΚ; Είναι κάτι που με διαφεύγει; Αναμένονται αλλαγές;

Με εκτίμηση σε όλους σας

Νίκος Δ.
Απάντηση με παράθεση
  #5  
Παλιά 21-08-11, 10:04
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 31-10-2009
Μηνύματα: 13
Προεπιλογή

Καλημέρα σε όλους
Νάσο ευχαριστώ για την λύση του προβλήματος η οποία και δούλεψε.
Όσον αφορά το θέμα για τα ΜΚ αν και δεν είμαι δημόσιος θα αλλάξει, η αλλαγή κλιμακίου θα γίνεται κάθε τρία χρόνια και όχι δύο.
ΜΕΣΟΠΡΟΘΕΣΜΟ!!!
Απάντηση με παράθεση
  #6  
Παλιά 21-08-11, 16:35
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού 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 να γράφει τα τρελά της στο περιβάλλον σχεδίασης του ερωτήματος.

Αυτά φίλοι μου

Με εκτίμηση
Νίκος Δ.


ΥΣτερολόγιο: Άλλαξα τον τίτλο της αρχικης ανάρτησης, ώστε στο μέλλον οι επισκέπτες και τα μέλη να μπορούν με ευχέρεια να εντοπίζουν βοήθεια σε δομή ημερομηνιών...







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


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Ερωτήματα ] Υπολογισμός ημερομηνίας xristos0718 Access - Ερωτήσεις / Απαντήσεις 5 26-07-21 18:35
[Γενικά] Αντιγραφή συγκεκριμένης φράσης από πρόταση dmarop Excel - Ερωτήσεις / Απαντήσεις 3 07-08-13 19:48
[Συναρτήσεις] Μορφοποίηση ημερομηνίας nakosg Excel - Ερωτήσεις / Απαντήσεις 2 19-07-12 14:09
[Excel07] Εισαγωγή ημερομηνίας Χρήστος Excel - Ερωτήσεις / Απαντήσεις 2 20-05-11 22:53
Format Ημερομηνίας Jim Access - Ερωτήσεις / Απαντήσεις 3 25-06-10 17:49


Η ώρα είναι 10:47.