الدالة DDB

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

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

بناء الجملة

DDB(cost, salvage, life, period* [, factor] )

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

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

    

ملاحظات

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

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

تستخدم الدالة DDB الصيغة التالية لحساب الإهلاك لفترة معينة:

الإهلاك / الفترة = ((costsalvage) * factor) / life

مثال

ملاحظة

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

يستخدم هذا المثال دالة DDB لإرجاع إهلاك الأصل لفترة محددة نظرا للتكلفة الأولية (InitCost)، وقيمة إنقاذ في نهاية العمر الافتراضي للأصل (SalvageVal)، وإجمالي عمر الأصل بالسنوات (LifeTime)، والفترة بالسنوات التي يتم حساب الإهلاك لها (Depr).

Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, Depr
Const YRMOS = 12    ' Number of months in a year.
Fmt = "###,##0.00"
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("Enter the asset's value at end of its life.")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YRMOS    ' Ensure period is >= 1 year.
    MsgBox "Asset life must be a year or more."
    MonthLife = InputBox("What's the asset's useful life in months?")
Loop
LifeTime = MonthLife / YRMOS    ' Convert months to years.
If LifeTime <> Int(MonthLife / YRMOS) Then
    LifeTime = Int(LifeTime + 1)    ' Round up to nearest year.
End If 
DepYear = CInt(InputBox("Enter year for depreciation calculation."))
Do While DepYear < 1 Or DepYear > LifeTime
    MsgBox "You must enter at least 1 but not more than " & LifeTime
    DepYear = InputBox("Enter year for depreciation calculation.")
Loop
Depr = DDB(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & _
Format(Depr, Fmt) & "."