Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Το περιεχόμενο εδώ μπορεί να ισχύει για τις εκδόσεις Developer Edition και Starter Edition Northwind 2.0. 

Η VBA (Visual Basic for Applications) είναι η γλώσσα προγραμματισμού που χρησιμοποιείται σε όλα τα προϊόντα του Office. Η VBA εκμάθησης σάς επιτρέπει να εργάζεστε με όλα τα προϊόντα του Office (όχι μόνο με την Access).
Κατά την αναζήτηση για "οδηγίες", φροντίστε να αναζητήσετε συγκεκριμένα παραδείγματα της Access και να συμπεριλάβετε τη Microsoft Access στην αναζήτηση. Συχνά οι λύσεις για τα άλλα προϊόντα του Office θα λειτουργούν - αλλά δεν υπάρχει καμία εγγύηση. Η Microsoft Access είναι ένα προϊόν για ενήλικες. αυτό σημαίνει ότι υπάρχουν πολλά παραδείγματα εκεί έξω· το οποίο είναι υπέροχο για εσάς! 

Σημαίνει επίσης ότι τα παλαιότερα βιβλία για τον προγραμματισμό της Access εξακολουθούν να είναι βιώσιμα για να τα εξετάσετε. Πολλά από τα παλαιότερα βιβλία εξακολουθούν να είναι διαθέσιμα σε μεταχειρισμένους ιστότοπους βιβλίων με ένα κλάσμα του αρχικού τους κόστους. Ελέγξτε την τοποθεσία web της Microsoft για να προσδιορίσετε ποιες εκδόσεις της Access υποστηρίζονται ακόμη και επιλέξτε τις.

Λήξη πόρων υποστήριξης για το Office - Ανάπτυξη του Office | Microsoft Learn  

Ακολουθούν ορισμένες συνδέσεις προς την τεκμηρίωση της Access στη Microsoft.

Τα αρχεία της Microsoft Access είναι αρχεία του Office. Τα αρχεία του Office πρέπει να βρίσκονται σε "Αξιόπιστη θέση" ή να έχουν "ενεργοποιημένο το περιεχόμενό τους". Αυτά τα στοιχεία θεωρούνται "ασφαλή" επειδή τα δημιουργήσατε εσείς ή προέρχονται από αξιόπιστη πηγή. Ο έλεγχος για αξιόπιστες θέσεις πραγματοποιείται κάθε φορά που ανοίγετε οποιοδήποτε αρχείο του office. Από εδώ και στο εξής, θα αναφερόμαστε σε αυτό ως Αξιόπιστο/Ενεργοποιημένο. ΣΗΜΕΙΩΣΗ: Εάν μια νέα έκδοση της εφαρμογής κυκλοφορήσει και ανοιχτεί από μια μη αξιόπιστη θέση, η διαδικασία ενεργοποίησης του περιεχομένου θα επαναληφθεί.

Μάθετε περισσότερα σχετικά με τις αξιόπιστες τοποθεσίες.: 

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


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

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

Το παράθυρο περιήγησης είναι ο κύριος τρόπος προβολής και πρόσβασης σε όλα τα αντικείμενα της βάσης δεδομένων και εμφανίζεται στην αριστερή πλευρά του παραθύρου της Access από προεπιλογή. 
Το παράθυρο περιήγησης Northwind έχει προσαρμοστεί. Δημιουργήσαμε μια προσαρμοσμένη κατηγορία που ονομάζεται Northwind Starter 2.0. Αυτό μας επιτρέπει να οργανώσουμε τα αντικείμενα με βάση τη λειτουργική περιοχή.

Μερικές φορές χρειάζεστε μια μεταβλητή για να υπάρχει μετά το αντικείμενο που το δημιούργησε να είναι εκτός εμβέλειας. Ανατρέξτε στην ενότητα Εμβέλεια και ορατότητα παραπάνω. Υπάρχουν τρεις κύριοι τρόποι για να το κάνετε αυτό: Δημόσιες μεταβλητές, TempVars και αποθήκευση των τιμών σε έναν τοπικό πίνακα. Πολλοί προγραμματιστές χρησιμοποιούν συνδυασμό αυτών. Κάθε ένα έχει τα πλεονεκτήματα και τα μειονεκτήματά του.  Περισσότερα για το καθένα εδώ: 

