الدالة DCount

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

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

على سبيل المثال، يمكنك استخدام الدالة DCount في وحدة نمطية لإرجاع عدد السجلات في جدول الطلبات التي تتوافق مع الطلبات المقدمة في تاريخ محدد.

بناء الجملة

DCount(expr, domain* [, criteria] )

يحتوي بناء جملة الدالة DCount على الوسيطات التالية:

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

ملاحظات

استخدم الدالة DCount لحساب عدد السجلات في مجال ما عندما لا تحتاج إلى معرفة قيمها المعينة. على الرغم من أن الوسيطة expr يمكنها إجراء عملية حسابية على حقل، إلا أن الدالة DCount تقوم ببساطة بحساب عدد السجلات. لا تتوفر قيمة أي عملية حسابية يتم تنفيذها بواسطة Expr .

استخدم الدالة DCount في عنصر تحكم محسوب عندما تحتاج إلى تحديد معايير لتقييد نطاق البيانات الذي يتم تنفيذ الدالة عليه. على سبيل المثال، لعرض عدد الطلبات التي سيتم شحنها إلى كاليفورنيا، قم بتعيين خاصية ControlSource لمربع النص إلى التعبير التالي:

=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")

إذا أردت ببساطة حساب عدد جميع السجلات في المجال دون تحديد أي قيود، فاستخدم الدالة Count .

تلميح تم تحسين الدالة Count لتسريع حساب السجلات في الاستعلامات. استخدم الدالة Count في تعبير استعلام بدلا من الدالة DCount، وقم بتعيين معايير اختيارية لفرض أي قيود على النتائج. استخدم الدالة DCount عندما يجب حساب عدد السجلات في مجال ما من داخل وحدة نمطية للتعليمات البرمجية أو الماكرو، أو في عنصر تحكم محسوب.

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

لا تحسب الدالة DCount السجلات التي تحتوي على قيم خالية في الحقل المشار إليه بواسطة expr إلا إذا كان expr عبارة عن حرف البدل العلامة النجمية (*). إذا كنت تستخدم علامة نجمية، تحسب الدالة DCount العدد الإجمالي للسجلات، بما في ذلك تلك التي تحتوي على حقول فارغة . يحسب المثال التالي عدد السجلات في جدول "الطلبات".

intX = DCount("*", "Orders")

إذا كان المجال عبارة عن جدول يتضمن مفتاحا أساسيا، فيمكنك أيضا حساب إجمالي عدد السجلات عن طريق تعيين expr على حقل المفتاح الأساسي، حيث لن يكون هناك القيمة Null أبدا في حقل المفتاح الأساسي.

إذا حدد expr حقولا متعددة، فافصل أسماء الحقول باستخدام عامل تشغيل، إما علامة العطف (&) أو عامل الإضافة (+). إذا كنت تستخدم علامة العطف لفصل الحقول، فترجع الدالة DCount عدد السجلات التي تحتوي على بيانات في أي من الحقول المدرجة. إذا كنت تستخدم عامل الجمع، فترجع الدالة DCount فقط عدد السجلات التي تحتوي على بيانات في كافة الحقول المدرجة. يوضح المثال التالي تأثيرات كل عامل تشغيل عند استخدامه مع حقل يحتوي على بيانات في كافة السجلات (اسم الشحن) وحقل لا يحتوي على بيانات (منطقة الشحن).

intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")

ملاحظة

وعلامة العطف هي عامل التشغيل المفضل لإجراء تسلسل سلاسل. يجب تجنب استخدام عامل التشغيل الجمع لأي شيء آخر غير الجمع الرقمي، إلا إذا كنت ترغب تحديدا في نشر القيمة الفارغة من خلال تعبير.

لا يتم تضمين التغييرات غير المحفوظة التي تم إدخالها على السجلات في المجال عند استخدام هذه الدالة. إذا كنت تريد أن تستند الدالة DCount إلى القيم التي تم تغييرها، فيجب أولا حفظ التغييرات بالنقر فوق "حفظ سجل" ضمن "سجلات" على علامة التبويب "البيانات"، ونقل التركيز إلى سجل آخر، أو باستخدام طريقة "التحديث".

أمثلة عن الاستعلام

التعبير النتائج
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); ترجع عدد القيم الموجودة في الحقل "معرف المنتج" للجدول "مبيعات المنتج" حيث تكون قيمة "الخصم" هي "0".
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); ترجع هذه الدالة عدد القيم الموجودة في الحقل "معرف المنتج" للجدول "مبيعات المنتج" حيث يقع "تاريخ البيع" قبل التاريخ الحالي بيوم.

مثال VBA

ملاحظة

توضح الأمثلة التالية استخدام هذه الدالة في وحدة نمطية ل Visual Basic for Applications (VBA). لمزيد من المعلومات حول استخدام VBA، حدد "مرجع المطور" في القائمة المنسدلة بجوار "بحث" وأدخل مصطلح أو أكثر في مربع البحث.

ترجع الدالة التالية عدد الطلبات التي تم شحنها إلى بلد/منطقة محددة بعد تاريخ شحن محدد. المجال عبارة عن جدول طلبات.

Public Function OrdersCount _
    (ByVal strCountryRegion As String, _
    ByVal dteShipDate As Date) As Integer
    OrdersCount = DCount("[ShippedDate]", "Orders", _
        "[ShipCountryRegion] = '" & strCountryRegion & _
        "' AND [ShippedDate] > #" & dteShipDate & "#")
End Function

لاستدعاء الدالة، استخدم السطر التالي من التعليمة البرمجية في النافذة الفورية:

:OrdersCount "UK", #1/1/96#