في Access قواعد بيانات سطح المكتب، يمكنك استخدام الدالة DLookup للحصول على قيمة حقل معين من مجموعة محددة من السجلات ( مجال ). استخدم الدالة DLookup في وحدة Visual Basic for Applications (VBA) أو الماكرو أو تعبير استعلام أو عنصر تحكم محسوب في نموذج أو تقرير.
يمكنك استخدام الدالة DLookup لعرض قيمة حقل غير موجود في مصدر السجلات للنموذج أو التقرير. على سبيل المثال، افترض أن لديك نموذجا يستند إلى جدول تفاصيل الطلب. يعرض النموذج حقول OrderID وProductID وUnitPrice و Quantity و Discount. ومع ذلك، يوجد الحقل ProductName في جدول آخر، جدول المنتجات. يمكنك استخدام الدالة DLookup في عنصر تحكم محسوب لعرض ProductName على نفس النموذج.
بناء الجملة
DLookup( expr, domain [, criteria] )
يحتوي بناء جملة الدالة DLookup على هذه الوسيطات:
الوسيطة |
الوصف |
---|---|
expr |
مطلوبة. تعبير يحدد الحقل الذي تريد إرجاع قيمته. يمكن أن يكون تعبير السلسلة تحديد حقل في جدول أو استعلام، أو يمكن أن يكون تعبيرا يقوم بإجراء عملية حسابية على البيانات الموجودة في هذا الحقل. في expr، يمكنك تضمين اسم حقل في جدول أو عنصر تحكم في نموذج أو ثابت أو دالة. إذا كان expr يتضمن دالة، يمكن أن تكون إما مضمنة أو معرفة من قبل المستخدم، ولكن ليس تجميع مجال آخر أو دالة تجميع SQL. |
مجال |
مطلوبة. تعبير سلسلة يحدد مجموعة السجلات التي تشكل المجال. يمكن أن يكون اسم جدول أو اسم استعلام لاستعلام لا يتطلب معلمة. |
معايير |
اختيارية. تعبير سلسلة يستخدم لتقييد نطاق البيانات التي يتم تنفيذ الدالة DLookup عليها. على سبيل المثال، غالبا ما تكون المعايير مكافئة لعبارة WHERE في تعبير SQL، دون كلمة WHERE. إذا تم حذف المعايير ، تقيم الدالة DLookupexpr مقابل المجال بأكمله. يجب أن يكون أي حقل مضمن في المعايير أيضا حقلا في المجال؛ وإلا، تقوم الدالة DLookup بإرجاع Null . |
ملاحظات
ترجع الدالة DLookup قيمة حقل واحد استنادا إلى المعلومات المحددة في المعايير. على الرغم من أن المعايير هي وسيطة اختيارية، إذا لم تقدم قيمة للمعايير، فإن الدالة DLookup ترجع قيمة عشوائية في المجال.
إذا لم يكن هناك سجل يفي بالمعايير أو إذا كان المجال لا يحتوي على سجلات، فإن الدالة DLookup ترجع Null.
إذا كان أكثر من حقل واحد يفي بالمعايير، ترجع الدالة DLookup التكرار الأول. يجب تحديد معايير تضمن أن قيمة الحقل التي تم إرجاعها بواسطة الدالة DLookup فريدة. قد تحتاج إلى استخدام قيمة مفتاح أساسي لمعاييرك، مثل [EmployeeID] في المثال التالي، للتأكد من أن الدالة DLookup ترجع قيمة فريدة:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _ "[EmployeeID] = 1")
سواء كنت تستخدم الدالة DLookup في ماكرو أو وحدة نمطية أو تعبير استعلام أو عنصر تحكم محسوب، يجب إنشاء وسيطة المعايير بعناية للتأكد من تقييمها بشكل صحيح.
يمكنك استخدام الدالة DLookup لتحديد المعايير في صف المعايير للاستعلام، أو ضمن تعبير حقل محسوب في استعلام، أو في الصف تحديث إلى في استعلام تحديث.
يمكنك أيضا استخدام الدالة DLookup في تعبير في عنصر تحكم محسوب في نموذج أو تقرير إذا لم يكن الحقل الذي تحتاج إلى عرضه في مصدر السجلات الذي يستند إليه النموذج أو التقرير. على سبيل المثال، افترض أن لديك نموذج تفاصيل الطلب استنادا إلى جدول تفاصيل الطلب مع مربع نص يسمى ProductID يعرض حقل ProductID. للبحث عن ProductName من جدول Products استنادا إلى القيمة الموجودة في مربع النص، يمكنك إنشاء مربع نص آخر وتعيين الخاصية ControlSource الخاصة به إلى التعبير التالي:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
تلميحات
-
على الرغم من أنه يمكنك استخدام الدالة DLookup لعرض قيمة من حقل في جدول المفاتيح الخارجية ، فقد يكون من الأكثر كفاءة إنشاء استعلام يحتوي على الحقول التي تحتاجها من كلا الجدولين ثم لإسناد النموذج أو التقرير إلى هذا الاستعلام.
-
يمكنك أيضا استخدام "معالج البحث" للعثور على القيم في جدول خارجي.
ملاحظة: لا يتم تضمين التغييرات غير المحفوعة على السجلات في المجال عند استخدام هذه الدالة. إذا كنت تريد أن تستند الدالة DLookup إلى القيم التي تم تغييرها، فيجب أولا حفظ التغييرات بالنقر فوق حفظ السجل ضمن السجلات ضمن علامة التبويب بيانات ، أو نقل التركيز إلى سجل آخر، أو باستخدام أسلوب التحديث .
مثال
ملاحظة: توضح الأمثلة التالية استخدام هذه الدالة في وحدة Visual Basic for Applications (VBA). لمزيد من المعلومات حول العمل مع VBA، راجع مرجع Access VBA.
يقوم المثال التالي بإرجاع معلومات الاسم من حقل CompanyName للسجل الذي يستوفي المعايير. المجال هو جدول Shippers. تقيد وسيطة المعايير مجموعة السجلات الناتجة عن تلك التي يساوي 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)