Δημόσια μεταβλητή λειτουργικής μονάδας VBA: 

TempVars: 

Αποθήκευση των τιμών στον τοπικό πίνακα

  • Οι δημόσιες μεταβλητές και οι TempVars υπάρχουν για την τρέχουσα περίοδο λειτουργίας και δεν εμπίπτουν στο πεδίο εφαρμογής όταν κλείσει η εφαρμογή. Τι γίνεται όμως εάν θέλετε να διατηρήσετε συγκεκριμένες μεταβλητές χρήστη σε όλες τις περιόδους λειτουργίας; Μπορείτε να αποθηκεύσετε αυτούς τους τύπους τιμών σε έναν τοπικό πίνακα. Στο Northwind 2.0 μια τέτοια μεταβλητή αποθηκεύεται σε έναν πίνακα που ονομάζεται SystemSettings. Η τιμή στον πίνακα είναι ShowWelcome. Αυτή η τιμή υποδεικνύει στην Access εάν θέλετε να βλέπετε την οθόνη υποδοχής κάθε φορά που συνδέεστε ή όχι.

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

  1. Η δεύτερη φόρμα μπορεί να "κοιτάξει πίσω" στην πρώτη φόρμα για να πάρει ορισμένες τιμές, πιθανώς είτε σε ορατό είτε σε αόρατο στοιχείο ελέγχου.  Για παράδειγμα:
    lngCustomerID = Forms!FirstForm!cboCustomerID 

  2. Η πρώτη φόρμα μπορεί να αποθηκεύσει τιμές σε καθολικές μεταβλητές ή σε TempVars. Για παράδειγμα:
    g_lngUserID = Me.cboUserID 
    TempVars.Add "UserID", Me.cboUserID 

Η μέθοδος που χρησιμοποιείται συχνά στο Northwind Developer Edition καθώς και στην επαγγελματική μας ζωή χρησιμοποιεί το όρισμα OpenArgs του DoCmd.OpenForm ή του OpenReport. Για παράδειγμα:

DoCmd.OpenForm "frmCompanyDetail", OpenArgs:=StringFormat("CompanyID={0} &CompanyTypeID={1}", Me.VendorID, ctVendor)

Συνδυάζουμε δύο τεχνικές εδώ: (1) τη χρήση του OpenArgs για τη διαβίβαση στο VendorID και το VendorType και (2) τη χρήση της συνάρτησης StringFormat() για τη δημιουργία, για παράδειγμα, αυτής της συμβολοσειράς: 

CompanyID=5&CompanyTypeID=2 

Αυτή η συμβολοσειρά μοιάζει πολύ με μια συμβολοσειρά ερωτήματος όπως χρησιμοποιείται σε ένα πρόγραμμα περιήγησης. Περιέχει ένα ή περισσότερα "ζεύγη ονόματος/τιμής" διαχωρισμένα με το χαρακτήρα εμπορικό "και": 

name1=value1&name2=value2


Το πλεονέκτημα μιας τέτοιας συμβολοσειράς είναι ότι κάθε τιμή έχει ένα όνομα. Συγκρίνετέ το με μια απλούστερη προσέγγιση όπου μπορείτε να ορίσετε το OpenArgs μόνο σε "5,2".  Σε μια τέτοια περίπτωση, θα χρειαστεί προσπάθεια για να μάθετε τι σημαίνει κάθε τιμή. Η ονομασία κάθε τιμής κάνει τη συμβολοσειρά ερωτήματος "αυτόματη περιγραφή", η οποία είναι μια καλή πρακτική προγραμματισμού.

Στο τέλος λήψης του DoCmd.OpenForm είμαστε συνήθως στο συμβάν Form_Open ή Form_Load και θέλουμε να αναλύσουμε τη συμβολοσειρά OpenArgs στα στοιχεία της.

Στο Northwind, μπορείτε να το κάνετε αυτό με τη συνάρτηση StringToDictionary . Λαμβάνει μια συνάρτηση που μοιάζει με συμβολοσειρά ερωτήματος και την αναλύει στα στοιχεία της. Στη συνέχεια, αυτά τα στοιχεία αποθηκεύονται σε ένα αντικείμενο Scripting.Dictionary . Σημειώστε ότι για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε τα Εργαλεία > αναφορές και να ορίσετε μια αναφορά στο Microsoft Scripting Runtime (scrrun.dll).

