Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Διαδοχική ενημέρωση πεδίων
Χαίρετε και καλώς σας βρήκα μιας και είναι η πρώτη φορά που γράφω, είμαι κάπως αρχάριος στην access, καθώς είναι η πρώτη φορά που τη χρησιμοποιώ. Λοιπόν, αρχίζω: έχω μία βάση η οποία έχει 9 πίνακες και τις αντίστοιχες φόρμες για κάθε πίνακα. Οι πίνακες αποθηκεύουν δεδομένα για ένα πελάτη. Για παραδειγμα, η πρώτη φόρμα αποθηκεύει τα βασικά δεδομένα του πελάτη (ονομα, τηλεφωνο, αφμ κτλ), ενώ οι υπόλοιποι διάφορα άλλα όπως φορολογικά στοιχεία, οικογενειακά κτλ. Ολοι οι πίνακες έχουν το ίδιο κλειδί, το οποίο είναι το ΑΦΜ. Αυτο που θέλω να κάνω είναι οταν δημιουργώ μία νέα εγγραφή στον πίνακα με τα Βασικά στοιχεία, αυτόματα να δημιουργείται στους υπόλοιπους πίνακες μία νέα εγγραφή που το μόνο που θα περιέχει θα είναι το ΑΦΜ, δηλαδή το κλειδί. Δηλαδή θέλω το πεδίο του ΑΦΜ του πρώτου πίνακα, να αντιγράφεται σε όλους τους υπόλοιπους αυτοματα. Παρότι υπάρχει η επιλογή όταν δημιουργείς σχέσεις μεταξύ πινάκων να ορίσεις "διαδοχική ενημέρωση σχετικών εγγραφών". Το έχω επιλέξει, δεν δουλεύει με το τρόπο που θέλω. Δηλαδή, αν και δημιουργώ νέες εγγραφές μέσα από τη φόρμα, δεν δημιουργείται νέα εγγραφή στους άλλους πίνακες, Υπάρχει κάποιος που να έχει μια ιδέα πως μπορεί να γίνει αυτο; Ευχαριστώ εκ των προτέρων |
#2
| |||
| |||
Καλησπέρα Μιχάλη καλωσόρισες στο φόρουμ. Υποθέτω ότι το «ΑΦΜ» είναι πρωτεύον κλειδί στον πίνακα με τα στοιχεία ταυτότητας του πελάτη (κύριο) και εξωτερικό κλειδί στους άλλους. Αν υπάρχουν πίνακες με πρωτεύον κλειδί το «ΑΦΜ» θα είχαμε μία σχέση 1 προς 1 και μάλλον θα έπρεπε να συγχωνευτούν σ’ έναν. Για να μπορέσουμε να αποθηκεύσουμε μία τιμή του «ΑΦΜ», που προσθέσαμε στο κύριο πίνακα και στους άλλους, θα πρέπει όλα τα άλλα πεδία τους να μη είναι απαιτούμενα. Ένας τρόπος για να προστίθεται αυτόματα το «ΑΦΜ» και στον πίνακα πχ "table1" είναι να προσθέσουμε τη φόρμα του, ως δευτερεύουσα, στην κύρια φόρμα. Έτσι αν δημιουργήσεις μία νέα εγγραφή στην κύρια φόρμα, όταν κάνεις κάποιες καταχωρήσεις στη δευτερεύουσα και αποθηκεύσεις την εγγραφή, θα αποθηκευτεί αυτόματα και το «ΑΦΜ», ενώ δεν καταχωρήθηκε. Αν η εφαρμογή σου θα έχει περιορισμένα δεδομένα μπορείς να τοποθετήσεις στην κύρια φόρμα ένα στοιχείο ελέγχου καρτέλας και σε κάθε καρτέλα να προσθέσεις ως δευτερεύουσα μία από τις άλλες φόρμες. Έτσι όλες οι φόρμες θα είναι συγκεντρωμένες σε μία σύνθετη. Φιλικά/Γιώργος |
#3
| |||
| |||
Γεια σου Γιώργο, ναι σωστά υπέθεσες το ΑΦΜ είναι το πρωτεύον κλειδί. Και επίσης εκτός από το ΑΦΜ, όλα τα άλλα πεδία στους υπόλοιπους πίνακες δεν είναι υποχρεωτικά. Δυστυχώς, δεν ξέρω αν μπορεί να γίνει αυτό που προτείνεις στην περίπτωση μου. Όλες οι φόρμες έχουν αρκετά δεδομένα, και επίσης είναι αρκετές φόρμες (7) για να τις βάλω όλες μαζί σε μία σύνθετη. Παράθεση:
Έχεις καμία άλλη ιδέα εσύ ή κάποιος άλλος; |
#4
| |||
| |||
Μιχάλη, είναι πρωτεύον κλειδί σε όλους τους πίνακες ή μόνο σε ένα και στους υπόλοιπους εξωτερικό;
Τελευταία επεξεργασία από το χρήστη kapetang : 03-08-11 στις 00:04. Αιτία: Διόρθωση ονόματος |
#5
| |||
| |||
Παραλειψή μου που δεν το διευκρίνησα. Είναι πρωτεύον κλειδί σε όλους τους πίνακες. |
#6
| ||||
| ||||
Γεια σας! Μιχάλη, καλωσόρισες στο φόρουμ! Αν μπορούσες να χρησιμοποιήσεις την προσέγγιση του Γιώργου με κύρια φόρμα και υποφόρμες, θα έφτανες ευκολότερα σε κάποιο αποτέλεσμα. Σου επισυνάπτω ένα απλό παράδειγμα που περιέχει μια κύρια φόρμα και 8 υποφόρμες, μια σε κάθε καρτέλα του στοιχείου "Tab Control". Ελπίζω να σε βοηθήσει εν μέρει. Δες επίσης και την επαλήθευση ΑΦΜ. Πληροφοριακά δες το μήνυμα: http://www.ms-office.gr/forum/access...ypoformas.html καθώς και το μήνυμα: http://www.ms-office.gr/forum/access...-karteles.html Διαφορετικά, θα μας βοηθούσε πολύ ένα δικό σου παράδειγμα όπου το ζητούμενο θα είναι πιο σαφές. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#7
| |||
| |||
Καλησπέρα στην παρέα Μιχάλη, με τις οδηγίες του Τάσου δεν νομίζω να αντιμετωπίσεις πρόβλημα στη δημιουργία μιας σύνθετης φόρμας με πολλές δευτερεύουσες. Πριν όμως φθάσεις εκεί θα πρέπει να επανεξετάσεις το σχεδιασμό της βάσης σου γιατί υπάρχουν σοβαρές ενδείξεις ότι δεν είναι σωστός. Γράφεις ότι σ’ όλους τους πίνακες (9) το ΑΦΜ είναι πρωτεύον κλειδί. Αν συμβαίνει αυτό όλοι οι πίνακες θα μπορούσαν να ενωθούν σε ένα και δε θα είχε νόημα και το ζητούμενο. Αν υποθέσουμε ότι στη βάση σου υπάρχει ένας πίνακας με τις παραγγελίες των πελατών και ο πίνακας έχει πρωτεύον κλειδί το ΑΦΜ, επειδή για κάθε ΑΦΜ (πχ ΑΦΜ=12345789 του πελάτη ΧΧΧΧΧΧΧ) μπορεί να έχει μόνο μία εγγραφή, δε θα μπορείς να καταχωρείς τις παραγγελίες του που είναι πολλές. Έχω την εντύπωση ότι μπερδεύεις το πρωτεύον κλειδί με το εξωτερικό (ξένο). Τελειώνοντας σε συμβουλεύω, πριν αρχίσεις να σχεδιάζεις φόρμες, να μελετήσεις προσεκτικά το άρθρο: Βασικές αρχές σχεδίασης βάσης δεδομένων - Access - Office.com και να ασχοληθείς περισσότερο με το σχεδιασμό της βάσης σου. Φιλικά/Γιώργος |
#8
| |||
| |||
Γεια σας, σας ευχαριστώ για τις απαντήσεις σας, δεν είχα απαντήσει γιατί ήμουν σε διακοπές. Τάσο, κοίταξα το αρχείο που είχες επισυνάψει, και άρχισα να διαμορφώνω και εγώ τη βάση μου στα πρότυπα του (μια φόρμα βασικη, οι άλλες δευτερευουσες). Το επισυνάπτω για να το δείτε. Έχει ελλείψεις ακόμα και είναι σε πρώιμο στάδιο. Αυτό που δεν μπορώ να κάνω αν και προσπαθώ από το πρωί είναι να εμφανίζεται ο χώρος της λεπτομέρειας της φόρμας. Παρότι στη σχεδίαση φαίνεται οκ, και η ιδιότητα ορατός είναι στο "ναι", μόλις πάω στη προβολή εξαφανίζεται και δεν φαίνονται τα πεδία που έχω βάλει εκεί μέσα. Επίσης, έχω θέματα με την εμφάνιση των φορμών που έχω βάλει σε καρτέλες. Δεν μπορώ (επίσης και αυτό το παλεύω απο το πρωι) να κάνω κύλιση επάνω κάτω και για αυτό δεν μπορώ να εμφανίσω ολόκληρες τις φόρμες. Ακόμα, δεν έχω φτιάξει κάποιο πίνακα στον οποίο να βάσιζεται η main_form. Θεωρείτε ότι χρειάζεται; Γιατί λογικά μπορώ να κάνω τη δουλειά μου και χωρίς αυτόν. Τέλος, Γιώργο, μπορείς να ρίξεις μία ματιά στους πίνακες και στις σχέσεις μεταξύ τους; να μου πεις αν βλέπεις παραλείψεις ή λάθη. Σας ευχαριστώ πολύ |
#9
| ||||
| ||||
Καλησπέρα Μιχάλη, Ο Τάσος σε έδωσε μια λύση, στην οποία εσύ δεν είχες παρά μόνο να αλλάξεις τα ονόματα των πινάκων και να προσθέσεις επιπλέον πεδία. Εκεί ο Τάσος χρησιμοποιεί μια σχέση μεταξύ των πινάκων ενα προς πολλά. Όμως εσύ μας παρουσιάζεις σχέσεις μεταξύ των πινάκων Ενα προς Ενα αφού, συνδέεις δυο πίνακες μέσω πρωτευόντων κλειδιών. Αυτό απλά σημαίνει-για παράδειγμα- ότι σε ένα πρόσωπο αντιστοιχεί ΜΙΑ μισθολογική εγγραφή! Ξεκαθάρισε τι θες. Κάθε εφαρμογή Access έχει δυο πυλώνες: Σχεσιακή βάση και διαχείριση βάσης. Ο Γιώργος παρεμβαίνει τονίζοντας να μελετήσεις την Σχεσιακή βάση. Χωρίς σωστή βάση δεδομένων δεν μπορείς να έχεις διαχείριση. Πάρε λοιπόν χαρτί και μολύβι και δες τον τύπο της σύνδεσης που θέλεις μεταξύ των πινάκων (Από ότι βλέπω προσανατολίζεσαι σε ένα κεντρικό πίνακα και γύρω απο αυτόν 5-6 περιφερειακοί) ...Τα προβλήματα που αντιμετωπίζεις σχετικά με το τι βλέπεις και τι θα έπρεπε να βλέπεις, έχουν σχέση με υπερμεγέθεις διαστάσεις που έχεις δώσει στις υποφόρμες σου, με το γεγονός ότι χρησιμοποιείς μονή κύρια φόρμα που απαιτεί χώρο για να αναδείξει τα περιεχόμενά της, με το γεγονός οτι οι υποφόρμες και κύρια φόρμα δεν συνδέουν τα δεδομένα,... Αυτά... Με εκτίμηση Νίκος Δ. Τελευταία επεξεργασία από το χρήστη Meteora : 16-08-11 στις 23:54. |
#10
| |||
| |||
Καλησπέρα, Νίκο, τόνισα από την αρχή ότι είμαι αρχάριος στην access, και συμπληρώνω τώρα ότι είμαι αρχάριος γενικά, καθώς είναι η πρώτη δουλειά που αναλαμβάνω και δεν διαθέτω εμπειρία. Συνεπώς από εκεί προέρχονται τα λάθη, τα οποία με τη βοήθεια από εδώ πιστεύω θα λύσω. Η λύση του Τάσου είναι όπως ξαναείπα μια χαρά, για αυτό και την ακολούθησα. Όμως έπρεπε να αλλάξω μερικά πράγματα για να τη φέρω στα μέτρα μου. Αλλά δεν πιστεύω ότι θα άλλαζε κάτι αν τροποποιούσα τα ονόματα των πινάκων και πρόσθετα επιπλέον πεδία. Πάλι τα ίδια προβλήματα θα προέκυπταν, αφού θα δημιουργούνταν πάλι οι ίδιοι πίνακες. Έχεις δίκιο ότι η σχεσιακή βάση έχει λάθη. Σε ευχαριστώ για τις επισημάνσεις. Χάρη σε αυτές έκανα και τις απαραίτητες διορθώσεις. Άρα το κρατάμε αυτό. Παράθεση:
Παράθεση:
Ανακεφαλαιώνοντας, με αυτές τις διαστάσεις στις υποφόρμες πιστεύεις ότι υπάρχει τρόπος να είναι ορθή η απεικόνιση; |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[ Φόρμες ] Ενημέρωση δύο πεδίων από σύνθετο πλαίσιο | gmax | Access - Ερωτήσεις / Απαντήσεις | 4 | 02-10-12 20:22 |
[ Φόρμες ] Αυτόματη ενημέρωση πεδίων φόρμας | ypanagis | Access - Ερωτήσεις / Απαντήσεις | 8 | 25-06-12 14:50 |
[ Υποφόρμες ] Διαδοχική Ενημέρωση | stelianta | Access - Ερωτήσεις / Απαντήσεις | 2 | 23-02-12 13:38 |
Ενημέρωση πεδίων από δευτερεύουσα φόρμα | gmax | Access - Ερωτήσεις / Απαντήσεις | 11 | 08-08-11 12:07 |
Η ώρα είναι 20:34.