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

حساب المعدل في تقرير


khasem

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

السلام عليكم اخوتي الكرام
 

   . لدي تقرير به حقول للدرجات

عدد الحقول 11 حقل 

  كيف اقوم بحساب المعدل حتى لو كانت نصف الحقول فارغة

او كلها تحتوي على درجات 

مثلا مرات توجد خمس مواد مدرجة ونريد المعدل  ومرات اخرى توجد 11 مادة مدرجة ونريد المعدل 

 

معدلي.JPG

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

السلام عليكم

اخي العزيز

اذا كان قصدك يكون الجمع بصورة افقية للحقول  (لنفترض ان لك حقلين باسم  k و  m وكان لديك حقل فارغ  null  (الدالة nz  تعيد قيمة الحقل الفارغ الى صفر)

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

=Nz(([m]);0)+Nz(([k]);0)

تحياتي

تم تعديل بواسطه Khalid Jnb
رابط هذا التعليق
شارك

9 minutes ago, Khalid Jnb said:

السلام عليكم

اخي العزيز

اذا كان قصدك يكون الجمع بصورة افقية للحقول  (لنفترض ان لك حقلين باسم  k و  m وكان لديك حقل فارغ  null  (الدالة nz  تعيد قيمة الحقل الفارغ الى صفر)

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


=Nz(([m]);0)+Nz(([k]);0)

تحياتي

عزيزي استاذ خالد 

ممنون لردك 

المجموع ماعندي مشكلة فيه 

المشكلة ايجاد المعدل علما ان التقرير ياخذ معلوماته من نموذج مستقل ولايرتبط بجدول 

وعدد الحقول يختلف في بعض الاحيان 

 

استاذ خالد المحترم 

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

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

اخي العزيز

كان من الافضل ارفاق مثال او ملفك لغرض التعديل 

المهم ممكن حساب عدد الحقول بالكود التالي بالتقرير ويوضع في تذييل التقرير 

حساب عدد الحفول
=Count(*)
ومن ثم جمع وقسمه حتى لو كانت عدد من الحقول فارغة  
=Nz(Sum([الدروس]);0)/[عدد الحقول]

انظر للملف المرفق

تحياتي

 

test.rar

تم تعديل بواسطه Khalid Jnb
رابط هذا التعليق
شارك

عزيزي استاذ خالد 

هذه الفكرة لاتنجح معي لان جدول التقرير مرسوم  وبداخل الحقول يوجد 11 مربع على عدد الحقول 

مرفق صورة لحقول النموذج التي هي اصلا عبارة عن حقول مرسومة بداخلها 11 مربع نص

حقول نموذج.JPG

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

بعد اذن أ/ خالد :

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

وطبعا الحساب من حيث القيمة والعدد وتقسمهم على بعض قبل فتح التقرير

ضع مربع نص مثلا اسمه avtext داخل النموذج
وقبل فتح التقرير مباشرة ضع الكود

Dim ctl As Control
Dim C, v As Integer
For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then              ' check text box only
        If ctl.name Like "m*" Then			' check if text box name start with m
          If Nz(ctl.Value, "") <> "" Then		  ' check if text box not empty
             v = v + ctl.Value				' value counter
             C = C + 1				     ' number counter
          End If
       End If
    End If
Next ctl
avtext = v / C

 

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

4 minutes ago, Gamal.Saad said:

بعد اذن أ/ خالد :

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

وطبعا الحساب من حيث القيمة والعدد وتقسمهم على بعض قبل فتح التقرير

ضع مربع نص مثلا اسمه avtext داخل النموذج
وقبل فتح التقرير مباشرة ضع الكود


Dim ctl As Control
Dim C, v As Integer
For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then              ' check text box only
        If ctl.name Like "m*" Then			' check if text box name start with m
          If Nz(ctl.Value, "") <> "" Then		  ' check if text box not empty
             v = v + ctl.Value				' value counter
             C = C + 1				     ' number counter
          End If
       End If
    End If
Next ctl
avtext = v / C

 

استاذ جمال 

حياك الله 

لم افهم معنى قبل فتح التقرير 

مكن توضيح 

رحم الله والديك 

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

3 minutes ago, Gamal.Saad said:

بارك الله بك استاذ جمال 

اسال الله بحق هذه الليلة المباركة ان يعطيك الصحة والعافية 

والشكر موصول للاستاذ خالد 

مع احترامي وتقديري 

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

وبارك فيك أخي الكريم وفي الاستاذ خالد وتقبل منكم صالح الاعمال
لكن لي استفسار بسيط : لماذا التكرار في هذه الاسطر ؟ حيث أرى أنها متشابهة تمامافإن كانت كذلك

فيمكنك وضعها مرة واحدة في دالة ثم تقوم باستدعائها

Me.a1.Caption = "100"
Me.s1.Caption = "50"
 Me.a2.Caption = "100"
 Me.s2.Caption = "50"
 Me.a3.Caption = "100"
Me.s3.Caption = "50"
 Me.a4.Caption = "100"
 Me.s4.Caption = "50"
 Me.a5.Caption = "100"
 Me.s5.Caption = "50"
 Me.a6.Caption = "100"
 Me.s6.Caption = "50"
 Me.a7.Caption = "100"
 Me.s7.Caption = "50"
 Me.a8.Caption = "100"
 Me.s8.Caption = "50"
 Me.a9.Caption = "100"
 Me.s9.Caption = "50"
 Me.a10.Caption = "100"
 Me.s10.Caption = "50"
 Me.a11.Caption = "100"
 Me.s11.Caption = "50"

 

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

11 minutes ago, Gamal.Saad said:

وبارك فيك أخي الكريم وفي الاستاذ خالد وتقبل منكم صالح الاعمال
لكن لي استفسار بسيط : لماذا التكرار في هذه الاسطر ؟ حيث أرى أنها متشابهة تمامافإن كانت كذلك

فيمكنك وضعها مرة واحدة في دالة ثم تقوم باستدعائها


Me.a1.Caption = "100"
Me.s1.Caption = "50"
 Me.a2.Caption = "100"
 Me.s2.Caption = "50"
 Me.a3.Caption = "100"
Me.s3.Caption = "50"
 Me.a4.Caption = "100"
 Me.s4.Caption = "50"
 Me.a5.Caption = "100"
 Me.s5.Caption = "50"
 Me.a6.Caption = "100"
 Me.s6.Caption = "50"
 Me.a7.Caption = "100"
 Me.s7.Caption = "50"
 Me.a8.Caption = "100"
 Me.s8.Caption = "50"
 Me.a9.Caption = "100"
 Me.s9.Caption = "50"
 Me.a10.Caption = "100"
 Me.s10.Caption = "50"
 Me.a11.Caption = "100"
 Me.s11.Caption = "50"

 

استاذي الفاضل 

هذه لاحاجة لي بها وتركتها غير مرئية 

شكرا لتفضلك بالاجابة 

جزاك الله خير الجزاء

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information