Οι δυνατότητες και τα πλεονεκτήματα του αντικειμένου Dictionary περιλαμβάνουν τα εξής:  

  • Η σειρά των στοιχείων δεν είναι σημαντική

  • Απλές συναρτήσεις για την προσθήκη και κατάργηση στοιχείων της συλλογής

  • Συναρτήσεις για επανάληψη της συλλογής, ώστε να γνωρίζετε τι περιλαμβάνει

  • Υπάρχει μια συνάρτηση, ώστε να μπορείτε να ελέγξετε εάν ένα συγκεκριμένο στοιχείο είναι διαθέσιμο

Η χρήση του αντικειμένου λεξικού εμφανίζεται σε ολόκληρο το στοιχείο Northwind. Για παράδειγμα, το συμβάν Form_Load στο frmGenericDialog.

Οι μακροεντολές που δημιουργούνται με τους "Οδηγούς στοιχείων ελέγχου" στην Access σπάνια περιλαμβάνουν καθόλου χειρισμό σφαλμάτων. Η VBA που δημιουργείται με οδηγούς ελέγχου μπορεί να περιορίζεται σε ένα γενικό σφάλμα MsgBox.Description.

Στην ενότητα Northwind 2.0 θα σας δείξουμε πώς μπορείτε να το κάνετε καλύτερα όταν χρησιμοποιείτε κώδικα VBA. Εφαρμόσαμε αυτό που ονομάζεται καθολικό πρόγραμμα χειρισμού σφαλμάτων. Τα σφάλματα που παρουσιάζονται σε οποιαδήποτε διαδικασία καλούν μια συνάρτηση σε καθολικό επίπεδο για να εμφανιστεί το σφάλμα. Το μεγάλο πλεονέκτημα εδώ είναι ότι ο χειρισμός σφαλμάτων είναι συνεπής. Και εάν το μήνυμα πρέπει να αλλάξει (π.χ., για να εμφανιστεί επιπλέον ο αριθμός σφάλματος ή για να καταγράψετε το σφάλμα σε ένα αρχείο), αυτό πρέπει να γίνει μόνο σε ένα σημείο. 

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

Η μακροεντολή AutoExec καλεί τη συνάρτηση Startup στο modStartup. Στην Έκδοση εκκίνησης, η συνάρτηση δημιουργεί μια παρουσία clsErrorHandler και την αποθηκεύει ως μια καθολική μεταβλητή που είναι διαθέσιμη για χρήση σε όλη την εφαρμογή. Στην έκδοση Dev χρησιμοποιείται μια στατική κλάση – δείτε τα σχόλια στο επάνω μέρος της λειτουργικής μονάδας κλάσης.

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

ΒΕΛΤΙΩΜΈΝΟς ΧΕΙΡΙΣΜΌς ΣΦΑΛΜΆΤΩΝ

Ξεκινώντας από την έκδοση 2.2 του Northwind Developer Edition, το πρόγραμμα χειρισμού σφαλμάτων έχει βελτιωθεί, χάρη στα σχόλια από την κοινότητα της Access. Η έκδοση εκκίνησης παραμένει αμετάβλητη. 

Στην ουσία, το πρόγραμμα χειρισμού σφαλμάτων στην προηγούμενη έκδοση (2.0 - κυκλοφόρησε τον Απρίλιο του 2023) είναι:

Public Sub HandleError(…)
    MsgBox Err.Description
End Sub


Στην έκδοση 2.2 αναβαθμίζεται σε:

Public Sub HandleError (…, Optional ByVal IsEventProcedure As Boolean = False)
    If Not IsEventProcedure Then
        Err.Raise lngError, strErrSource
    End If
    MsgBox Err.Description
End Sub


Για να καταλάβουμε γιατί έγινε αυτή η αλλαγή, ας καταλάβουμε πρώτα τι κάνει τον κώδικα να εκτελείται:

  • Η μακροεντολή AutoExec καλεί τη διαδικασία εκκίνησης, η οποία εκτελεί ορισμένες αρχικοποιήσεις πριν από το άνοιγμα της πρώτης φόρμας.

  • Ο χρήστης αλληλεπιδρά με την εφαρμογή, όπως το άνοιγμα μιας φόρμας ή το κλικ σε ένα κουμπί, προκαλώντας την ενεργοποίηση διαδικασιών συμβάντων, όπως Form_Load και cmdPrintInvoice_Click.
    '

