تحية عطره للجميع
ارجو عمل داله تقوم بجمع ايام الحضور " P " حسب الصورة التالية

قمت بعمل الداله التالية ولكن تم جمع ايام الحضور لجميع الموظفين
DCount("*";"tbl2";"[1]='P'")تحية عطره للجميع
ارجو عمل داله تقوم بجمع ايام الحضور " P " حسب الصورة التالية

قمت بعمل الداله التالية ولكن تم جمع ايام الحضور لجميع الموظفين
DCount("*";"tbl2";"[1]='P'")تم تعديل هذه المشاركة بواسطة ناصر المصلح في 6 ديسمبر 2013 في 03:34
برأيي طريقة تصميم الجدول الثاني خاطئه لانه المفروض يكون
*اسم الموظف
*تاريخ اليوم
*الحاله " حضور - غياب - وغيره"
وبهذه الحاله تستطيع ان تقوم بجمع عدد ايام الحضول للموظف باعتبار اسم الموظف هو مفتاح العلاقه
"قال رب اشرح لي صدري *ويسر لي امري*واحلل عقدة من لساني يفقهوا قولي" سورة طه
اللهم صل على سيدنا محمد وعلى آل سيدنا محمد
كل الشكر اخي اكرم
مفتاح العلاقة رقم الموظف حيث ان اسم الموظف متاح بالنموذج ولايحتاج الى تكراراه بجدول الحضور حيث ان العلاقة مرتبطه بالرقم الوظيفي
والنموذج الموضح به حالة الموظف من حضور وغيياب وخلافة هو نموذج فرعي

كل ماريده هو جمع ايام الحضور فقط
تم تعديل هذه المشاركة بواسطة ناصر المصلح في 6 ديسمبر 2013 في 18:28
طيب اخي وحتى لو مفتاح العلاقه رقم الموظف وليس اسمه يجب ان يكون السجلات هكذا
رقم الموظف التاريخ الحاله
1 1/12/2013 p
2 1/12/2013 p
وهكذا حتى اذا جئت تجمع عدد السجلات بشرط الموظف 1 والحاله تكون "p" يعطيك نتيجه
اما الان مسوي سجل واحد طريقه خاطئه
"قال رب اشرح لي صدري *ويسر لي امري*واحلل عقدة من لساني يفقهوا قولي" سورة طه
اللهم صل على سيدنا محمد وعلى آل سيدنا محمد
اكرم العريقي كتب:طيب اخي وحتى لو مفتاح العلاقه رقم الموظف وليس اسمه يجب ان يكون السجلات هكذا
رقم الموظف التاريخ الحاله
1 1/12/2013 p
2 1/12/2013 p
وهكذا حتى اذا جئت تجمع عدد السجلات بشرط الموظف 1 والحاله تكون "p" يعطيك نتيجه
اما الان مسوي سجل واحد طريقه خاطئه
ليس سجل واحد اخي العزيز هو اكثر من سجل عند اضافة اكثر من موظف
شوف العلاقه حقك غلط لازم تكون من الموظفين الى الغياب
شوف جدول الغياب لازم يكون بهاذي الصوره
ويدخل فيه تواريخ الايام وحالات الغياب وشوف في النموذج تيبل واحد افتحه
وشوف بايعطيك بحق عدد الحضور عدد ايام الحضور للموظف اتمنى يكون المطلوب وبالتوفيق
"قال رب اشرح لي صدري *ويسر لي امري*واحلل عقدة من لساني يفقهوا قولي" سورة طه
اللهم صل على سيدنا محمد وعلى آل سيدنا محمد
مشكور على المجهود
ولكن انت قمت بتغير كل شئ وهذه الطريقة اعرفها جيدا ولا كن لاتفي بما اريد فانا اريد الجدول افقي ليسهل الادخال بالايام حيث انها ثابته وليس طريقة الادخال عموديا مثل ماقمت انت به
بانتضار الحل من احد الاخوان
استخدمت هذه الداله ولكنها طويله جدا وتعطي عدد الايام صحيحا بس ( -)
فلا اعلم ماهوا الخطاء ارجو المساعدة
=Sum(Nz([1])="p")+Sum(Nz([2])="p")+Sum(Nz([3])="p")+Sum(Nz([4])="p")+Sum(Nz([5])="p")+Sum(Nz([6])="p")+Sum(Nz([7])="p")+Sum(Nz([8])="p")+Sum(Nz([9])="p")+Sum(Nz([10])="p")+Sum(Nz([11])="p")+Sum(Nz([12])="p")+Sum(Nz([13])="p")+Sum(Nz([14])="p")+Sum(Nz([15])="p")+Sum(Nz([16])="p")+Sum(Nz([17])="p")+Sum(Nz([18])="p")+Sum(Nz([19])="p")+Sum(Nz([20])="p")+Sum(Nz([21])="p")+Sum(Nz([22])="p")+Sum(Nz([23])="p")+Sum(Nz([24])="p")+Sum(Nz([25])="p")+Sum(Nz([26])="p")+Sum(Nz([27])="p")+Sum(Nz([28])="p")+Sum(Nz([29])="p")+Sum(Nz([30])="p")+Sum(Nz([31])="p")
عزيزي
الحلول كثيرة ومنها انشاء دالة بها فور لوب حيث تمر على كل الحقول .
لكن انا اعطيتك الحل التالي لكي نثبت مقولة الاستاذة زهرة "ياليت نشغل البطيخة اللي فوقنا شوي" وانا متاكد انها سهلة .
سوي عمود جديد من نوع calculated وبه المعادلة التالية
Abs(([1]='p')+([2]='p')+([3]='p'))
وهكذا حتى العمود 31
بالتوفيق
خبير تحليل النظم
خبير Business Process ونظم ERPs
خبير قواعد بيانات وبرمجة اكسس
abc_2_me@hotmail.com
كل الشكر من الاعماق
تم العمل حسب شرحك وضهرت النتيجة بشكل صحيح
لكن توجد ملاحظة بسيطة وهي في حال عدم اكمال جميع بيانات الشهر 31 يوم لاتضهر قيمة اجمالي الغياب اي بمعنى في حال وجود قيمة فارغة لايتم الاحتساب


