اذهب الي المحتوي
أوفيسنا

استخدام IF فى وحدة نمطية


إذهب إلى أفضل إجابة Solved by ابوخليل,

الردود الموصى بها

السلام عليكم ورحمة الله وبركاته 
أريد تحويل كود الذى بالاستعلام الى وحدة نمطيه ليسهل التعامل معها و جزاكم الله خيرا
 

Consume Amount: IIf([issue date]<#01/08/2016#;consumD0817([consum]);IIf([issue date] Between #01/08/2016# And #30/07/2017#;consumA0817([consum]);IIf([issue date] Between #01/08/2017# And #30/07/2018#;consumB0817([consum]);IIf([issue date] Between #01/08/2018# And #30/07/2019#;consumC0817([consum])))))


مرفق النموذج الذى اعمل عليه 

Test 10000.mdb

رابط هذا التعليق
شارك

If("[issue date]"<#01/08/2016#;consumD0817([consum]);If([issue date] >= #01/08/2016# And ([issue date] <=#30/07/2017#;consumA0817([consum]);If([issue date] >= #01/08/2017# And ([issue date] <=#30/07/2018#;consumB0817([consum]);IIf([issue date] >= #01/08/2018# And ([issue date]<=#30/07/2019#;consumC0817([consum]))))

 

  • Thanks 1
رابط هذا التعليق
شارك

حاولت تطبيقها و لكن لم استطع لذلك إستشرت اساتذتى هنا 
 

Consume Amount= IIf([issue date]<#01/08/2016#;consumD0817([consum]))
Consume Amount= IIf([issue date] Between #01/08/2016# And #30/07/2017#;consumA0817([consum]))
Consume Amount=IIf([issue date] Between #01/08/2017# And #30/07/2018#;consumB0817([consum]))
Consume Amount=IIf([issue date] Between #01/08/2018# And #30/07/2019#;consumC0817([consum]))


 

تم تعديل بواسطه محمد احمد لطفى
رابط هذا التعليق
شارك

قمت بإنشاء مربع نص فى نموذج karabs   اسمه  txt4

فى قسم التفاصيل للنموذج

فى حدث عند التلوين وضعت الكود التالى

Private Sub تفصيل_Paint()
If [Issue Date] < #1/8/2016# Then
    Me.txt4 = ConsumD0817([Consum])
ElseIf [Issue Date] >= #1/8/2016# And [Issue Date] < #7/30/2017# Then
    Me.txt4 = ConsumA0817([Consum])
ElseIf [Issue Date] >= #1/8/2017# And [Issue Date] < #7/30/2018# Then
    Me.txt4 = ConsumB0817([Consum])
ElseIf [Issue Date] >= #1/8/2018# And [Issue Date] < #7/30/2019# Then
    Me.txt4 = Consumc0817([Consum])
End If

End Sub

أول نتيجة ظهرت هى .133

Capture33.PNG.3cda341155b193dab69a4286bdf4678d.PNG

مرفق الملف

Test 10000-kera.mdb

استبدل ب  txt4    اسم عنصر التحكم الذى تريد ظهور النتيجة فيه

* قمت بتعديل الكود هنا  عدله فى الملف لنحقق شرط  Between

تم تعديل بواسطه عبد الفتاح كيرة
  • Thanks 1
رابط هذا التعليق
شارك

  • أفضل إجابة

السلام عليكم

مشاركة مع احبتي

 ويبدوا اننا اتفقنا بالمشاركة في وقت واحد

عملت وحدة نمطية عامة

Public Function ConAmnt(a As Date, b As Double)
Dim i As Double
If a < #1/8/2016# Then ConsumD0817 (b)
If a >= #1/8/2016# And a <= #7/30/2017# Then i = ConsumA0817(b)
If a >= #1/8/2017# And a <= #7/30/2018# Then i = ConsumB0817(b)
If a >= #1/8/2018# And a <= #7/30/2019# Then i = Consumc0817(b)
ConAmnt = i
End Function

تستدعيها في الاستعلام  بهذا السطر

Consume_Amount: ConAmnt([issue date];[Consum])

ولكن لاحظ انك في كل سنة جديدة ستزيد سطرا الى الوحدة النمطية

Test2.rar

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

شكرا جزيلا أساتذتى

أستاذ ابو خليل ممكن أعرف كيف تم ربط 
  a بخلية 

[issue date]

b بخلية 
 

Consum

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

تم تعديل بواسطه محمد احمد لطفى
رابط هذا التعليق
شارك

شكرا جزيلا أساتى

المقصد
البرنامج عرف اذاى إن a هى خلية [issue date]

البرنامج عرف اذاى إن b هى خلية [Consum]

 

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

رابط هذا التعليق
شارك

لو اعدت النظر  لتبين لك

قلنا  للوحدة النمطية  ConAmnt  اعتبري الــ a  حقل تاريخ  والـــ  b  قل رقمي 

ثم اجرينا المعادلة  داخل الوحدة النمطية  والناتج سيكون هو القيمة i

وقلنا انتي  يا  ConAmnt  ستحملين قيمة  i  على شرط  :

يكون داخل القوسين حقلي تاريخ ورقمي على التوالي ، كما تم ترتيبهما 

اقتباس

البرنامج عرف اذاى إن a هى خلية [issue date]

هو لا يعرف  الخلية باسمها ولكن بنوعها

 

 

 

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

المشاركة مع احبتي 

19 دقائق مضت, محمد احمد لطفى said:

المقصد
البرنامج عرف اذاى إن a هى خلية [issue date]

البرنامج عرف اذاى إن b هى خلية [Consum]

ھناک قلنا ان الحرف a هو حقل او مربع نصي بنوع التاريخ و ايضا قلنا ان حرف b هو حقل رقمي من نوع دبل

1 ساعه مضت, ابوخليل said:

Public Function ConAmnt(a As Date, b As Double)

وعند استدعائها يجب ان نكتب حقلين الاول بدل حرف a وهو حقل تاريخ
والثاني هو حقل رقمي
هكذا

1 ساعه مضت, ابوخليل said:

Consume_Amount: ConAmnt([issue date];[Consum])

عذراً استاذ ابوخليل لم اجد مشاركتك 😅

تم تعديل بواسطه Shivan Rekany
  • Thanks 2
رابط هذا التعليق
شارك

1 ساعه مضت, ابوخليل said:

Public Function ConAmnt(a As Date, b As Double)

لاحظ المتغيرين داخل القوسين للوظيفة

يتم التعويض عنهما عند استدعاء الوظيفة

1 ساعه مضت, ابوخليل said:

Consume_Amount: ConAmnt([issue date];[Consum])

لاحظ الاستدعاء

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

ماشاء الله 

3 ردود فى نفس واحد

  • Like 1
  • Thanks 2
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information