Εκτός από τις διαδικασίες συμβάντων, οι εφαρμογές έχουν υπορουτίνες και συναρτήσεις--κυρίως σε λειτουργικές μονάδες--και αυτός ο κώδικας καλείται από τις διαδικασίες συμβάντων. Αυτές ονομάζονται "τυπικές" διαδικασίες.

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

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

Για να χρησιμοποιήσετε τον κώδικα Northwind έκδοση 2.2, οι διαδικασίες συμβάντος πρέπει να μεταβιβάζονται στο HandleError σε ένα τρίτο όρισμα που υποδεικνύει ότι ο καλών είναι μια διαδικασία συμβάντος. Το Northwind Dev Edition ενημερώθηκε για να το κάνει.

Μια ακόμη πιο ισχυρή μονάδα χειρισμού σφαλμάτων θα έχει υποστήριξη για διαδικασίες "ώθησης και εμφάνισης" σε μια "στοίβα" (πίνακας). Το πρώτο στοιχείο θα ήταν πάντα η διαδικασία συμβάντος, επομένως το επιπλέον όρισμα δεν είναι απαραίτητο. Αυτή η υλοποίηση είναι πέρα από τους στόχους του Northwind Dev Edition.

Η mru ή η λίστα "Πρόσφατα χρησιμοποιημένα " είναι μια λίστα με παραγγελίες που χρησιμοποιήθηκαν πρόσφατα και παραγγελίες αγοράς. Μπορεί να θέλετε να επιστρέφετε συχνά σε αυτές για να τις τοποθετήσετε στην επόμενη Κατάσταση. Οι λίστες MRU συχνά εμφανίζονται στα προϊόντα του Office ως μια λίστα των αρχείων που χρησιμοποιήθηκαν πρόσφατα και τα οποία μπορεί να θέλετε να ανοίξετε ξανά.

στην έκδοση Northwind Dev, για να υλοποιήσετε τη δυνατότητα MRU (η οποία δεν υπάρχει στην έκδοση Starter), πρέπει πρώτα να καθορίσετε τα ακόλουθα στοιχεία: 

  1. Ένας πίνακας για την αποθήκευση πληροφοριών MRU.

  2. Κωδικός για την ενημέρωση του πίνακα κατά το άνοιγμα μιας παραγγελίας ή παραγγελίας αγοράς (PO).

  3. Κωδικός για την ενημέρωση της αναπτυσσόμενης λίστας MRU στην κορδέλα.

  4. Κωδικός για τη φόρτωση του στοιχείου όταν είναι επιλεγμένο ένα στοιχείο MRU από την κορδέλα.

Ας δούμε καθένα από αυτά με περισσότερες λεπτομέρειες. 


1. Πίνακας για την αποθήκευση πληροφοριών MRU.

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


Ο πίνακας αξιοποιεί το γεγονός ότι όλα τα πεδία PK (πρωτεύον κλειδί) που σχετίζονται με MRU στη βάση δεδομένων είναι "Αυτόματη αρίθμηση", επομένως ο τύπος δεδομένων "Ακέραιος μεγάλου μήκους" μπορεί να χρησιμοποιηθεί για το PKValue.

2. Κωδικός για την ενημέρωση του πίνακα κατά το άνοιγμα μιας παραγγελίας ή P.O.

Στο NW2 επιλέξαμε να προσθέσουμε στη λίστα MRU μόνο όταν δημιουργήθηκε μια νέα εγγραφή, όχι όταν μια υπάρχουσα ενημερώθηκε ξανά. Σίγουρα θα μπορούσαμε να μετακινήσουμε την κλήση AddToMRU από Form_AfterInsert σε Form_AfterUpdate για να την υποστηρίξουμε.

Οι διαδικασίες AddToMRU και DeleteFromMRU εφαρμόζονται στο modGlobal, το οποίο είναι μια Τυπική λειτουργική μονάδα της οποίας οι δημόσιες διαδικασίες είναι ορατές από οποιαδήποτε μορφή.

