Σε Access βάσεις δεδομένων υπολογιστή, μπορείτε να χρησιμοποιήσετε τη συνάρτηση DLookup για να λάβετε την τιμή ενός συγκεκριμένου πεδίου από ένα καθορισμένο σύνολο εγγραφών (ένα τομέας ). Χρησιμοποιήστε τη συνάρτηση DLookup σε μια λειτουργική μονάδα VBA (Visual Basic for Applications), μια μακροεντολή, μια παράσταση ερωτήματος ή μια στοιχείο ελέγχου υπολογισμού σε μια φόρμα ή αναφορά.
Μπορείτε να χρησιμοποιήσετε τη συνάρτηση DLookup για να εμφανίσετε την τιμή ενός πεδίου που δεν βρίσκεται στην προέλευση εγγραφών για τη φόρμα ή την έκθεσή σας. Για παράδειγμα, ας υποθέσουμε ότι έχετε μια φόρμα που βασίζεται σε έναν πίνακα "Λεπτομέρειες παραγγελίας". Η φόρμα εμφανίζει τα πεδία "Κωδ_Παραγγελίας", "Κωδ_Προϊόντος", "Τιμή_μονάδας", "Ποσότητα" και "Έκπτωση". Ωστόσο, το πεδίο ProductName βρίσκεται σε έναν άλλο πίνακα, τον πίνακα Products. Μπορείτε να χρησιμοποιήσετε τη συνάρτηση DLookup σε ένα υπολογιζόμενο στοιχείο ελέγχου για να εμφανίσετε το ProductName στην ίδια φόρμα.
Σύνταξη
DLookup( παράσταση; τομέας [, κριτήρια] )
Η σύνταξη της συνάρτησης DLookup περιλαμβάνει τα παρακάτω ορίσματα:
Όρισμα |
Περιγραφή |
---|---|
Παράσταση |
Υποχρεωτικό. Μια παράσταση που προσδιορίζει το πεδίο του οποίου την τιμή θέλετε να επιστραφεί. Μπορεί να είναι μια παράσταση συμβολοσειράς προσδιορισμός ενός πεδίου σε έναν πίνακα ή ένα ερώτημα ή μπορεί να είναι μια παράσταση που εκτελεί έναν υπολογισμό σε δεδομένα σε αυτό το πεδίο. Στην παράσταση, μπορείτε να συμπεριλάβετε το όνομα ενός πεδίου σε έναν πίνακα, ένα στοιχείο ελέγχου σε μια φόρμα, μια σταθερά ή μια συνάρτηση. Εάν η παράσταση περιλαμβάνει μια συνάρτηση, μπορεί να είναι ενσωματωμένη ή καθορισμένη από το χρήστη, αλλά όχι άλλη συνάρτηση συγκεντρωτικών αποτελεσμάτων τομέα ή συγκεντρωτικών αποτελεσμάτων SQL. |
τομέας |
Υποχρεωτικό. Μια παράσταση συμβολοσειράς που προσδιορίζει το σύνολο των εγγραφών που αποτελεί τον τομέα. Μπορεί να είναι ένα όνομα πίνακα ή ένα όνομα ερωτήματος για ένα ερώτημα που δεν απαιτεί παράμετρο. |
κριτήρια |
Προαιρετικό. Μια παράσταση συμβολοσειράς που χρησιμοποιείται για τον περιορισμό της περιοχής δεδομένων στην οποία εκτελείται η συνάρτηση DLookup . Για παράδειγμα, τα κριτήρια είναι συχνά ισοδύναμα με τον όρο WHERE σε μια παράσταση SQL, χωρίς τη λέξη WHERE. Εάν παραλειφθεί το όρισμα κριτήρια, η συνάρτηση DLookup αξιολογεί την παράσταση σε αντιπαραβολή με ολόκληρο τον τομέα. Κάθε πεδίο που περιλαμβάνεται στα κριτήρια πρέπει επίσης να είναι ένα πεδίο στον τομέα. Διαφορετικά, η συνάρτηση DLookup επιστρέφει μια τιμή Null. |
Παρατηρήσεις
Η συνάρτηση DLookup επιστρέφει μία τιμή πεδίου με βάση τις πληροφορίες που καθορίζονται στα κριτήρια. Παρόλο που τα κριτήρια είναι προαιρετικά ορίσματα, εάν δεν παρέχετε μια τιμή για κριτήρια, η συνάρτηση DLookup επιστρέφει μια τυχαία τιμή στον τομέα.
Εάν καμία εγγραφή δεν ικανοποιεί τα κριτήρια ή εάν ο τομέας δεν περιέχει εγγραφές, η συνάρτηση DLookup επιστρέφει μια τιμή Null.
Εάν περισσότερα από ένα πεδία πληρούν τα κριτήρια, η συνάρτηση DLookup επιστρέφει την πρώτη εμφάνιση. Θα πρέπει να καθορίσετε κριτήρια που θα εξασφαλίσουν ότι η τιμή πεδίου που επιστρέφεται από τη συνάρτηση DLookup είναι μοναδική. Μπορεί να θέλετε να χρησιμοποιήσετε μια τιμή πρωτεύον κλειδί για τα κριτήριά σας, όπως [EmployeeID] στο παρακάτω παράδειγμα, για να βεβαιωθείτε ότι η συνάρτηση DLookup επιστρέφει μια μοναδική τιμή:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _ "[EmployeeID] = 1")
Εάν χρησιμοποιείτε τη συνάρτηση DLookup σε μια μακροεντολή ή λειτουργική μονάδα, μια παράσταση ερωτήματος ή ένα στοιχείο ελέγχου υπολογισμού, πρέπει να δημιουργήσετε προσεκτικά το όρισμα κριτήρια για να βεβαιωθείτε ότι θα υπολογιστεί σωστά.
Μπορείτε να χρησιμοποιήσετε τη συνάρτηση DLookup για να καθορίσετε κριτήρια στη γραμμή Κριτήρια ενός ερωτήματος, μέσα σε μια παράσταση πεδίου υπολογισμού σε ένα ερώτημα ή στη γραμμή Ενημέρωση σε ένα ερώτημα ενημέρωσης.
Μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση DLookup σε μια παράσταση σε ένα στοιχείο ελέγχου υπολογισμού σε μια φόρμα ή έκθεση, εάν το πεδίο που πρέπει να εμφανίσετε δεν βρίσκεται στην προέλευση εγγραφών στην οποία βασίζεται η φόρμα ή η έκθεσή σας. Για παράδειγμα, ας υποθέσουμε ότι έχετε μια φόρμα "Λεπτομέρειες παραγγελίας" που βασίζεται σε έναν πίνακα "Λεπτομέρειες παραγγελίας" με ένα πλαίσιο κειμένου που ονομάζεται "Κωδ_Προϊόντος" που εμφανίζει το πεδίο "Κωδ_Προϊόντος". Για να αναζητήσετε το ProductName από έναν πίνακα Products με βάση την τιμή στο πλαίσιο κειμένου, μπορείτε να δημιουργήσετε ένα άλλο πλαίσιο κειμένου και να ορίσετε την ιδιότητα ControlSource στην ακόλουθη παράσταση:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Συμβουλές
-
Παρόλο που μπορείτε να χρησιμοποιήσετε τη συνάρτηση DLookup για να εμφανίσετε μια τιμή από ένα πεδίο σε ένα εξωτερικός πίνακας, ίσως είναι πιο αποτελεσματικό να δημιουργήσετε ένα ερώτημα που περιέχει τα πεδία που χρειάζεστε και από τους δύο πίνακες και, στη συνέχεια, να βασίσετε τη φόρμα ή την έκθεσή σας σε αυτό το ερώτημα.
-
Μπορείτε επίσης να χρησιμοποιήσετε τον "Οδηγό αναζήτησης" για να βρείτε τιμές σε έναν εξωτερικό πίνακα.
Σημείωση: Οι μη αποθηκευμένες αλλαγές στις εγγραφές στον τομέα δεν περιλαμβάνονται κατά τη χρήση αυτής της συνάρτησης. Εάν θέλετε η συνάρτηση DLookup να βασίζεται στις τροποποιημένες τιμές, πρέπει πρώτα να αποθηκεύσετε τις αλλαγές κάνοντας κλικ στην επιλογή Αποθήκευση εγγραφής στην περιοχή Εγγραφές στην καρτέλα Δεδομένα , μετακινώντας την εστίαση σε μια άλλη εγγραφή ή χρησιμοποιώντας τη μέθοδο Update .
Παράδειγμα
Σημείωση: Παραδείγματα που ακολουθούν δείχνουν τη χρήση αυτής της συνάρτησης σε μια λειτουργική μονάδα Visual Basic for Applications (VBA). Για περισσότερες πληροφορίες σχετικά με την εργασία με τη VBA, ανατρέξτε στο θέμα Αναφορά VBA για Access.
Το παρακάτω παράδειγμα επιστρέφει πληροφορίες ονόματος από το πεδίο CompanyName της εγγραφής ικανοποιώντας κριτήρια. Ο τομέας είναι ένας πίνακας "Αποστολείς". Το όρισμα κριτήρια περιορίζει το σύνολο εγγραφών που προκύπτει σε εκείνες για τις οποίες το shipperID ισούται με 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _ "Shippers", "[ShipperID] = 1")
Το επόμενο παράδειγμα από τον πίνακα "Αποστολείς" χρησιμοποιεί το στοιχείο ελέγχου φόρμας ShipperID για την παροχή κριτηρίων για τη συνάρτηση DLookup . Σημειώστε ότι η αναφορά στο στοιχείο ελέγχου δεν περιλαμβάνεται στα εισαγωγικά που υποδηλώνουν τις συμβολοσειρές. Αυτό εξασφαλίζει ότι κάθε φορά που καλείται η συνάρτηση DLookup , Access θα λαμβάνει την τρέχουσα τιμή από το στοιχείο ελέγχου.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & Forms!Shippers!ShipperID)
Το επόμενο παράδειγμα χρησιμοποιεί μια μεταβλητή, intSearch, για να λάβει την τιμή.
Dim intSearch As Integer
Dim varX As Variant intSearch = 1 varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & intSearch)