Ισχύει για
Access για Microsoft 365 Access 2021 Access 2019

Επιλέξτε οποιοδήποτε θέμα παρακάτω για να μάθετε περισσότερα σχετικά με τη διαχείριση εταιρειών στο Northwind Developer Edition. 

Σημείωση: Αυτή η σελίδα αναφέρεται στην έκδοση Access Developer Showcase Edition

Στο Northwind Starter Edition, ο Πελάτης είναι ο μοναδικός τύπος εταιρείας. Στην έκδοση για προγραμματιστές έχουμε επεκτείνει αυτήν την ενότητα ώστε να περιλαμβάνει τους Πελάτες, τους Αποστολείς και τους Προμηθευτές

Επεκτεθήκαμε επίσης τα Προϊόντα για να συμπεριλάβουμε πολλούς προμηθευτές για ένα προϊόν.   

Κάθε εταιρεία μπορεί να είναι μόνο ένας τύπος: Πελάτης, Αποστολέας ή Προμηθευτής. Η επιχειρηματική περίπτωση για την αλλαγή του τύπου της εταιρείας περιγράφεται στην ενότητα frmCompanyDetail αυτού του άρθρου. '

Τύποι εταιρείας και πού χρησιμοποιούνται 

  • Πελάτης για παραγγελία

  • Αποστολέας για παραγγελία

  • Προμηθευτής για μια παραγγελία αγοράς

  • Προμηθευτής για ένα προϊόν

Επιπλέον, οι εταιρείες στην έκδοση Northwind developer μπορούν να έχουν πολλές επαφές. '

Εταιρείες στην Κορδέλα

Επιλέγοντας Εταιρείες από την κορδέλα εμφανίζονται οι Εταιρείες στο Northwind στη frmCompanyList

Εταιρική λίστα - frmCompanyList

Στην Έκδοση προγραμματιστή Northwind, η frmCompanyList είναι μια διαιρεμένη φόρμα. Μια διαιρεμένη φόρμα παρέχει δύο προβολές των δεδομένων σας ταυτόχρονα, προβολή φόρμας και προβολή φύλλου δεδομένων. Έχει επίσης κεφαλίδα και υποσέλιδο.  Σε αυτήν την υλοποίηση δεν θα εμφανίζεται η προβολή φόρμας. Όταν δεν εμφανίζεται η προβολή φόρμας, θα έχουμε ένα φύλλο δεδομένων με κεφαλίδα και υποσέλιδο.  

Δείτε πώς θα το επιτύχουμε:  

Στο frmCompanyList, η γραμμή διαίρεσης μεταξύ της κεφαλίδας και του φύλλου δεδομένων δεν είναι ορατή. Η ιδιότητα φόρμας Γραμμή διαίρεσης διαιρεμένης φόρμας έχει οριστεί σε Όχι, αποκρύπτοντας έτσι την προβολή φόρμας. 

Οι διαιρεμένες φόρμες και οι φόρμες φύλλου δεδομένων μοιάζουν με τα φύλλα εργασίας του Excel. Υποστηρίζουν φιλτράρισμα και ταξινόμηση και μπορείτε να εμφανίσετε, να αποκρύψετε ή να μετακινήσετε πεδία ή στήλες. Επίσης, οι στήλες μπορούν να αθροιστούν. 

Οι ενότητες κεφαλίδας και υποσέλιδου μιας διαιρεμένης φόρμας σάς επιτρέπουν να χρησιμοποιείτε κουμπιά εντολών, εικόνες, κείμενο(ετικέτες) και οποιαδήποτε άλλα στοιχεία ελέγχου φόρμας πρόσβασης που θέλετε να βελτιώσετε την εμπειρία του χρήστη. Για να μάθετε περισσότερα σχετικά με τις φόρμες και τις διαιρεμένες φόρμες, μπορείτε να ξεκινήσετε εδώ. Τα φύλλα δεδομένων δεν εμφανίζουν τις ενότητες κεφαλίδας και υποσέλιδου.

