الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

القسمة على صفر

مغلق
بدأه ابوحمود في 6 يناير 2002 · 6 رد · 532 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي استعلام أنشأت له حقل محسوب يقسم الحقل الأول على الحقل الثاني ولكن المشكلة التي تظهر عند احتواء أحد سجلات الحقل الثاني على القيمة صفر مثال

الحقل الأول =5

الحقل الثاني =0

الحقل الأول ÷ الحقل الثاني = قيمة غير منطقية

ماهو الحل ؟؟؟

#2

الأخ مجد

سؤال جيد ولم أنتبه له من قبل في عمليات الحساب في الاستعلام ، وقد عملت حل مؤقت يصلح لمثل هذه الحالات وإن كنت اعتقد أنه يوجد حل من ميكروسوفت لأن مثل هذا الأمر لا أظن أن يمر بدون حل مع بساطته .

اليك الحل ضع السطر التالي في شبكة الاستعلام مع تغيير ما يلزم :

ناتج القسمة: [اسم الحقل المقسوم]/IIf([اسم الحقل المقسوم عليه]=0;1;[اسم الحقل المقسوم عليه])

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

ولك تحياتي

#3

السلام عليكم و رحمة الله و بركاته

نظرا لتكرار الحاجة لهذا ، كنت قد أعددت بعض الدوال للتغلب علي مثل هذه الحالات

Function nvl1(inputval As Variant, checkval As Variant) As Variant
 If IsNull(inputval) Then 'Or inputval = 0 Then
  nvl1 = checkval
 Else
  nvl1 = inputval
 End If
End Function


Function nvl2(inputval As Variant, checkval As Variant) As Variant
  If IsNull(inputval) Or inputval = 0 Then
  nvl2 = checkval
 Else
  nvl2 = inputval
 End If
End Function



Function zvl(inputval, checkval, valifyes, valifno)
 If (inputval) = checkval Then
  zvl = valifyes
 Else
  zvl = valifno
 End If
End Function
#4

الأخ مصراوي

لكن سؤال الأخ كان في الاستعلام يعني كيف يستفيد من الدوال التي ذكرتها في الاستعلام ؟

الأمر الثاني أن الكود :

[اسم الحقل المقسوم]/IIf([اسم الحقل المقسوم عليه]=0;1;[اسم الحقل المقسوم عليه])

يعمل في VBA وهو مكون من سطر واحد مع ملاحظة تغيير الفاصلة المنقوطة بالفاصلة العادية .

اعتقد أنه يوجد حل ولابد ولكن ماهو .... ؟

ولك تحياتي

#5

السلام عليكم و رحمة الله و بركاته

فى الاستعلام

result: [Table1]![number1]/nvl2([Table1]![number2];1)

و من خلال الدوال الثلاثة يمكن الحصول علي الناتج بحسب رغبة المستخدم ففي المثال السابق اذا كان البسط صفر فنقسم علي 1

و من الممكن استخدام الدالة فى المقام أيضا

#6

الاخوة الاعزاء

مثال : نفرض الحقل المقسوم = A

نفرض ان الحقل المقسوم عليه = B

نفرض ان الحقل المحتسب = C

بفرض ان الحقل A به قيمة = 0

وبفرض ان الحقل B به قيمة = 0

ففى هذه الحالة نضع الدالة التالية فى حقل C

C= IIF(A=0;0;IIF(B=0;0;(A/B)))

مع ملاحظة تغيير الفاصلة المنقوطة بفاصلة عادية اذا احتاج الامر لذلك فى كتابة الداله .

وهذه الدالة كثيرا ما استعملها وخاصة فى الاكسل باستثناء ان فى الاكسل IF بدلا من IIF فجربوها وستنفع باذن الله .

#7

جزاكم الله خيراً جميعاًً

وزادكم الله علماً ومعرفة

هذا الموضوع مغلق.

مواضيع مشابهة