Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Φίλτρο σε σύνθετο πλαίσιο
Γειά σας! Θα ήθελα αν μπορεί να με βοηθήσει κάποιος στο εξής. Έχω σε μια φόρμα ένα σύνθετο πλαίσιο ΜΑΘΗΜΑ 1 θέλω όταν επιλέγω ένα μάθημα να αφαιρείται από τις επιλογές μου στο σύνθετο πλαίσιο π.χ. αν έχω επιλέξει τα μαθήματα Θρησκευτικά, Γεωγραφία, Ιστορία να μην εμφανίζονται ως δυνατές επιλογές σε επόμενη επιλογή αλλά μόνο τα υπόλοιπα. Ευχαριστώ εκ' των προτέρων!!! |
#2
| |||
| |||
Τελικά βρήκα μια λύση
|
#3
| ||||
| ||||
Καλησπέρα Δημήτρη είσαι μερακλής! Ασχολείσαι με σπουδαία θέματα. Οφείλεις όμως να ξεκινήσεις σωστά και αυτό το χρωστάς μόνο στον εαυτό σου. Ξεκίνα με σχεσιακές βάσεις δεδομένων για 2-3 μήνες και μετά απλή access, χωρίς ίχνος VBA. Μείνε σε αυτό το στάδιο μερικούς μήνες. Τα υπόλοιπα θα έλθουν μόνα τους. Αγαπητέ μου έχεις καλές ιδέες, ωφέλιμες για τα σχολεία μας. Ανεβάζω μια σκέψη στα 'πρότυπα' του φίλο μου Γιώργου, οποίος πρόσφατα μας παρουσίασε ένα subQuery. Με εκτίμηση Νίκος Δ. Υστερολόγιο: Δεν είδα την λύση σου λόγω χρόνου... Μπράβο για την επιμονή σου. |
#4
| |||
| |||
Παράθεση:
Δυστυχώς ξέρω αρκετά από σχεσιακές βάσεις δεδομένων και απλή access αλλά ελάχιστα απο VBA Το πρόβλημα ήταν πως εκφράζεις τη διαφορά δύο συνόλων Α-Β σε ερώτημα. Η λύση που βρήκα είναι: Παίρνεις όλα τα στοιχεία απο το Α, απο το Β μόνο όσα υπάρχουν στο Α και αφαιρείς όσα είναι ίσα δηλαδή κρατάς όσα διαφέρουν όπως στη θεωρία συνόλων. |
#5
| |||
| |||
Καλημέρα στην παρέα Παίρνοντας αφορμή από τα μηνύματα του Νίκου και του Δημήτρη και ιδίως το τελευταίο που αναφέρεται σε σύνολα, θα προσπαθήσω να συσχετίσω τα σύνολα με κάποια ερωτήματα επιλογής. Υποθέτω ότι έχουμε τα σύνολα Α={α, β, γ, δ, ε } και Β={γ, ε, ζ, η}. Σύμφωνα με τη σχετική θεωρία: 1)Η ένωση των συνόλων Α και Β είναι το σύνολο Γ που περιέχει όλα τα στοιχεία των δύο συνόλων, χωρίς επαναλήψεις: Γ={α, β, γ, δ, ε, ζ, η}. 2) Η τομή των συνόλων Α και Β είναι το σύνολο Γ που περιέχει τα κοινά στοιχεία των δύο συνόλων: Γ={γ, ε}. 3) Η Διαφορά Α-Β=Γ περιέχει τα στοιχεία του συνόλου Α που δεν είναι στοιχεία του Β: Γ={α, β, δ}. Επειδή τα ερωτήματα επιλογής επιστρέφουν σύνολα εγγραφών το πρότυπο της SQL δίνει τη δυνατότητα να εφαρμοστούν τα ισχύοντα στα σύνολα και στα ερωτήματα. Έτσι αν έχουμε δύο ερωτήματα με ίδια πεδία, ΕρώτημαΑ και ΕρώτημαΒ, μπορούμε: 1) Με την έκφραση: ΕρώτημαΑ UNION ΕρώτημαΒ, να πάρουμε το σύνολο των εγγραφών που επιστρέφουν τα δύο ερωτήματα, χωρίς πολλαπλές εγγραφές ,όπως στην ένωση συνόλων. Αν χρησιμοποιήσουμε την έκφραση ΕρώτημαΑ UNION ALL ΕρώτημαΒ θα πάρουμε όλες τις εγγραφές που επιστρέφουν τα δύο ερωτήματα (μπορεί να υπάρχουν πολλαπλές εγγραφές). 2) Με την έκφραση: ΕρώτημαΑ INTERSECT ΕρώτημαΒ, θα πάρουμε μόνο τις εγγραφές που είναι ίδιες και στα δύο ερωτήματα, όπως στην τομή συνόλων. 3) Με την έκφραση: ΕρώτημαΑ EXCEPT ΕρώτημαΒ, θα πάρουμε μόνο τις εγγραφές του ερωτήματος Α που δεν υπάρχουν στο ερώτημα Β, όπως στη διαφορά συνόλων. Ενώ όλα τα σοβαρά συστήματα σχεσιακών βάσεων δεδομένων, υποστηρίζουν τους παραπάνω τελεστές, η access δεν υποστηρίζει τους INTERSECT και EXCEPT. Για να πάρουμε την τομή και τη διαφορά εγγραφών στην access μπορούμε να χρησιμοποιήσουμε ερωτήματα με υποερωτήματα της μορφής: 1) Για την τομή: SELECT field1 FROM Table1 WHERE field1 in (SELECT field2 FROM Table2). 2) Για τη διαφορά: SELECT field1 FROM Table1 WHERE field1 not in (SELECT field2 FROM Table2). Στο αρχείο που επισυνάπτω, υπάρχει ένα σύνθετο πλαίσιο με τα χαρακτηριστικά που θέλει ο Δημήτρης. Για προέλευση γραμμής έχει ένα ερώτημα που δίνει τη διαφορά εγγραφών των πινάκων tblMathima-tblProgramma και τιμή ΟΧΙ για την ιδιότητα «Περιορισμός στη λίστα» . Φιλικά/Γιώργος Τελευταία επεξεργασία από το χρήστη kapetang : 18-05-11 στις 15:32. Αιτία: αντί ένωση τομή |
#6
| ||||
| ||||
Καλησπέρα σε όλους! Επισυνάπτω κι εγώ ένα παραδειγματάκι χωρίς κώδικα VBA. Το σύνθετο πλαίσιο σε φόρμα, αντλεί τα δεδομένα του από ένα ερώτημα QryUniques. Το ερώτημα QryUniques σε προβολή SQL: Κώδικας: SELECT tblmathima.ID, tblmathima.mathima, tblProgramma.MathimaID FROM tblmathima LEFT JOIN tblProgramma ON tblmathima.ID = tblProgramma.MathimaID WHERE (((tblProgramma.MathimaID) Is Null)); Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#7
| |||
| |||
Σας ευχαριστώ όλους!!!! Καλύφθηκα πλήρως, ειδικά ο Γιώργος ήταν πολύ αναλυτικός στα σύνολα. Γενικά με ενδειαφέρει και το θεωρητικό μέρος για να κατανοώ καλύτερα τις διεργασίες. Θα το δουλέψω και θα δω αν υπάρχει κάτι άλλο. Φιλικά/Δημήτρης Υστερόγραφο1: Η λύση του Τάσου είναι περίπου ίδια με τη δικιά μου Α-Β =Α LEFT JOIN Β όπου Β is null Α τομή Β=Α LEFT JOIN Β όπου Β is not null Υστερόγραφο1: Δεν ήξερα για την εντολή in και not in |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Φίλτρο σε σύνθετο πλαίσιο | Αντώνης | Access - Ερωτήσεις / Απαντήσεις | 5 | 01-07-16 12:52 |
[ Φόρμες ] Φίλτρο σε σύνθετο πλαίσιο από πινάκα σχετιζόμενο με άλλο σύνθετο πλαίσιο | Dafnh0106 | Access - Ερωτήσεις / Απαντήσεις | 3 | 18-01-13 20:12 |
Σύνθετο πλαίσιο? | pakos | Access - Ερωτήσεις / Απαντήσεις | 3 | 28-04-12 16:33 |
[ Φόρμες ] Σύνθετο πλαίσιο | Πέτρο | Access - Ερωτήσεις / Απαντήσεις | 7 | 29-02-12 14:17 |
Φίλτρο σε ...σύνθετο πλαίσιο! | Meteora | Access - Ερωτήσεις / Απαντήσεις | 3 | 13-05-09 20:36 |
Η ώρα είναι 07:06.