Μάθετε περισσότερα μέσω των επιλογών Εισαγωγή στις φόρμες και Δημιουργία διαιρεμένης φόρμας '

Η φόρμα "Εταιρική λίστα" υποστηρίζει τις εξής πέντε ενέργειες:

  • Εφαρμογή προσαρμοσμένου, προκατασκευαστού φίλτρου, φιλτραρίσματος κατ' απαίτηση ή και των δύο

  • Εμφάνιση/απόκρυψη πεδίων

  • Δημιουργία ετικετών

  • Εμφάνιση φίλτρου

  • Προσθήκη νέας εταιρείας

Κάντε διπλό κλικ σε οποιοδήποτε σημείο στη γραμμή λεπτομερειών για να ανοίξετε τη φόρμα "Λεπτομέρειες εταιρείας" (όχι μόνο στο αναγνωριστικό όπως σε άλλες φόρμες).  '

Προκατασκευαία φίλτρων και φιλτραρίσματος κατ' απαίτηση

Η φόρμα frmCompanyList είναι εμπλουτισμένη με ευκαιρίες για φιλτράρισμα των εταιρειών στο Northwind.  Στο επάνω μέρος της οθόνης, μπορείτε να φιλτράρετε χρησιμοποιώντας αυτά τα κουμπιά επιλογής:

  • Όλες οι εταιρείες (η προεπιλογή)

  • Μόνο πελάτες

  • Μόνο αποστολείς

  • Μόνο προμηθευτές

Επιπλέον, είναι διαθέσιμες οι ενσωματωμένες, κατ' απαίτηση, επιλογές φιλτραρίσματος του φύλλου δεδομένων. Τα φίλτρα που εφαρμόζονται στη φόρμα "Εταιρική λίστα" (προκατασκευασμένο ή κατ' απαίτηση) μεταβιβάζονται και εφαρμόζονται στο frmCompanyDetail κατά το άνοιγμά του.  

Για να μεταβιβάσετε φίλτρα από μια φόρμα σε μια άλλη, πρέπει πρώτα να εκκαθαρίσετε τη συμβολοσειρά φίλτρου της φόρμας ώστε να περιέχει μόνο ονόματα πεδίων. Ανατρέξτε στη λειτουργική μονάδα κώδικα Open_frmCompanyDetail για μια πιο λεπτομερή επεξήγηση του τρόπου με τον οποίο γίνεται αυτό και, στη frmCompanyDetail , στα σχόλια για Form_Load για να δείτε πώς εφαρμόζεται.

Μεταβιβάζουμε τις πληροφορίες φίλτρου στη φόρμα εταιρικών λεπτομερειών μέσω της ιδιότητας OpenArgs της φόρμας αντί να ανοίξουμε τη φόρμα με συνθήκη όπου .  Μπορείτε να μάθετε περισσότερα σχετικά με τα OpenArgs εδώ.

Εμφάνιση/απόκρυψη πεδίων

Επιλέξτε Εμφάνιση/Απόκρυψη πεδίων για να ανοίξετε ένα παράθυρο διαλόγου με μια λίστα με όλα τα διαθέσιμα πεδία. μπορείτε να επιλέξετε ή να καταργήσετε την επιλογή μίας ή περισσότερων στηλών. Η επιλεγμένη διάταξη συνεχίζεται από μία περίοδο λειτουργίας σε μια άλλη μέχρι να αναπτυχθεί μια νέα έκδοση της εφαρμογής. Ανατρέξτε στο θέμα Εμφάνιση ή απόκρυψη στηλών σε φύλλο δεδομένων. 

Δημιουργία ετικετών

Το κουμπί Δημιουργία ετικετών ανοίγει τον Οδηγό ετικετών της Access. Μάθετε περισσότερα σχετικά με τον οδηγό ετικετών εδώ: Δημιουργία ετικετών αλληλογραφίας στην Access. 

Άνοιγμα εταιρικών λεπτομερειών

