الدالة DLookup

ينطبق على
Access لـ Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

في قواعد بيانات سطح المكتب في Access، يمكنك استخدام الدالة DLookup للحصول على قيمة حقل معين من مجموعة محددة من السجلات (مجال). يمكنك استخدام DLookup وحدة نمطية في Visual Basic for Applications (VBA) أو ماكرو أو تعبير استعلام أو عنصر تحكم محسوب في نموذج أو تقرير.

يمكنك استخدام الدالة DLookup لعرض قيمة حقل غير موجود في مصدر السجلات للنموذج أو التقرير. على سبيل المثال، افترض أن لديك نموذجا يستند إلى جدول "تفاصيل الطلب". يعرض النموذج الحقول OrderID، ProductID، QuantityUnitPriceو 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. وإلا، ترجع DLookupNullالدالة.

ملاحظات

ترجع الدالة DLookup قيمة حقل مفردة بالاستناد إلى المعلومات المحددة في criteria. سترجع الدالة قيمة عشوائية في المجال إذا لم توفر لها DLookup قيمة إضافيةcriteria.

إذا لم يكن هناك أي سجل يلبي criteria، أو إذا domain لم يحتوي على أي سجلات، DLookup ترجع Nullالدالة.

إذا تم استيفاء 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، راجع مرجع Access VBA.

يرجع المثال التالي معلومات الأسماء من CompanyName حقل السجل الذي يلبي criteria. المجال عبارة عن Shippers جدول. تقيد الوسيطة criteria مجموعة السجلات الناتجة بتلك ShipperID التي تساوي 1.

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

يستخدم المثال التالي من Shippers الجدول عنصر تحكم ShipperID النموذج لتوفير معايير للدالة DLookup . لا يتم تضمين الإشارة إلى عنصر التحكم في علامات الاقتباس التي تشير إلى السلاسل. يضمن هذا الأمر حصول Access على القيمة الحالية من عنصر التحكم في كل مرة يتم DLookup تشغيلها.

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)