Η επιλογή AddToMRU (όπως υποδηλώνει το όνομα) προσθέτει το νέο στοιχείο στον πίνακα MRU και, προαιρετικά, το περικόπτει, διαγράφοντας την παλαιότερη εγγραφή, εάν έχει αυξηθεί πέρα από το μέγιστο μέγεθος (MAX_MRU_COUNT). Το τελευταίο βήμα είναι ίσως το λιγότερο γνωστό στους προγραμματιστές της Access: η αναπτυσσόμενη λίστα της κορδέλας πρέπει να ανανεωθεί και αυτό επιτυγχάνεται με την κλήση του InvalidateControl. Αυτό είναι ένα σήμα προς την κορδέλα για να εκτελέσετε εκ νέου τη διαδικασία προετοιμασίας της. 

3. Κωδικός για την ενημέρωση της αναπτυσσόμενης λίστας MRU στην κορδέλα. 

Κατά την εκκίνηση και μετά την κλήση του InvalidateControl , εκτελείται ένα σύνθετο σύνολο συναρτήσεων για τη συμπλήρωση της κορδέλας.  Αυτές οι διαδικασίες ονομάζονται από την XML της κορδέλας στον πίνακα uSysRibbons, ο οποίος αναφέρει εν μέρει:

<group id="gCurrentStatus" label="MRU">
    <box id="bxMRU" boxStyle="vertical">
        <dropDown id="ddMRU"
                  getItemCount="ddMRU_GetItemCount"
                  getItemLabel="ddMRU_GetItemLabel"
                  getSelectedItemIndex="ddMRU_GetSelectedItemIndex"
                  getItemID="ddMRU_GetItemID"
                  onAction="ddMRU_OnAction"
                  screentip="Most Recently Used Objects">
        </dropDown>
    </box>
</group>

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

Εάν καταργήσετε τα μηνύματα από τις γραμμές debug.Print στο modRibbonCallback και επανεκκινήσετε την εφαρμογή, το Άμεσο παράθυρο θα παρουσιάσει μια ακολουθία όπως η εξής: 

ddMRU_GetItemCount    ddMRU    6 
ddMRU_GetItemLabel    ddMRU    0      Order 60, Proseware, Inc.
ddMRU_GetItemID       ddMRU    0       2 
ddMRU_GetItemLabel    ddMRU    1      Order 62, Best For You Organics Company
ddMRU_GetItemID       ddMRU    1       4 
ddMRU_GetItemLabel    ddMRU    2      Order 63, Wide World Importers
ddMRU_GetItemID       ddMRU    2       5 
ddMRU_GetItemLabel    ddMRU    3      Order 66, Proseware, Inc.
ddMRU_GetItemID       ddMRU    3       8 
ddMRU_GetItemLabel    ddMRU    4      Order 67, Best For You Organics Company
ddMRU_GetItemID       ddMRU    4       9 
ddMRU_GetItemLabel    ddMRU    5      Order 68, Adatum Corporation
ddMRU_GetItemID       ddMRU    5       10 
ddMRU_GetSelectedItemIndex  ddMRU    0


Μπορούμε να δούμε εδώ ότι η Access καλεί πρώτα μια διαδικασία που επιστρέφει τον αριθμό των στοιχείων για φόρτωση στο όρισμα ByRef των ddMRU_GetItemCount. Αυτή είναι επίσης η στιγμή που ανοίγουμε το ερώτημα σε πίνακα MRU και το αποθηκεύουμε στο cache, επειδή πρόκειται να χρησιμοποιηθεί αρκετές φορές. 

Στη συνέχεια, η κορδέλα καλεί επανειλημμένα δύο διαδικασίες για να λάβετε τις τιμές "Αναγνωριστικό" και "Ετικέτα" για την αναπτυσσόμενη λίστα δύο στηλών. 

Τέλος, καλεί μια διαδικασία για να καταργηθεί το στοιχείο που πρέπει να επιλεγεί. (Στην περίπτωσή μας, είναι η πρώτη.) 

4. Κωδικός για τη φόρτωση ενός στοιχείου όταν είναι επιλεγμένο το στοιχείο MRU από την κορδέλα.

Όπως με οποιοδήποτε άλλο στοιχείο της κορδέλας, η ιδιότητα OnAction στην κορδέλα XML καθορίζει μια συνάρτηση επιστροφής κλήσης που θα χρησιμοποιηθεί για την εκτέλεση της ενέργειας:

onAction="ddMRU_OnAction"

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

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

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

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

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×