• 0
anas6666

طريقة اضافة شرط if في حقل محسوب

سؤال

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

 

الاخوة الكرام قمت بانشاء جدول لمشاريع انشائية ومن ضمن الحقول يوجد حقل "نسبة الانجاز" ونوعه "محسوب" استناداً على عدة حقول في نفس الجدول ، والمخرج يطون بصيغة النسبة مثل 48% وهكذا ..

 

تكمن المشكلة بان النسبة تصل في بعض المشاريع الى اكثر من 100% وهذا خطأ برمجي 

 

المطلوب يااحبتي هو انه عند وصول النسبة الى اكثر من 100% يتم ارجاع النسبة الى 100% تلقائياً 

 

 

واعتذر عن عدم ارفاق المرفق لتقييدها من الشركة 

 

وبارك الله فيكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

9 إجابة على هذا السؤال .

  • 0

جرب هاي المعادلة:

 

 

IIf(([Now Quarter End]-[N T P])/([End of Contract]-[N T P])>1,1,([Now Quarter End]-[N T P])/([End of Contract]-[N T P]))

 

 

جعفر

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ممكن يكون المثل هكذا:

text1=A+B+C

ويكون text1 اكثر من 100%

ممكن تعمل الآتي:

text1=iif((A+B+C)>100,100,(A+B+C))

 

هل هذا المطلوب ؟

 

جعفر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تستطيع كتابة دالة تحكم Control Function بسيطة جدا كالتالي

Public Function Adjust100(dblInput As Double) As Double'    On Error GoTo Err_Handler        If dblInput > 100 Then        Adjust100 = 100    Else        Adjust100 = dblInput    End IfExit_Here:    Exit FunctionErr_Handler:    Adjust100 = 0        End Function

ثم ضع هذه الدالة في وحدة نمطية قياسية Standard Module. وفي كل مرة تُريد أن تتحكم في قيمة عدد ما بحيث لا يتجاوز المائة، أكتبه بالشكل التالي

Adjust100(xyz)

أو إذا كان لديك متغير - وليكن اسمه مثلا dblProjectComplete ، تستطيع أن تتحكم في قيمته بتمرير إلى الدالة أعلاه، كالتالي

Adjust100(dblProjectComplete)


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

 

SELECT ProjectID, ProjectName, ProjectPhase, Adjust100(ProjectCompletion) FROM Projects;

بالتوفيق،

عبدالله،،،
 

 

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

الاخوة الكرام قمت بانشاء جدول لمشاريع انشائية ومن ضمن الحقول يوجد حقل "نسبة الانجاز" ونوعه "محسوب" استناداً على عدة حقول في نفس الجدول ، والمخرج يطون بصيغة النسبة مثل 48% وهكذا ..

 

تكمن المشكلة بان النسبة تصل في بعض المشاريع الى اكثر من 100% وهذا خطأ برمجي 

 

المطلوب يااحبتي هو انه عند وصول النسبة الى اكثر من 100% يتم ارجاع النسبة الى 100% تلقائياً 

 

 

واعتذر عن عدم ارفاق المرفق لتقييدها من الشركة 

 

وبارك الله فيكم

 

 

 

الأخ / جعفر 

 

قمت بتجربة هذا الكود

=IIf([Percntage Compleed]>1;1;([Now Quarter End]-[N T P])/([End of Contract]-[N T P]))

في الحقل المطلوب بالتقرير ولم يفلح

حث كانت النتيجة  # نوع!

تستطيع كتابة دالة تحكم Control Function بسيطة جدا كالتالي

Public Function Adjust100(dblInput As Double) As Double'    On Error GoTo Err_Handler        If dblInput > 100 Then        Adjust100 = 100    Else        Adjust100 = dblInput    End IfExit_Here:    Exit FunctionErr_Handler:    Adjust100 = 0        End Function

ثم ضع هذه الدالة في وحدة نمطية قياسية Standard Module. وفي كل مرة تُريد أن تتحكم في قيمة عدد ما بحيث لا يتجاوز المائة، أكتبه بالشكل التالي

Adjust100(xyz)

أو إذا كان لديك متغير - وليكن اسمه مثلا dblProjectComplete ، تستطيع أن تتحكم في قيمته بتمرير إلى الدالة أعلاه، كالتالي

Adjust100(dblProjectComplete)

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

 

SELECT ProjectID, ProjectName, ProjectPhase, Adjust100(ProjectCompletion) FROM Projects;

بالتوفيق،

عبدالله،،،

 

شكرا لك اخوي عبدالله 

 

ساحاول تطبيقها باذن الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي انس

 

هل النص كما كتبت: 

[Percntage Compleed]

او انك اخطأت ونسيت حرف مثل t مثلا ، رجاء التأكد من الاسم!!

حيث يكون النص

[Percntage Completed]

 

جعفر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي انس

 

هل النص كما كتبت: 

[Percntage Compleed]

او انك اخطأت ونسيت حرف مثل t مثلا ، رجاء التأكد من الاسم!!

حيث يكون النص

[Percntage Completed]

 

جعفر

 

اخي جعفر النص مثل ماهو 

فقد اخطات عند تسميته في مرحلة تصميم الجداول ، وللاسف استمريت على هذا الخطأ

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إذا حبيت ، ممكن ترسل لي النموذج اللي تجري فيه هذه العملية الحسابية ، وأحاول اشوف لك وين المشكلة :)

جعفر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله خير اخي جعفر 

 

قمت بتجربة الكود ونجح في تنفيذ مااريد،ولكن بعد تعديل الفاصلتين ليصبح هكذا

 

IIf(([Now Quarter End]-[N T P])/([End of Contract]-[N T P])>1;1;([Now Quarter End]-[N T P])/([End of Contract]-[N T P]))

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هممم

على بركة الله :)

 

جعفر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .