Συνάρτηση DLookup

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

Στις βάσεις δεδομένων υπολογιστή της Access, μπορείτε να χρησιμοποιήσετε τη DLookup συνάρτηση για να λάβετε την τιμή ενός συγκεκριμένου πεδίου από ένα συγκεκριμένο σύνολο εγγραφών (έναν τομέα). Μπορείτε να το χρησιμοποιήσετε DLookup σε μια λειτουργική μονάδα Visual Basic for Applications (VBA), μια μακροεντολή, μια παράσταση ερωτήματος ή ένα στοιχείο ελέγχου υπολογισμού σε μια φόρμα ή αναφορά.

Μπορείτε να χρησιμοποιήσετε τη DLookup συνάρτηση για να εμφανίσετε την τιμή ενός πεδίου που δεν βρίσκεται στην προέλευση εγγραφών για τη φόρμα ή την έκθεσή σας. Για παράδειγμα, ας υποθέσουμε ότι έχετε μια φόρμα που βασίζεται σε έναν πίνακα "Λεπτομέρειες παραγγελίας". Η φόρμα εμφανίζει τα OrderIDπεδία , UnitPriceProductID, Quantity, , και Discount . Ωστόσο, το ProductName πεδίο βρίσκεται σε έναν άλλο πίνακα, τον Products πίνακα. Μπορείτε να χρησιμοποιήσετε τη DLookup συνάρτηση σε ένα στοιχείο ελέγχου υπολογισμού για να εμφανίζεται ProductName στην ίδια φόρμα.

Σύνταξη

DLookup(expr, domain [, criteria])

Η DLookup συνάρτηση έχει τα εξής ορίσματα:

Όρισμα Περιγραφή
expr Υποχρεωτικό. Μια παράσταση που προσδιορίζει το πεδίο του οποίου την τιμή θέλετε να επιστρέψετε. Μπορεί να είναι μια παράσταση συμβολοσειράς που προσδιορίζει ένα πεδίο σε έναν πίνακα ή ερώτημα ή μπορεί να είναι μια παράσταση που εκτελεί έναν υπολογισμό των δεδομένων σε αυτό το πεδίο. Στο expr, μπορείτε να συμπεριλάβετε το όνομα ενός πεδίου σε έναν πίνακα, ένα στοιχείο ελέγχου σε μια φόρμα, μια σταθερά ή μια συνάρτηση. Εάν expr περιλαμβάνει μια συνάρτηση, μπορεί να είναι ενσωματωμένη ή καθορισμένη από το χρήστη, αλλά όχι άλλο συγκεντρωτικό SQL ή συγκεντρωτικό αποτέλεσμα τομέα.
domain Υποχρεωτικό. Μια παράσταση συμβολοσειράς που προσδιορίζει το σύνολο των εγγραφών που απαρτίζουν τον τομέα. Μπορεί να είναι ένα όνομα πίνακα ή ένα όνομα ερωτήματος για ένα ερώτημα που δεν απαιτεί παράμετρο.
criteria Προαιρετικό. Μια παράσταση συμβολοσειράς που χρησιμοποιείται για τον περιορισμό της περιοχής δεδομένων στην οποία εκτελείται η DLookup συνάρτηση. Για παράδειγμα, criteria είναι συχνά ισοδύναμο με τον WHERE όρο σε μια SQL παράσταση, χωρίς τη λέξη WHERE. Εάν παραλείψετε το όρισμα criteria, η DLookup συνάρτηση συγκρίνεται expr με ολόκληρο τον τομέα. Κάθε πεδίο που περιλαμβάνεται στο criteria πρέπει επίσης να είναι ένα πεδίο στο domain. Διαφορετικά, η συνάρτηση επιστρέφει τη DLookup συνάρτηση .Null

Παρατηρήσεις

Η DLookup συνάρτηση επιστρέφει μία τιμή πεδίου με βάση τις πληροφορίες που καθορίζονται στο criteriaστοιχείο . Αν και criteria είναι προαιρετική, εάν δεν την εισαγάγετε μια τιμή για αυτήν, η DLookup συνάρτηση επιστρέφει μια τυχαία τιμή στον τομέα.

Εάν καμία εγγραφή δεν σας ικανοποιεί criteriaή εάν domain δεν περιέχει καμία εγγραφή, η συνάρτηση επιστρέφει Nullτη DLookup συνάρτηση .

Εάν ικανοποιούνται criteriaπερισσότερα από ένα πεδία, η DLookup συνάρτηση επιστρέφει την πρώτη εμφάνιση. Θα πρέπει να καθορίσετε κριτήρια που εξασφαλίζουν ότι η τιμή πεδίου που επιστρέφεται είναι DLookup μοναδική. Μπορεί να θέλετε να χρησιμοποιήσετε μια τιμή πρωτεύοντος κλειδιού για τα κριτήριά σας, όπως [EmployeeID] στο παρακάτω παράδειγμα, για να εξασφαλίσετε ότι DLookup θα επιστρέψει μια μοναδική τιμή:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
    "[EmployeeID] = 1")

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

Μπορείτε να χρησιμοποιήσετε τη DLookup συνάρτηση για να καθορίσετε κριτήρια στη γραμμή "Κριτήρια" ενός ερωτήματος, μέσα σε μια παράσταση πεδίου υπολογισμού σε ένα ερώτημα ή στη γραμμή "Ενημέρωση σε" ενός ερωτήματος ενημέρωσης.

Μπορείτε επίσης να χρησιμοποιήσετε τη DLookup συνάρτηση σε μια παράσταση σε ένα στοιχείο ελέγχου υπολογισμού σε μια φόρμα ή έκθεση, εάν το πεδίο που πρέπει να εμφανίσετε δεν βρίσκεται στην προέλευση εγγραφών στην οποία βασίζεται η φόρμα ή η έκθεση. Για παράδειγμα, ας υποθέσουμε ότι έχετε μια φόρμα "Λεπτομέρειες παραγγελίας" που βασίζεται σε έναν πίνακα "Λεπτομέρειες παραγγελίας" με ένα πλαίσιο κειμένου που ονομάζεται και ProductID το οποίο εμφανίζει το ProductID πεδίο. Για αναζήτηση ProductName από έναν Products πίνακα με βάση την τιμή στο πλαίσιο κειμένου, δημιουργήστε ένα άλλο πλαίσιο κειμένου και ορίστε την ιδιότητα ControlSource στην ακόλουθη παράσταση:

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

Συμβουλές

  • Παρόλο που μπορείτε να χρησιμοποιήσετε τη συνάρτηση DLookup για να εμφανίσετε μια τιμή από ένα πεδίο σε έναν εξωτερικό πίνακα, ενδέχεται να είναι πιο αποτελεσματικό να δημιουργήσετε ένα ερώτημα που περιέχει τα πεδία που χρειάζεστε και από τους δύο πίνακες και, στη συνέχεια, να βασίσετε τη φόρμα ή την έκθεση σε αυτό το ερώτημα.
  • Μπορείτε επίσης να χρησιμοποιήσετε τον "Οδηγό αναζήτησης" για να βρείτε τιμές σε έναν εξωτερικό πίνακα.

Σημείωση

Οι μη αποθηκευμένες αλλαγές σε εγγραφές δεν περιλαμβάνονται όταν domain χρησιμοποιείτε αυτή τη συνάρτηση. Εάν θέλετε DLookup να χρησιμοποιήσετε τις τιμές που έχουν αλλάξει, αποθηκεύστε πρώτα τις αλλαγές κάνοντας κλικ στην επιλογή "Αποθήκευση εγγραφής " στην περιοχή "Εγγραφές " της καρτέλας " Δεδομένα ", μετακινώντας την εστίαση σε άλλη εγγραφή ή χρησιμοποιώντας τη Update μέθοδο.

Παράδειγμα

Σημείωση

Τα παραδείγματα που ακολουθούν δείχνουν τη χρήση αυτής της συνάρτησης σε μια λειτουργική μονάδα Visual Basic for Applications (VBA). Για περισσότερες πληροφορίες σχετικά με την εργασία με τη VBA, ανατρέξτε στην αναφορά VBA της Access.

Το παρακάτω παράδειγμα επιστρέφει πληροφορίες ονόματος από το CompanyName πεδίο της εγγραφής που ικανοποιεί criteria. Ο τομέας είναι ένας Shippers πίνακας. Το criteria όρισμα περιορίζει το σύνολο εγγραφών που προκύπτει σε εκείνες για τις οποίες ShipperID ισούται 1με .

Dim varX As Variant
varX = DLookup("[CompanyName]", _
    "Shippers", "[ShipperID] = 1")

Το επόμενο παράδειγμα από τον Shippers πίνακα χρησιμοποιεί το στοιχείο ελέγχου 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)