Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
![]()
Χαιρετώ την παρέα, Φτιάχνω μια βάση δεδομένων στην access εδώ και λίγο καιρό για την δουλειά μου. Έχω φτάσει κοντά στην ολοκλήρωση της αλλά κόλλησα σε κάποια ερωτήματα και θέλω την απαραίτητη βοήθεια. Όπως λέει και ο τίτλος θέλω να αναζητήσω κάποια αποτελέσματα ανάμεσα σε ημερομηνίες τις οποίες βάζω εγώ και αν είναι δυνατόν και σε προεπιλεγμένα διαστήματα (π.χ. ανά μήνα, τρίμηνο, χρόνο). Επισυνάπτω τη βάση που έχω φτιάξει και θέλω το εξής: Πατώντας στη "Διαχείριση Πελατών" ανοίγει μια φόρμα όπου συμπληρώνω τα ανάλογα πεδία κάθε φορά. Στο κάτω μέρος σε μια δευτερεύουσα φόρμα επιλέγω τον "Τύπο αίτησης Διπλώματος" και την "Κατηγορία Διπλώματος" και βάζω και μια "Ημερομηνία Εγγραφής". Θέλω λοιπόν τώρα πατώντας (στην "Κεντρική Σελίδα") Αναζήτηση και μετά "Δίπλωμα ανά Κατηγορία και Τύπο Αίτησης" να εισάγω "Ημερομηνία έναρξης" και "Ημερομηνία λήξης" και επιλέγοντας από κάτω "Κατηγορία Διπλώματος" η "Τύπος Αίτησης Διπλώματος" να βρίσκει τα αποτελέσματα ανάμεσα σε αυτές τις ημερομηνίες. Δηλαδή Ημερομηνία έναρξης=<Ημερομηνία Εγγραφής>=Ημερομηνία λήξης. Όπως θα δείτε στα κουμπιά υπάρχει συμβάν με δόμηση κώδικα. Μπορούμε να συμπληρώσουμε σε αυτά τα κριτήρια εκεί και άλλο ένα κριτήριο (ημερομηνίες);;; Πιστεύω να έγινα κατανοητός στο τι ζητάω. Ευχαριστώ |
#2
| |||
| |||
![]()
Καλημέρα Βαγγέλη, ακολούθησε τα παρακάτω βήματα: 1) Πρόσθεσε στα ερωτήματα στα οποία βασίζονται οι εκθέσεις και το πεδίο [Ημερομηνία Εγγραφής] 2) Δώσε στα πεδία ημερομηνίας στη φόρμα ονόματα txtStart και txtEnd 3) Άλλαξε τον κώδικα που ανοίγει τις εκθέσεις με τον ακόλουθο: Κώδικας: Private Sub Εμφάνιση_Click() Dim name As String name = "Στατιστικά - ανά Κατηγορία Διπλώματος" DoCmd.OpenReport name, acViewPreview, , "ΚατηγορίαΔιπλώματος= " & Me.ΛίσταΚατηγορίαΔιπλώματος _ & "AND ([Ημερομηνία Εγγραφής] Between #" & Format(Me.txtStart, "m/d/yyyy") _ & "# AND #" & Format(Me.txtEnd, "m/d/yyyy") & "#)" End Sub Private Sub Εντολή2_Click() Dim name As String name = "Στατιστικά - ανά Τύπο Αίτησης Διπλώματος" DoCmd.OpenReport name, acViewPreview, , "ΤύποςΑίτησηςΔιπλώματος= " & Me.ΛίσταΤύποςΑίτησηςΔιπλώματος _ & "AND [Ημερομηνία Εγγραφής] Between #" & Format(Me.txtStart, "m/d/yyyy") _ & "# AND #" & Format(Me.txtEnd, "m/d/yyyy") & "#" End Sub |
#3
| |||
| |||
![]()
Καπετάνιε, ΕΥΧΑΡΙΣΤΩ ! ! ! ! ! ! Παράθεση:
|
#4
| |||
| |||
![]()
kapetang 1) εάν δε θέλουμε να ορίσουμε χρόνο και να αναζητήσει όλες τις εγγραφές, χωρίς να προσθέσουμε άλλο κουμπί (τώρα βγάζει σφάλμα) τι πρέπει να συμπληρώσουμε στον κώδικα; 2) Μπορούμε να βάλουμε σταθερά διαστήματα (μήνα, τρίμηνο, ετήσιο); Ευχαριστώ |
#5
| |||
| |||
![]()
Καλησπέρα Βαγγέλη, δοκίμασε τον κώδικα. Κώδικας: Private Sub Εμφάνιση_Click() Dim name As String, strF As String name = "Στατιστικά - ανά Κατηγορία Διπλώματος" If Not IsNull(Me.ΛίσταΚατηγορίαΔιπλώματος) Then strF = "ΚατηγορίαΔιπλώματος= " & Me.ΛίσταΚατηγορίαΔιπλώματος FilterReport strF, name End Sub Private Sub Εντολή2_Click() Dim name As String, strF As String name = "Στατιστικά - ανά Τύπο Αίτησης Διπλώματος" If Not IsNull(Me.ΛίσταΤύποςΑίτησηςΔιπλώματος) Then strF = "ΤύποςΑίτησηςΔιπλώματος= " & Me.ΛίσταΤύποςΑίτησηςΔιπλώματος FilterReport strF, name End Sub Public Sub FilterReport(strF As String, strName As String) If Not IsNull(Me.txtStart) Then If strF <> "" Then strF = strF & " AND " strF = strF & "[Ημερομηνία Εγγραφής]>=#" & Format(Me.txtStart, "m/d/yyyy") & "#" End If If Not IsNull(Me.txtEnd) Then If strF <> "" Then strF = strF & " AND " strF = strF & "[Ημερομηνία Εγγραφής]<= #" & Format(Me.txtEnd, "m/d/yyyy") & "#" End If If IsNull(strF) Then DoCmd.OpenReport strName, acViewPreview Else DoCmd.OpenReport strName, acViewPreview, , strF End If End Sub Κάθε πεδίο που μένει κενό, δεν υπολογίζεται στα κριτήρια. Αν αφήσεις κενή την ημερομηνία λήξης θα εμφανιστούν οι εγγραφές με ημερομηνία εγγραφής ίση ή μεγαλύτερη από την ημερομηνία έναρξης, αν υπάρχει. Αν αφήσεις κενή την ημερομηνία έναρξης θα εμφανιστούν οι εγγραφές με ημερομηνία εγγραφής ίση ή μικρότερη από την ημερομηνία λήξης, αν υπάρχει. Αν όλα τα πεδία είναι κενά θα ανοίξει η έκθεση χωρίς να εφαρμοστεί κάποιο φίλτρο. Αν θέλεις ένα διάστημα πχ τρίμηνο θα πρέπει να δώσεις τις κατάλληλες ημερομηνίες έναρξης και λήξης (πχ 1/1/2013 , 31/3/2013). Φιλικά/Γιώργος Τελευταία επεξεργασία από το χρήστη kapetang : 31-10-13 στις 16:18. Αιτία: Προσθήκη στον κώδικα του , και # |
#6
| |||
| |||
![]()
Γειά σου Γιώργο, έβαλα τον κώδικα που μου έστειλες αλλά ανεξαρτήτως από την ημερομηνία που θα βάλεις, ή την κατηγορία που θα επιλέξεις τα εμφανίζει όλα. Το κοίταξα και το ξανακοίταξα μήπως έχω γράψει κάτι λάθος αλλά δε βρήκα κάτι. Μπορείς να ρίξεις πάλι μια ματιά; Ευχαριστώ Παράθεση:
|
#7
| |||
| |||
![]()
Καλησπέρα Βαγγέλη, έχεις δίκιο. Στην εντολή που ανοίγει τις εκθέσεις ξέχασα να βάλλω ένα κόμμα και στις ημερομηνίες το σύμβολο #. Διόρθωσα τον κώδικα στο προηγούμενο μήνυμα. Δοκίμασέ τον πιστεύω να λειτουργεί σωστά. Φιλικά/Γιώργος |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Ελάχιστη Τιμή ανάμεσα σε 2 στήλες. | spavlos | Access - Ερωτήσεις / Απαντήσεις | 2 | 01-10-13 20:07 |
Εξαγωγή αριθμού από συμβολοσειρά (ανάμεσα) | Tasos | Κείμενο | 0 | 28-09-11 07:02 |
[Γενικά] Τοποθέτηση διαχωριστικού ανάμεσα σε γράμμα και αριθμό | misirlis | Excel - Ερωτήσεις / Απαντήσεις | 8 | 15-05-11 11:11 |
[VBA] Μεταφορά δεδομένων ανάμεσα σε φύλλα | anastasiosz | Excel - Ερωτήσεις / Απαντήσεις | 11 | 10-03-11 18:21 |
Αναζήτηση τελευταίων αποτελεσμάτων | jimrenoir | Access - Ερωτήσεις / Απαντήσεις | 5 | 01-03-11 18:12 |
Η ώρα είναι 20:02.