![]() |
Γονείς - παιδιά στην Access 1 Συνημμένο(α) Καλημέρα Είμαι νέα στο forum και συγχαρητήρια για την δουλειά που κάνετε Έχω ανατρέξει στο ιστορικό και έχω δει οτι έχετε αναφερθεί στο ερώτημα μου αλλά δεν μπορώ να βγάλω άκρη ως αρχάρια και γιαυτο ζητάω την επιείκειά σας. Σας ανεβάζω και ένα παράδειγμα για να καταλάβετε το ερώτημά μου. Όπως θα δείτε έχω φτιάξει πίνακες γονιός και παιδιά (τυχαία), εχω κάνει ερώτημα που τα συνδέω, και έχω φτιάξει και μια φόρμα τον γονιό με δευτερεύον φόρμα τα παιδιά. Θέλω σε έναν άλλο πίνακα που θα ενημερώνεται απο φόρμα όταν δηλώνω τον γονιό θα μου φέρνει τα δικά του παιδιά και να επιλέγω εγώ ποιο θέλω Ελπίζω να έγινα κατανοητή Ευχαριστώ πολύ Ντόρα |
Σχέση γονέα-τέκνου 1 Συνημμένο(α) Καλημέρα Ντόρα, καλωσόρισες στη παρέα και σ' ευχαριστώ προσωπικά για τα καλά σου λόγια!:happy: Όπως οι γονείς, έτσι και τα παιδιά, στη φύση παράγονται από την ίδια ακριβώς κλάση που λέγεται "Άνθρωπος". Ο κάθε γονέας έχει και αυτός γονείς αλλά και κάθε παιδί, σε κάποια ηλικία, πιθανότατα, θα γίνει και αυτό γονέας. Όπως πιθανόν αντιλαμβάνεσαι, μεταξύ γονέα και παιδιού δεν υπάρχει κάποιο διαφορετικό χαρακτηριστικό εκτός του ότι ο γονέας έχει παιδιά. Στην πραγματικότητα όλοι μας παιδιά είμαστε που κάποτε αποκτούμε τέκνα. :icon_baby: Συνεπώς στην Access δεν μπορούμε να αναπαραστήσουμε τη σχέση γονέα-παιδιού με διαφορετικούς πίνακες για τον γονέα και το παιδί. Η κάθε εγγραφή του πίνακα προσώπων μπορεί να είναι ταυτόχρονα και γονέας και παιδί. Σου ετοίμασα ένα παράδειγμα το οποία προέκυψε από άλλο ερώτημα όμως επειδή το θέμα του είναι πιο σχετικό με την ερώτησή σου, το επισυνάπτω και εδώ, βελτιωμένο και προσαρμοσμένο στην περίπτωσή σου. Ο πίνακας pelatis φέρει δυο πεδία για τους γονείς του κάθε προσώπου (Father, Mother) τα οποία συνδέονται με τον ίδιο τον πίνακα pelatis στο μοναδικό του κλειδί. Έτσι λοιπόν, γονέας είναι κάποιος που το ID του εμφανίζεται σε κάποιο από αυτά τα δύο πεδία. Άνοιξε την περιοχή σχεδίασης των σχέσεων να δεις με ποιον τρόπο συνδέονται τα πεδία και οι πίνακες του παραδείγματος μεταξύ τους. Με τα σχετικά ερωτήματα, επιλέγουμε τις ομάδες προσώπων που μας ενδιαφέρουν, όπως ενήλικες, γονείς, μανάδες, πατεράδες, παιδιά κτλ. Πρόσεξε στο παράδειγμα πως η Ευαγγέλου Βασιλική, εκτός από παιδί του Ευάγγελου και της Αγγελικής είναι και γονέας της Αθηνάς και του Ηρακλή. (Από μικρή στα βάσανα η Βασιλικούλα... :blush:) Ελπίζω να σε βοηθάω. Καλή σου μέρα και πάλι και καλή συνέχεια! :001_smile: Φιλικά, Γιάννης Σημείωση: Προς αποφυγή σύγχυσης, στη βάση παρέμεινε μόνο ο πίνακας "pelatis". |
1 Συνημμένο(α) Καλημέρα Γιάννη Μελέτησα το συνημμένο σου αρκετά καλά εχεις κάνει τρομερή δουλειά και μου έδωσες πολλές γνώσεις που τις προσάρμοσα ανάλογα πάνω στην δική μου βάση. Για να καταλάβεις καλύτερα τι ακριβώς κάνω θα σου εξηγήσω. Για μένα λέγοντας γονείς είναι εταιρείες και λέγοντας παιδιά είναι τα εμπορεύματα της εταιρείας και πιο συγκεκριμένα φάρμακα. Έχω έναν πίνακα που τον έχω μετατρέψει σε φόρμα. Εκεί καταγράφω την κίνηση του κάθε παιδιού-φάρμακου. Το πρόβλημά μου είναι οτι μέχρι τώρα όταν δηλώνω τον πελάτη-εταιρεία γράφω με το χέρι μου το παιδί του ενω για λόγους ευκολίας και αποφυγής λαθών θέλω να ανοίγει ενα σύνθετο πλαίσιο στα παιδιά και να μου έρχονται μόνο τα παιδιά του συγκεκριμένου πελάτη. Επίσης επειδή τα φάρμακα-παιδιά είναι πολλά γίνεται να μου εμφανίζονται όλα κάτω και κάνοντας κλίκ πάνω στο όνομα που θέλω να με πηγαίνει κατευθείαν στην καρτέλα του? Τα ανενεργά να εμφανίζονται κάτω αχνά αλλά στην καρτέλα να εξαφανίζονται? Πολλές ερωτήσεις ε? Ελπίζω να μην κάνω κατάχρηση της ευγένειά σου. Σε ευχαριστώ πολύ για ότι έχεις κάνεις Φιλικά Ντόρα |
Καλημέρα Ντόρα! Ενώ σε ιδεολογικό επίπεδο οι εταιρίες και τα φάρμακα, λαμβάνοντας υπόψη τις ενέργειες και παρενέργειες στον άνθρωπο :yucky:, παρουσιάζουν αρκετές ομοιότητες, σε πρακτικό επίπεδο δεν δύναται η σχέση τους να παρομοιαστεί με τη σχέση Γονέας-Παιδί. Αυτό θα γινόταν αν η βάση σου διατηρούσε πληροφορίες για τις εταιρίες και τις θυγατρικές της. Μια εταιρία (φαρμακευτική), εκτός των άλλων, μπορεί να παράγει και φάρμακα, όμως ένα φάρμακο δεν κληρονομεί τις ιδιότητες και τα χαρακτηριστικά του από την εταιρία που το παράγει . Συνεπώς αυτό που εξετάζεται και που χρειάζεσαι, είναι μια σχέση ένα προς πολλά μεταξύ δυο πινάκων: Του πίνακα εταιριών και του πίνακα προϊόντων (φαρμάκων στην περίπτωσή σου). Στον πίνακα προϊόντων θα πρέπει να υπάρχει ένα πεδίο το οποίο θα συνδέεται με το πρωτεύον κλειδί του πίνακα εταιριών. Αν τώρα κάνεις ένα ερώτημα στον πίνακα προϊόντων με κριτήριο το κλειδί της επιλεγμένης εταιρίας, θα σου επιστρέψει μόνο τα προιόντα που ανήκουν σε αυτή την εταιρία. Αυτό λοιπόν το ερώτημα μπορείς να το χρησιμοποιήσεις ως προέλευση εγγραφών για ένα σύνθετο πλαίσιο. Αυτή είναι η πιο συνηθισμένη περίπτωση σχέσης στις βάσεις δεδομένων και η Access με τη χρήση του οδηγού δημιουργίας αντικειμένων μπορεί να δημιουργήσει εύκολα για λογαριασμό σου μια φόρμα βασισμένη στη σχέση ένα προς πολλά. Αν όμως ένα φάρμακο μπορεί να παραχθεί από πολλές εταιρίες, τότε θα χρειαστεί και ένας τρίτος πίνακας συνένωσης των δυο πρώτων ώστε να δημιουργηθεί μια σχέση πολλά προς πολλά. Σε αυτή την περίπτωση, το κλειδί της εταιρίας δεν θα εμφανίζεται στον πίνακα προϊόντων αλλά στο συνδετικό πίνακα. Επειδή όμως σε θεωρητικό επίπεδο φαίνεται να έχεις κατανοήσει τη σχέση ένα προς πολλά θα επιστρέψω σύντομα με ένα παράδειγμα χρήσης της στα αντικείμενα της Access. Ελπίζω να μην σε μπέρδεψα περισσότερο και πραγματικά χαίρομαι που θεωρείς πως σε βοηθάω!:happy: Φιλικά, Γιάννης Υ.Γ. Αν θέλεις, πες μου με πιο σκεπτικό θεωρείται ένα προϊόν (φάρμακο) ανενεργό και τι εννοείς με τον όρο "κίνηση". |
Γειά σου Γιάννη Με έχεις εντυπωσιάσει αρκετά αλλά και με μπέρδεψες αρκετα:dft005: Για να στο κάνω πιο εύκολο μην λάβεις υπόψιν σου καθόλου το γεγονός ότι το ίδιο φάρμακο μπορεί να υπάρχει και σε άλλες εταιρείες Σκέψου μόνο ότι ο πελάτης πχ αναστασίου που μπορεί να είναι η εταιρεία πχ ψψψψψψ να έχει το παιδί πχ θανάσης δηλ το φάρμακο πχ depon. Ανενεργό θεωρώ κάποιο φάρμακο που για κάποιο λόγο σταμάτησα να το κινώ και με την κίνηση οτι την εταιρεία-πελάτης με το φάρμακο-παιδι έχει κάποιο προσωρινό χαρακτηριστικό ή μπορεί να το δώσω κάπου κλπ δηλ κάτι που γίνεται μια συγκεκριμένη φορά Ελπίζω να βοήθησα Φιλικά Ντόρα |
Ζητώ συγγνώμη Ντόρα! Σκοπός μου δεν ήταν να σε μπερδέψω αλλά ούτε και να σ' εντυπωσιάσω. :blush: Δυστυχώς αυτή τη στιγμή πρέπει να αποχωρήσω (:bored:) οπότε από εμένα τουλάχιστον θα έχεις νέα (συνημμένο παράδειγμα) το βραδάκι λαμβάνοντας υπόψη όσα μου είπες. Σου εύχομαι καλή συνέχεια λοιπόν! :001_smile: Φιλικά, Γιάννης |
Γεία σας και πάλι Γιάννη σε έχασα. Είναι δύσκολα αυτά που ζητάω? Δεν εχω σκοπό να σε πιέσω αλλά ειλικρινά περιμένω νεα σου εναγωνίως. :026: Να αλλάξω την βάση μου για να βγαίνουν αυτά που θέλω? Καμιά ιδέα? Φιλικά Ντόρα |
γεια σου ντορα.αν καταλαβα καλα εχεις τους"γονεις" στον ιδιο πινακα με τα "παιδια" . υπαρχει καποιος λογος που γινεται αυτο??????? |
Γεια σου Σάκη Ο λόγος είναι για ευκολία και αποφυγή λαθών γιατί ο κάθε "γονιός" έχει πολλά "παιδιά" Εφόσον έχω φτιάξει εναν δευτ.πίνακα και συνδέονται μεταξύ τους δε γίνεται με ενα σύνθετο πλαίσιο να εμφανίζονται τα "παιδιά" του συγκεκριμένου "γονιού"? Μέχρι και πρόσφατα δεν είχα πρόβλημα αλλά καθώς τα δεδομένα μου αυξάνονται μου είναι δύσκολο να ψάχνω το κάθε "παιδι" του συγκεκριμένου "γονιού" Κάθε βοήθεια ειλικρινά ευπρόσδεκτη Φιλικά Ντόρα |
1 Συνημμένο(α) Καλημέρα στην παρέα Ντόρα αυτό που ζητάς, αν η βάση σου είναι σωστά σχεδιασμένη, γίνεται εύκολα. Στη βάση δεδομένων, που επισυνάπτεται, υπάρχουν δύο πίνακες (tblManes, tblPedia) με σχέση 1 προς πολλά και οι φόρμες (frmManesPedia, frmPedia). Στη φόρμα frmManesPedia αν μετακινηθούμε σε μία μάνα (εγγραφή) η υποφόρμα θα δείχνει τα παιδιά της. Επίσης το σύνθετο πλαίσιο «Παιδιά ανά μάνα» θα δείχνει μόνο τα παιδιά της συγκεκριμένης μάνας. Η λειτουργικότητα του σύνθετου πλαισίου οφείλεται στο ερώτημα Κώδικας: SELECT tblPedia.PediaID, tblPedia.ManaID, tblPedia.OnomaΚώδικας: Private Sub Form_Current()ΥΓ Μάνα είναι μόνο μία |
1 Συνημμένο(α) Γιώργο καλησπέρα Θα σου στείλω πίσω το συνημμένο να καταλάβεις τι ακριβώς χρειάζομαι και αν μπορείς να με βοηθήσεις. Έχω φτιάξει εναν πίνακα και την φόρμα του και θέλω εκεί να δηλώνω την "μάνα" και μετά να μου βγαίνει σε σύνθετο πλαίσιο τα παιδιά της και να επιλέγω εγω πιο απο όλα θα κινήσω- χρησιμοποιήσω κάποια δεδομένη στιγμή. Ελπίζω να έγινα κατανοητή :bye3: Δεν ήξερα οτι ήταν τόσο δύσκολο τελικά Ευχαριστώ πολύ για την ανταπόκρισή σου Ντόρα |
1 Συνημμένο(α) Ντόρα Καλησπέρα Η ΒΔ που επισυνάπτεται πρέπει να είναι αυτό που θέλεις. Φιλικά/Γιώργος |
Γιώργο Αυτό είναι που θέλω Θα προσπαθήσω να το προσαρμόσω στην δική μου βάση Ελπίζω να μην σας ξαναζαλίσω με αυτό το θέμα Σε ευχαριστώ πάααααααρα πολύ Φιλικά Ντόρα :thanks: |
1 Συνημμένο(α) Να 'μαι και εγώ ο αργοπορημένος. Καλησπέρα Ντόρα και γεια χαρά σε όλη τη παρέα! Ξέρω, σε έστησα λιγάκι (και έχω πολλές δικαιολογίες γι' αυτό :whistle:) αλλά πιστεύω πως το συνημμένο παράδειγμα θα σε αποζημιώσει. Φυσικά έχασα κάποια επεισόδια και βλέπω πως κάποιο από τα ερωτήματά σου βρήκε την απάντησή του με τη ευγενικά συνεισφορά του Γιώργου αλλά στο συνημμένο θα βρείς εκτός του δυναμικού περιορισμού των εγγραφών των σύνθετων πλαισίων, παραδείγματα εφαρμογής και για τα άλλα ερωτήματά σου όπως η επισήμανση των ανενεργών (και όχι μόνο) προϊόντων και άνοιγμα φορμών με στοιχεία του επιλεγμένου αντικειμένου. Στη βάση του διατηρούνται πληροφορίες για εταιρίες, κατηγορίες προϊόντων, προϊόντα, συμβάντα προϊόντων και λεπτομέρειες συμβάντων προϊόντων. Στις φόρμες "frmNewProduct", "sfrmEventDetails" και "sfrmCompanyCategories" παρουσιάζεται ο τρόπος με τον οποίο περιορίζουμε τις εγγραφές ενός σύνθετου πλαισίου με βάση την τιμή ενός άλλου. Παρατήρησε τις προελεύσεις εγγραφών των σύνθετων πλαισίων αυτών των φορμών και ειδικά των κατηγοριών και προϊόντων (ειδικά στη φόρμα "sfrmEventDetails") αλλά και τις διαδικασίες "AfterUpdate" των πλαισίων στις μονάδες κώδικα της κάθε φόρμας. Από τη φόρμα "frmProductActivities" μπορείς να αντλήσεις αρκετά χρήσιμα πράγματα. Σε αυτή τη φόρμα υλοποιείται η επισήμανση των ανενεργών (και όχι μόνο) προϊόντων με χρήση της μορφοποίησης υπό όρους αλλά και η εμφάνιση σχετικών πληροφοριών για τα προϊόντα και τις κινήσεις τους σε ξεχωριστές φόρμες/παράθυρα διαλόγου. Για παράδειγμα, αν βρίσκεσαι στο πεδίο "Κίνηση" ενός προϊόντος και πατήσεις στο κουμπί λεπτομερειών στα δεξιά (ή Enter), μεταφέρεσαι στη φόρμα "Συμβάντα" (frmEvents) ώστε να δεις τα στοιχεία του συμβάντος της επιλεγμένης ημερομηνίας. Αν όμως βρίσκεσαι σε κάποιο άλλο πεδίο, η ίδια διαδικασία θα σε μεταφέρει στη φόρμα "Λεπτομέρειες προϊόντων" (frmProductDetails) ώστε να δεις και να επεξεργαστείς τα στοιχεία του επιλεγμένου προϊόντος. Το ίδιο μπορεί να γίνει και για τις εταιρίες, τις κατηγορίες και τα προϊόντα μέσα από τη φόρμα "frmNewProduct" πατώντας στις αντίστοιχες "υπερσυνδέσεις". Εκείνο όμως που έχει αρκετή σημασία, είναι το ερώτημα στο οποίο βασίζεται η φόρμα "frmProductActivities" (ερώτημα "qryProductActivities") και ο τρόπος με τον οποίο συλλέγονται οι απαιτούμενες πληροφορίες από τους διάφορους και σχετικούς πίνακες. Εκεί που σπάω τους κανόνες σχεδιασμού των πινάκων είναι η περίπτωση του πίνακα "tblEventDetails". Εκεί θα δεις πως εκτός των πεδίων της κίνησης, διατηρώ και τα πεδία ονομάτων των εταιριών, των κατηγοριών και των προϊόντων. Κανονικά δεν θα πρέπει να βρίσκονται εκεί διότι η παρουσία τους εγκυμονεί κινδύνους σύγχυσης αλλά ο ρόλος τους είναι να "αγκυρώνονται" τα σύνθετα πλαίσια της φόρμας "sfrmEventDetails" σε αυτές τις στήλες και να παρουσιάζουν τις σωστές τιμές κάθε εγγραφής. Διαφορετικά, λόγω του ότι βρίσκονται σε φύλλο δεδομένων, η λειτουργία τους δεν είναι η λογικά αποδεκτή. Αποτελεί μια τεχνική/πατέντα η οποία είναι υπό έρευνα και εξέλιξη αλλά μέχρι στιγμής, αν εξαιρέσουμε το θέμα της διπλής αποθήκευσης δεδομένων, δουλεύει αρκετά καλά. Ελπίζω όμως όλα αυτά να προσθέσουν αρκετές ιδέες στη φαρέτρα σου και να μην σε μπερδέψουν περισσότερο φέρνοντας τα αντίθετα αποτελέσματα. :worry: Εξέτασε λοιπόν το παράδειγμα στο συνημμένο και αν έχεις απορίες, θα περιμένεις και πάλι αρκετά :bored: διότι από αύριο ...παίρνω τα βουνά για καμιά δεκαριά ημέρες. :icon_hihi: Τα λέμε λοιπόν! Γιάννης |
Καλημέρα Γιάννη Εννοείται οτι δεν εισαι υποχρεωμένος να απαντάς στον κάθε ένα Όσο αφορά την βάση σου εχω μείνει με το στόμα ανοιχτό:respect: Φοβερή δουλειά πραγματικά. Θα προσπαθήσω να την προσαρμόσω στην δική μου βάση και ελπίζω να τα βγάλω πέρα, καλά να περάσεις όπου και να πας και καλή ξεκούραση Ευχαριστώ πολύ ειλικρινά για τον χρόνο και τον κόπο σου Φιλικά Ντόρα |
| Η ώρα είναι 15:00. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.