Κάντε διπλό κλικ οπουδήποτε σε μια γραμμή λεπτομερειών για να ανοίξετε το frmCompanyDetail

Κάντε κλικ στο πεδίο "Αναγνωριστικό" (έχει οριστεί ως υπερ-σύνδεση) ή κάντε διπλό κλικ σε οποιοδήποτε άλλο πεδίο στη γραμμή λεπτομερειών για να ανοίξετε το frmCompanyDetail στην επιλεγμένη Εταιρεία και μεταβιβάστε οποιοδήποτε φίλτρο φόρμας που έχει εφαρμοστεί στη Λίστα εταιρειών στο frmCompanyDetail.

Λεπτομέρεια εταιρείας - frmCompanyDetail

Με την πρώτη ματιά, το frmCompanyDetail μπορεί να φαίνεται σχετικά απλό.  Ωστόσο, δεν είναι.  Στον κώδικα πίσω από τη φόρμα, συμβαίνουν πολλά!  Η φόρμα επισημαίνει τις ακόλουθες ενέργειες και δυνατότητες:

  • Διάφορα κουμπιά εντολών και συνδέσεις

    • Προσθήκη εταιρείας

    • Εταιρική λίστα ηλεκτρονικού ταχυδρομείου

    • Εμφάνιση φίλτρου

    • Διαγραφή εταιρείας

    • Άνοιγμα χάρτη με βάση διεύθυνση

    • Άνοιγμα τοποθεσίας Web από υπερ-σύνδεση

  • Ακύρωση ή αποθήκευση ενεργειών σε λειτουργία προσθήκης/επεξεργασίας

  • Κανόνες επιχείρησης για να ελέγχετε πότε μπορεί να αλλάξει ένας τύπος εταιρείας

  • Έλεγχος ακεραιότητας αναφορών πριν από το συμβάν διαγραφής '

Το συμβάν Form_Load περιλαμβάνει τις ακόλουθες ενέργειες:

  • Χρήση πολλαπλών παραμέτρων που μεταβιβάζονται στη φόρμα μέσω openArgs και της προσαρμοσμένης συνάρτησης Northwind StringToDictionary

  • Χρήση της ιδιότητας φόρμας OpenArgs για να επιτρέψετε σε ένα χρήστη να προσθέσει μια νέα εταιρεία κατά τη λήψη μιας παραγγελίας

  • Χρησιμοποιήστε την τεχνική GoToRecord για να προσθέσετε μια νέα εταιρεία

  • Χρησιμοποιήστε την τεχνική SearchForRecord για να μετακινηθείτε στην επιλεγμένη Εταιρεία στο frmCompanyList

  • Επιλογές διακλάδωσης/εκτέλεσης υπό όρους (ανατρέξτε στο θέμα συμβάν Form_Load)

    • Επιλογή 1 - Πρόταση υπόθεσης

    • Επιλογή 2 - Ένθετης δυνατότητας εάν υπάρχει

    • Επιλογή 3 – ElseIf

    • Επιλογή 4 - Ένθετα εάν διαφορετικά και ElseIf '

Στο συμβάν Form_Current, συμβαίνουν τα εξής: 

  • Αλλάξτε μια λεζάντα δευτερεύουσας φόρμας και ένα αντικείμενο προέλευσης κατά το χρόνο εκτέλεσης, καλώντας το δευτερεύον στοιχείο ManageFormOptions(). Αυτή η υπορουτίνη καλείται από πολλές θέσεις σε αυτή τη φόρμα.  '

Ακύρωση ή Αποθήκευση ενεργειών όταν βρίσκεστε σε λειτουργία προσθήκης ή επεξεργασίας. 

Οι φόρμες της Access είναι δεσμευμένες.  Τι σημαίνει αυτό?  Από τη Microsoft: "Μια "δεσμευμένη" φόρμα είναι μια φόρμα που συνδέεται απευθείας με μια προέλευση δεδομένων, όπως ένας πίνακας ή ένα ερώτημα, και μπορεί να χρησιμοποιηθεί για την εισαγωγή, επεξεργασία ή εμφάνιση δεδομένων από αυτή την προέλευση δεδομένων".

