الدالة DLookup

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

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

يمكنك استخدام الدالة DLookup لعرض قيمة حقل غير موجود في مصدر السجلات للنموذج أو التقرير. على سبيل المثال، افترض أن لديك نموذجا يستند إلى جدول تفاصيل الطلب. يعرض OrderIDQuantityProductIDUnitPriceالنموذج الحقول و.Discount ومع ذلك، الحقل ProductName موجود في جدول آخر، Products الجدول. يمكنك استخدام الدالة DLookup في عنصر تحكم محسوب لعرضها ProductName على النموذج نفسه.

بناء الجملة

DLookup(expr, domain [, criteria])

تحتوي الدالة DLookup على هذه الوسيطات:

الوسيطة الوصف
expr مطلوبة. تعبير يحدد الحقل الذي تريد إرجاع قيمته. يمكن أن يكون تعبير سلسلة يعرف حقلا في جدول أو استعلام، أو يمكن أن يكون تعبيرا يقوم بإجراء عملية حسابية على البيانات الموجودة في هذا الحقل. في expr، يمكنك تضمين اسم حقل في جدول أو عنصر تحكم في نموذج أو ثابت أو دالة. إذا كانت expr تتضمن دالة، يمكن أن تكون مضمنة أو معرفة من قبل المستخدم، ولكن ليس دالة تجميع مجال أخرى أو SQL دالة تجميعية.
domain مطلوبة. تعبير سلسلة يحدد مجموعة السجلات التي تشكل المجال. يمكن أن يكون اسم جدول أو اسم استعلام لاستعلام لا يتطلب معلمة.
criteria اختيارية. تعبير سلسلة يستخدم لتقييد نطاق البيانات التي يتم تشغيل الدالة عليها DLookup . على سبيل المثال، criteria غالبا ما يكون مكافئا SQL لعبارة WHERE في تعبير، بدون كلمة WHERE. إذا حذفت criteria، يتم تقييم الدالة DLookupexpr مقابل المجال بأكمله. يجب أن يكون أي حقل مضمن في criteria أيضا حقلا في domain. وإلا، ترجع Nullالدالة DLookup .

ملاحظات

ترجع 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 الحقل. للبحث عن ProductNameProducts جدول استنادا إلى القيمة الموجودة في مربع النص، أنشئ مربع نص آخر وقم بتعيين الخاصية 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 . لا يتم تضمين المرجع إلى عنصر التحكم في علامات الاقتباس التي تشير إلى السلاسل. وهذا يضمن أنه في كل مرة 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)