| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Καλησπέρα σε όλους σας εδώ στο φορουμ,είμαι νέος στην παρέα σας και θέλω να πω ότι πραγματικά δίνετε μεγάλη βοήθεια σε πολλούς χρήστες του Ms Office έμπειρους και άπειρους καθημερινά. Με μεγάλη μου χαρά διάβασα το post του Meteora και του Kapetang που αφορά στον τρόπο με τον οποίο χειρίζεται η Access τις ημερομηνίες.Είμαι μέτριος χρήστης της Access και ασχολούμαι καιρο τώρα φτιάχνοντας μικροεφαρμογές στον ελεύθερό μου χρόνο.Ψάψνω και βρίσκω αρκετά νέα πράγματα κάθε φορά που αντιμετωπίζω κάποιο πρόβλημα με τις τεχνικές της Access. Ωστόσο,ίσως το δυσκολότερο πρόβλημα μου έχει παρουσιαστεί τωρα και όσο και αν έχω ψαξει στο internet δεν έχω καταφέρει να βρω λύση. Το πρόβλημά μου έχει να κάνει με ημερομηνίες μέσα σε ερωτήματα.Χρησιμοποιώ 3 ερωτήματα το ένα μεσα στο άλλο για να εμφανίσω κάποια ΄"σύνθετα" δεδομένα από διάφορους πίνακες.Στο 3 ερώτημα χρησιμοποιώ το 2ο ερώτημα όπως είναι ,απλά σε 1-2 από τα πεδία αυτού του ερωτήματος κάνω concatenate τις εγγραφές του με βάση το id ενός πελάτη.Είναι ένας πολύ χρήσιμος κώδικας (δε θυμάμαι ακριβώς που το είχα βρει) και μέχρι τώρα μου δούλευε πολύ όμορφα σε όσα ερωτήματα το είχα χρησιμοποιήσει. Το πρόβλημα δημιουργείται μόλις αποφασίζω ότι θέλω να φιλτράρω τα δεδομένα αυτά ώστε να εμφανίζονται για μια συγκεκριμένη περίοδο που την ορίζω με 2 txt_boxes σε μια φόρμα.Χρησιμοποιώ δηλαδή στα κριτήρια του 2ου ερωτήματος στο πεδίο της ημερομηνίας το Between txtdate1 and txtdate2.Προφανώς η access δεν αναγνωρίζει σωστά τις ημερομηνίες και μόλις τρέχω το 3 ερώτημα η access τρελαινεται και μου βγάζει το μήνυμα λάθους : RUN TIME ERROR 80040e10 Δεν έχει οριστεί τιμή για μία ή περισσότερες παραμέτρους και μόλις ανοίγω το debugger είναι highlighted η γραμμή rs.Open SQL, cnn, adOpenForwardOnly, adLockReadOnly παρακατω σας παραθέτω τον κώδικα των 2 ερωτημάτων (2ου και 3ου,το πρώτο δεν έχει νόημα να το γράφω δεν είναι κάτι το ιδιαίτερο) καθώς και τον κώδικα του Conc στο Module. Public Function Conc(Fieldx, Identity, Value, Source) As Variant Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Dim SQL As String Dim vFld As Variant Set cnn = CurrentProject.Connection Set rs = New ADODB.Recordset vFld = Null SQL = " SELECT DISTINCT [" & Fieldx & "] as Fld " & _ " FROM [" & Source & "] " & _ " WHERE [" & Identity & "]= ' " & Value & " ' " ' open recordset. rs.Open SQL, cnn, adOpenForwardOnly, adLockReadOnly ' concatenate the field. Do While Not rs.EOF If Not IsNull(rs!Fld) Then 'If InStr("vFld", "rs!Fld") = 0 Then vFld = vFld & ", " & rs!Fld End If rs.MoveNext Loop ' remove leading comma and space. vFld = Mid(vFld, 3) Set cnn = Nothing Set rs = Nothing ' return concatenated string. Conc = vFld End Function 2o query SELECT 1st_query.customer_id, 1st_query.surname, 1st_query.name, 1st_query.account_number, actions.action_internal_code, activity_codes.activity_name, 1st_query.details,actions.action_date, actions.action_internal_code AS CODE FROM 1st_query INNER JOIN (activity_codes RIGHT JOIN actions ON activity_codes.activity_code = actions.action_internal_code) ON 1st_query.account_number = actions.ypothesi_id WHERE (((actions.action_internal_code) Not In ('002','003')) AND ((actions.action_date) Between Format([Forms]![new_actions]![txt_box_start_date],"dd/mm/yyyy") And Format([Forms]![new_actions]![txt_box_end_date],"dd/mm/yyyy"))); 3o query SELECT 2nd_query.customer_id AS ID, 2nd_query.surname AS SURNAME, 2nd_query.name AS NAME, Conc("2nd_query.account_number","2nd_query.custome r_id",2nd_query.customer_id,"2nd_query") AS ACCOUNT, Conc("2nd_query.activity_name","2nd_query.customer _id",2nd_query.customer_id,"2nd_query") AS ACTION, 2nd_query.details AS DETAILS, 2nd_query.action_date FROM 2nd_query; όλα μου τα πεδία από τους πίνακες είναι text και ημερομηνίες ,τίποτα αριθμητικό.όσο κι αν έχω προσπαθήσει να μετατρέψω τη γραμμή : ((actions.action_date) Between Format([Forms]![new_actions]![txt_box_start_date],"dd/mm/yyyy") And Format([Forms]![new_actions]![txt_box_end_date],"dd/mm/yyyy"))); δεν έχω καταφέρει τίποτα,αφήστε που με τον κώδικα vba σχετικά με τισ ημερομηνίες στο άλλο topic μπερδεύτηκα περισσότερο με τις # τα "" διπλά και μονά. Ο κώδικας των ερωτημάτων είναι όπως φαίνεται στο query designer .Δοκίμασα και χωρίς το Format() αλλά τίποτα. Παιδιά ,αν μπορέσετε να με βοηθήσετε θα με κάνατε ευτυχισμένο.έχω παιδευτει πολύ και αυτό με τσαντίζει που δεν μπορώ να βρω λύση. Σας ευχαριστώ εκ των προτέρων. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| Πρόβλημα με ημερομηνίες αδειών, ρεπό. | lefterisg | Access - Ερωτήσεις / Απαντήσεις | 0 | 02-12-16 17:53 |
| [Γενικά] Προβλημα με ημερομηνιες | asterix | Excel - Ερωτήσεις / Απαντήσεις | 3 | 03-12-15 11:06 |
| Πρόβλημα με τις ημερομηνίες | Damiyo16 | Access - Ερωτήσεις / Απαντήσεις | 15 | 01-12-10 17:03 |
| Εκθέσεις από ερωτήματα | iondep | Access - Ερωτήσεις / Απαντήσεις | 6 | 04-11-10 16:12 |
| ΑΞΙΟΓΡΑΦΑ - Ένα πάρα πολύ δύσκολο θέμα!! | tzvangel | Access - Ερωτήσεις / Απαντήσεις | 8 | 26-02-10 22:58 |
Η ώρα είναι 17:22.



Θεματικός Τρόπος