Με τις δεσμευμένες φόρμες, η Access δεν απαιτεί ρητά να "αποθηκεύσετε" τα δεδομένα σας.  Όταν μετακινείστε από μια εγγραφή στην επόμενη, η Access αποθηκεύει αυτόματα τα δεδομένα σας.  Συχνά αυτό λειτουργεί ακριβώς με τον τρόπο που θέλετε.  Τι γίνεται όμως εάν ένας χρήστης πρέπει να κάνει μια ενέργεια για να υποδείξει ότι είναι έτοιμος να αποθηκεύσει; 

Για παράδειγμα, η φόρμα frmCompanyDetail έχει μια δευτερεύουσα φόρμα για τις Επαφές (sfrmCompanyDetail_Contacts).  Επομένως, τι θα συμβεί εάν αρχίσετε να προσθέτετε ή να επεξεργάζεστε τα εταιρικά δεδομένα — ας υποθέσουμε τον αριθμό τηλεφώνου — και κάνετε παύση για να διορθώσετε ένα ορθογραφικό λάθος που παρατηρήσατε στις πληροφορίες μιας επαφής;  Από προεπιλογή, η Access θα αποθηκεύσει τις αλλαγές που κάνατε στην εγγραφή της εταιρείας όταν κάνετε κλικ στην εγγραφή επαφής, κάτι που δεν είναι αυτό που θέλετε. 

Σε αυτήν τη φόρμα, δείχνουμε έναν τρόπο για να το επιτύχετε αυτό με μία μόνο εγγραφή για μια εταιρεία.

Ποιος είναι ο λόγος για τον οποίο υπάρχει το κουμπί "Άκυρο "; Το κλειδί διαφυγής ακυρώνει τα δεδομένα που έχουν εισαχθεί ή τροποποιηθεί (αλλά δεν έχουν αποθηκευτεί) σε ένα στοιχείο ελέγχου της φόρμας. Σε αυτή την κατάσταση, το εικονίδιο μολυβιού εμφανίζεται στον επιλογέα εγγραφών (μια γκρι κατακόρυφη γραμμή στην αριστερή πλευρά της γραμμής).

Ωστόσο, αφού κάνετε κλικ στο κουμπί Προσθήκη εταιρείας , θα παρατηρήσετε ότι δεν υπάρχει εικονίδιο μολυβιού μέχρι να ξεκινήσετε την εισαγωγή δεδομένων στη νέα εγγραφή εταιρείας. Τι γίνεται εάν αλλάξετε γνώμη για την προσθήκη μιας νέας εταιρείας σε αυτό το σημείο; Εάν πατήσετε το πλήκτρο escape, δεν συμβαίνει τίποτα, επειδή δεν έχετε εισαγάγει δεδομένα ακόμα. Αυτός είναι ο λόγος για τον οποίο έχουμε το κουμπί ακύρωσης.

Το κλικ στο κουμπί Άκυρο λειτουργεί πάντα. Το κλειδί escape λειτουργεί μόνο όταν έχετε εισαγάγει ή αλλάξει δεδομένα.  

Εάν αρχίσετε να προσθέτετε ή να αλλάζετε δεδομένα και, στη συνέχεια, κλείσετε τη φόρμα χωρίς να κάνετε κλικ στην επιλογή αποθήκευση ή ακύρωση, από προεπιλογή η Access θα αποθηκεύσει τα δεδομένα.  

Επιχειρηματικός κανόνας: Ως επιχειρηματικός κανόνας Northwind για εταιρείες, θέλουμε να δηλώσετε ρητά ότι θέλετε να κάνετε "Αποθήκευση".  Για να εξασφαλίσουμε ότι, πρέπει να ελέγξουμε εάν ο χρήστης έκανε κλικ στην επιλογή Αποθήκευση στο συμβάν Form_BeforeUpdate και, εάν δεν έκανε κλικ στην επιλογή αποθήκευση, ώθησε το χρήστη να υποδείξει εάν θέλει να αποθηκεύσει ή να ακυρώσει τις αλλαγές του. '