=Abs(([1]='p')+([2]='p')+([3]='p')+([4]='p')+([5]='p')+([6]='p')+([7]='p')+([8]='p')+([9]='p')+([10]='p')+([11]='p')+([12]='p')+([13]='p')+([14]='p')+([15]='p')+([16]='p')+([17]='p')+([18]='p')+([19]='p')+([20]='p')+([21]='p')+([22]='p')+([23]='p')+([24]='p')+([25]='p')+([26]='p')+([27]='p')+([28]='p')+([29]='p')+([30]='p')+([31]='p'))
تم تعديل هذه المشاركة بواسطة ناصر المصلح في 7 ديسمبر 2013 في 02:36
استخدم دالة nz كالتالي
=([1]='p')+(Nz([2];0)='p')
لاحظ استخدمتها فقط مع العمود2
طبقها عالكل
لاحظ وضع الصفر ما هو الا اي حرف او رقم غير حرف p
بالتوفيق
=Abs(nz(([1];0)='p')+(nz([2];0)='p')+(nz([3];0)='p')+([4]='p')+([5]='p')+([6]='p')+([7]='p')+([8]='p')+([9]='p')+([10]='p')+([11]='p')+([12]='p')+([13]='p')+([14]='p')+([15]='p')+([16]='p')+([17]='p')+([18]='p')+([19]='p')+([20]='p')+([21]='p')+([22]='p')+([23]='p')+([24]='p')+([25]='p')+([26]='p')+([27]='p')+([28]='p')+([29]='p')+([30]='p')+([31]='p'))
تم تعديل هذه المشاركة بواسطة ramhan في 7 ديسمبر 2013 في 02:57
خبير تحليل النظم
خبير Business Process ونظم ERPs
خبير قواعد بيانات وبرمجة اكسس
abc_2_me@hotmail.com
طبقتها على الكل ولكن يضهر الاجمالي بالسالب ( - )

