Στις: 12 Φεβ 2012 18:34 Θέμα:
Μετατροπή String σε Date για σύγκριση vb2008+ms access2010 Περιγραφή θέματος: Μετατροπή String σε Date για σύγκριση μέσα στην Select
Καλησπέρα σε όλους,
Αντιμετωπίζω το εξής πρόβλημα και θα ήθελα την βοήθειά σας:
Δουλεύω σε Visual Studio με Visual Basic 2008 και ms Access 2010.
Έχω δημιουργήσει μια εφαρμογή που μέσα στα πολλά πεδία έχει και κάποια τα οποία είναι ημερομηνίες.
Τις ημερομηνίες τις έχω δηλώσει ως string μέσα στην access γιατί αντιμετώπισα μεγάλο πρόβλημα κατά την διαδικασία εισαγωγής τους μέσα στην access, όταν αυτές περιείχαν μηδενικές τιμές.
Τώρα θέλω να φιλτράρω τα αποτελέσματα που θέλω να εξάγω με βάση κάποια ημερομηνία που θέλω να εισάγω εγώ, αλλά μου βγάζει σφάλμα μέσα στην "where" ...
Το πεδίο με την ημερομηνία μου είναι "BDATE" (υπενθυμίζω ως string)
Μέχρι στιγμής έχω δοκιμάσει:
1) SELECT * FROM MYTABLE WHERE CDate(BDATE) > #1/1/2010#
2) SELECT * FROM MYTABLE WHERE CDate([BDATE]) > #1/1/2010#
3) SELECT * FROM MYTABLE WHERE convert(datetime, [BDATE], 103) > #1/1/2010#
-------
Όμως παραμένει το σφάλμα....
Αν κάποιος γνωρίζει, τον ευχαριστώ εκ των προτέρων
Μέλος από: 18 Φεβ 2009 Μηνύματα: 256+ Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
Στις: 13 Φεβ 2012 13:13 Θέμα:
παράθεση:
SELECT * FROM MYTABLE WHERE CDate(BDATE) > #1/1/2010#
σε access 2007 δουλευει μια χαρά
στείλε την βάση σου να δω μήπως το λάθος είναι αλλού
MamRa
Μέλος από: 06 Δεκ 2009 Μηνύματα: 29
Στις: 14 Φεβ 2012 00:13 Θέμα:
Φίλε Virxen75 ευχαριστώ για την άμεση απάντησή σου,
Το δοκίμασα και αυτό που μου έστειλες
αλλά συνεχίζει να μου βγάζει το σφάλμα "Συντακτικό σφάλμα στο όρο WHERE".
Επειδή η βάση δεδομένων έχει ήδη κάποια στοιχεία "εγγραφές" δεν μπορώ να σου την στείλω, παρόλα αυτά μπορώ να σου δώσω περισσότερες διευκρινίσεις.
1)Μέσα στην access το πεδίο BDATE είναι δηλωμένο ως "Κείμενο"
2)Η κλήση - σύνδεση με την access γίνεται με module ("γιατί έχω πολλές φόρμες").
virxen75
Μέλος από: 18 Φεβ 2009 Μηνύματα: 256+ Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
Στις: 14 Φεβ 2012 00:33 Θέμα:
μήπως κάπου έχεις βάλει ελληνικό γράμμα αντί αγγλικό?
MamRa
Μέλος από: 06 Δεκ 2009 Μηνύματα: 29
Στις: 14 Φεβ 2012 00:52 Θέμα:
Η λύση βρέθηκε και ήταν αλλού !
Σε ευχαριστώ πάντως !
Το strsql μου ήταν σύνθετο με 89 συνθήκες, δηλαδή του τύπου:
strsql = "Select * from mytable where "
If <συνθήκη1> Then
strsql = strsql + "CDate(BDATE) > #1/1/2010# "
End if
Και υπήρχε λογικό σφάλμα στην συνθήκη, οπότε η where έμενε κενή.
Σε ευχαριστώ πάντως !
MamRa
Μέλος από: 06 Δεκ 2009 Μηνύματα: 29
Στις: 14 Φεβ 2012 01:49 Θέμα:
Βιάστηκα να κλείσω το θέμα.
Νέο Σφάλμα !
Η παράμετρος CDate δεν δέχεται μηδενικές τιμές από την βάση δεδομένων.
Και το πεδίο μου BDATE δεν έχει υποχρεωτικά κάποια τιμή, καθώς συμβολίζει την ημερομηνία γέννησης, και πολλοί δεν θέλουν να δίνουν τέτοια στοιχεία (Γυναίκες).