Αλλαγή τύπου εταιρείας

Επιχειρηματικός κανόνας: Εάν μια εταιρεία έχει υπάρχουσες παραγγελίες, παραγγελίες αγοράς ή είναι προμηθευτής για ένα προϊόν, ο χρήστης δεν μπορεί να αλλάξει τον τύπο εταιρείας. Έχουμε δημιουργήσει μια συνάρτηση, companyisActive(), για να προσδιορίσουμε εάν υπάρχουν οποιεσδήποτε από τις παραπάνω συνθήκες. Σε αυτήν την περίπτωση, ο χρήστης δεν μπορεί να αλλάξει τον τύπο εταιρείας μέχρι να εκκαθαριστούν αυτές οι αναφορές (διαγραφούν). 

Αυτός ο κανόνας επιβάλλεται μόνο σε αυτήν τη φόρμα.  Σε μια εφαρμογή έτοιμη για παραγωγή, δεν επιτρέπετε στους χρήστες να αλλάζουν δεδομένα ανοίγοντας απευθείας τον πίνακα.  Στην ενότητα Northwind, σας επιτρέπουμε να ανοίγετε τους πίνακες και να κάνετε ό,τι θέλετε.  Αυτός είναι ένας εξαιρετικός τρόπος για να μάθετε, αλλά σας αφήνει επίσης ελεύθερους να κάνετε αλλαγές που ενδέχεται να παραβιάζουν τους κανόνες. 

Θα πρέπει πάντα να προγραμματίζετε αμυντικά. Σχεδιάστε το μη αναμενόμενο. Ακόμα και αν η Εταιρεία είναι αυτή τη στιγμή αποστολέας, αυτό δεν σημαίνει ότι δεν ήταν κάποια στιγμή προμηθευτής ή πελάτης. Το αναγνωριστικό τους μπορεί να βρεθεί σε παλαιότερες εγγραφές στο ProductVendor ή στους πίνακες PurchaseOrder . '

Φόρμα προσαρμοσμένου παραθύρου διαλόγου.

Για να εμφανίσει τα ευρήματά της, cboCompanyTypeID_BeforeUpdate χρησιμοποιεί μια φόρμα παραθύρου διαλόγου, το frmGenericDialog. Αυτό μπορεί να είναι μια εξαιρετική εναλλακτική λύση στο τυπικό πλαίσιο μηνύματος όταν έχετε πολλές πληροφορίες να εμφανίσετε. Χρησιμοποιείται επίσης με τη φόρμα υπαλλήλου για παρόμοιο σκοπό.'  Delete Referential Integrity Check

Στην έκδοση Northwind Starter, η προεπιλεγμένη συμπεριφορά της Access σάς ειδοποιεί ότι δεν είναι δυνατή η διαγραφή μιας εταιρείας όταν έχει σχετικές εγγραφές.  

Στην Έκδοση προγραμματιστή Northwind, θα σας ειδοποιήσουμε πριν από τη διαγραφή, αντί να αποδεχτείτε την προεπιλεγμένη συμπεριφορά της Access.  Το κάνουμε αυτό χρησιμοποιώντας την ίδια συνάρτηση που κάναμε με την Αλλαγή τύπου εταιρείας. συνάρτηση CompanyIsActive().

Η διαφορά είναι ότι μας ενδιαφέρουν μόνο οι παραγγελίες ή οι παραγγελίες αγοράς. Εάν δεν υπάρχουν παραγγελίες ή παραγγελίες αγοράς, επιβεβαιώνουμε την πρόθεσή σας να διαγράψετε και θα διαγράψουμε τον Προμηθευτή και τις Επαφές προϊόντος, εάν υπάρχουν για εσάς. 

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.