تم تعديل هذه المشاركة بواسطة ناصر المصلح في 7 ديسمبر 2013 في 03:00
تمام
استخدم دالة abs
او الجميع بين قوسين ثم الضرب بسالب واحد
تم تعديل هذه المشاركة بواسطة ramhan في 7 ديسمبر 2013 في 03:00
خبير تحليل النظم
خبير Business Process ونظم ERPs
خبير قواعد بيانات وبرمجة اكسس
abc_2_me@hotmail.com
Abs(nz(([1];0)='p'))
لايقبل عزيزي
عند وضع هذا الكود وتطبيقة على الكل وحفضة وعند فتحة يتوقف النظام عن العمل عند فتحة البرنامج بكل مره
عزيزي
فعلا يقوم النظام بالاغلاق . يالله هذي ميكروسوفت مش غريبه منهم
الصق الكود التالي وبالاحداث المبينة
بعد التعديل في اي عمود اضغط حفظ او كنترول مع اس
بالتوفيق
Private Sub Form_AfterUpdate() xsum = 0 For i = 1 To 31 If Me.RecordsetClone.Fields(i) = "p" Then xsum = xsum + 1 End If Next i Me.نص88 = xsum End Sub Private Sub Form_Current() xsum = 0 For i = 1 To 31 If Me.RecordsetClone.Fields(i) = "p" Then xsum = xsum + 1 End If Next i Me.نص88 = xsum End Sub
تم تعديل هذه المشاركة بواسطة ramhan في 7 ديسمبر 2013 في 04:16
خبير تحليل النظم
خبير Business Process ونظم ERPs
خبير قواعد بيانات وبرمجة اكسس
abc_2_me@hotmail.com
ممكن تحدد اين بالضبط لا يعمل بشكل جيد.
عندي تمام.
سارفع القاعدة لاحقا .
خبير تحليل النظم
خبير Business Process ونظم ERPs
خبير قواعد بيانات وبرمجة اكسس
abc_2_me@hotmail.com
السلام عليكم
قمت بتجربة الكود واعتقد ان لحرف P علاقة بالمشكلة
ففي الكود هو هكذا p وفي الفورم P
والله اعلم
صفحتي الشخصية في منتدى أوفيسنا
اعذروني ففي الفترة القادمة سيكون تواجدي في المنتدى ضيق جداً وذلك للانشغال في دورة لمدة 6 شهور بعد الدوام
عند الانتقال لسجل موظف ثاني او عمل تحديث تضهر رساله خطاء


حيا الله الاستاذ الكبير عبدالله معنا اولا
تفضل اخي ناصر ثانيا
قلت لك الحلول كثيرة سابقا
الحل التالي ينفع لاني رايت النموذج من نوع مفرد بمعنى انك ستتنقل بين السجلات كلا على حدة فوضعت الحدث في الحالي . لو كان على شكل داتا شيت فهناك كلام ثاني.
ولعلك فهمت عمل الكود
Private Sub Form_Current() ii = 0 For Each ctr In Me.Controls If ctr.ControlType = acComboBox Then If ctr = "p" Then ii = ii + 1 End If End If Next ctr Me.نص88 = ii End sub
اعطنا الفيدباك وبالتوفيق
تم تعديل هذه المشاركة بواسطة ramhan في 8 ديسمبر 2013 في 01:18
خبير تحليل النظم
خبير Business Process ونظم ERPs
خبير قواعد بيانات وبرمجة اكسس
abc_2_me@hotmail.com
ماشاء الله عليك
بالكود الاخير يعمل 100% بدون اي مشاكل
كلمة شكر ماتوفيك
حسب المفاهمة اذا كان بالامكان اضافة كود النموذج لنفس التقرير
مرفق القاعدة مع التقرير لتعديل عليها
مع فائق الووود
تم تعديل هذه المشاركة بواسطة ناصر المصلح في 8 ديسمبر 2013 في 20:54
عزيزي
الصق الكود التالي في موديول التقرير
Public Function xramhan() ii = 0 For Each ctr In Me.Detail.Controls If ctr.ControlType = acComboBox Then If ctr = "P" Then ii = ii + 1 End If End If Next ctr xramhan = ii End Function
ثم اذهب الى العنصر وعند خاصية المصدر واكتب
=xramhan()
ملاحظة: يجب المرور على كل العناصر التحكم وتحويلها الى مربع تحرير وسرد. وذلك بالماوس اليمين تغيير الى مربع تحرير وسرد . واترك اخر مربع علشان تنسخ منه التنسيقات عن طريق الفرشاة من شريط الادوات ثم اكمل تغييره وتنسيقه.
هنا لان فكرة الكود هي المرور على العناصر من نوع تحرير وسرد . يمكن تقول خلي النوع مربعات نص ولكن هنا سيتعقد الكود لوجود مربعات نص اخرى .
همسة : سؤالك هنا ما هو الا الكلام الثاني الذي ذكرته لك لو كان الطلب على داتا شيت والتقرير ما هو الا داتا شيت .
جرب واعطنا الفيد باك وبالتوفيق .
خبير تحليل النظم
خبير Business Process ونظم ERPs
خبير قواعد بيانات وبرمجة اكسس
abc_2_me@hotmail.com
عزيزي ناصر
انا قلت في موديول التقرير وليس موديل عامة
في الوحدة النمطية تبع التقرير وليس وحدة نمطية عامة
عن طريق ايقونة عرض الكود من شريط الادوات ومن تبويب تصميم بالتحديد وانت في وضع التصميم للتقرير.
بالتوفيق
خبير تحليل النظم
خبير Business Process ونظم ERPs
خبير قواعد بيانات وبرمجة اكسس
abc_2_me@hotmail.com