Καλημέρα στην παρέα
Στη βάση δεδομένων που επισυνάπτεται παρουσιάζονται οι συνηθέστερες μορφές ημερομηνίας μαζί με τις εκφράσεις που πρέπει να χρησιμοποιούνται, ώστε οι ημερομηνίες να αποθηκεύονται και να εμφανίζονται σωστά.
Αφορμή για τη δημιουργία της αποτέλεσε σχετικό μήνυμα του φίλου μου Νίκου (meteora).
Οι εκφράσεις (τύποι) προέκυψαν από δοκιμές του Νίκου και δικές μου και αφορούν συστήματα (PC) στα οποία η ημερομηνία έχει καθοριστεί (στις τοπικές ρυθμίσεις) στη μορφή (dd/mm/yyyy).
Η ΒΔ αποτελείται από μία φόρμα «frmDates» δεσμευμένη στον πίνακα «tblDates» και ένα ερώτημα προσθήκης «qryAddDates».
Με τη βοήθεια των στοιχείων ελέγχου της φόρμας μπορούμε να προσθέσουμε στον πίνακα ημερομηνίες, με διαφορετικές μορφοποιήσεις και να τις εμφανίσουμε στο δεσμευμένο πλαίσιο κειμένου, στην ελληνική μορφοποίηση «dd/mm/yyyy».
Στη φόρμα επίσης μπορούν να γίνουν και κάποιες πράξεις με ημερομηνίες και να εμφανιστούν τα αποτελέσματα.
Η λειτουργικότητα της φόρμας οφείλεται στο ερώτημα προσθήκης «qryAddDates», στους τύπους που υπάρχουν στην προέλευση στοιχείου στα τελευταία πλαίσια κειμένου που εμφανίζουν τα αποτελέσματα των πράξεων με ημερομηνίες και στον παρακάτω κώδικα.
Κώδικας:
Private Sub cmdDMY2_Click()
'Προσθήκη ημερομηνίας με πρόταση SQL
'Η μορφή της ημερομηνίας από ελληνική μετατρέπεται σε αμερικάνικη
DoCmd.RunSQL "Insert Into tblDates Values (#" & Format(Me!txtDMY2, "mm/dd/yyyy") & "#);"
Me.Requery
Me.Recordset.MoveLast
End Sub
Private Sub cmdMDY_Click()
'Προσθήκη ημερομηνίας με πρόταση SQL
'Η μορφή της ημερομηνίας επειδή είναι σε μορφή ΗΠΑ δε μετατρέπεται
DoCmd.RunSQL "Insert Into tblDates Values (#" & Me!txtMDY & "#);"
Me.Requery
Me.Recordset.MoveLast
End Sub
Private Sub cmdYMD_Click()
'Προσθήκη ημερομηνίας με πρόταση SQL
'Η μορφή της ημερομηνίας yyyy/mm/dd αναγνωρίζεται σωστά χωρίς μετατροπή
DoCmd.RunSQL "Insert Into tblDates Values (#" & Me!txtYMD & "#);"
Me.Requery
Me.Recordset.MoveLast
End Sub
Παρατηρήσεις, διορθώσεις και βελτιώσεις είναι ευπρόσδεκτες.
Φιλικά/Γιώργος