اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

sandanet

الخبراء
  • Posts

    1,366
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    19

كل منشورات العضو sandanet

  1. اخي الكريم ارفق مثال بسيط لقاعدة البيانات التي لديك لكي يتسنى العمل عليها
  2. اخي الكريم حمدي يفضل ان تضع البرنامج بالكود السابق وشرح آلية عمله لكي يتم تفحصه وتجربته والمشاركة فيه من جميع الاخوة والاساتذة الكرام ولتعم الفائدة اكثر وان شاء الله الكل يساهم فيه .. ان مايبعد الشخص عن المشاركة في بعض الاحيان هو صعوبة فهم الفكرة التي تقوم بطرحها او جود اخطاء جذرية في البرنامج تمنع الوصول الى الهدف وو ..الخ لذلك عند طرح البرنامج يفضل ان يكون واضح وان تشرح آلية عمله بشكل سلس يفهمه الجميع لكي يستطيع اكثر عدد من الاشخاص المساهمة فيه تحياتي
  3. اخي الكريم حمدي الكود الذي لديك هو للتوزيع التلقائي للحصص والمواد للمدرسين على الفصول خلال الاسبوع ... في البداية لديك تعريف للمتغيرات التي سوف يتم استخدامها في الكود وهي : بالنسبة للمتغيرات من tb1 الى tb4 فهي لتعريف جداول البيانات التي سيتم العمل عليها Dim i, sf, mrhla, sfofco, sfof(20) As String Dim tb1 As Recordset Dim tb2 As Recordset Dim tb3 As Recordset Dim tb4 As Recordset وبعدها لديك كود يقوم باسناد اسماء الجداول الى المتغيرات tb1 الى tb4 .. يعني ان tb1 هو الجدول teacher class والجدول tb2 هو جدول الفصل .. الخ Set tb1 = CurrentDb.OpenRecordset("teacher class", dbOpenDynaset) Set tb2 = CurrentDb.OpenRecordset("الفصل", dbOpenDynaset) Set tb3 = CurrentDb.OpenRecordset("بيانات المادة", dbOpenDynaset) Set tb4 = CurrentDb.OpenRecordset("بيانات المعلم", dbOpenDynaset) الكود بعد ذلك يقوم بالتأكد من احتواء جدولي tb3 و tb4 على بيانات .. فإن وجد فيهن بيانات عندها سيقوم بحذفها كلها .. الكود المسؤول عن هذه العملية هو If tb3.RecordCount <> 0 Then tb3.MoveFirst Do While tb3.EOF = False tb3.Delete tb3.MoveNext Loop End If If tb4.RecordCount <> 0 Then tb4.MoveFirst Do While tb4.EOF = False tb4.Delete tb4.MoveNext Loop End If بعد ذلك يتم حساب الصفوف والمراحل بالجدول 2 عن طريق هذا الكود tb2.MoveFirst sfofco = 1 sfof(1) = tb2![الصف] mrhla = tb2![المرحلة] Do While tb2.EOF = False If mrhla <> tb2![المرحلة] Then sfofco = sfofco + 1 sfof(sfofco) = tb2![الصف] mrhla = tb2![المرحلة] End If tb2.MoveNext Loop بعد ذلك يتم توزيع الصفوف والمراحل وعدد الحصص على عدد ايام الاسبوع في جدول بيانات المادة في الكود التالي For sf = 1 To sfofco tb1.MoveFirst Do While tb1.EOF = False For i = 3 To 100 Step 2 If tb1.Fields(i) = sfof(sf) Then tb2.FindFirst "[الصف] = " & "'" & sfof(sf) & "'" tb3.FindFirst "[الصف]=" & tb2![المرحلة] & " and [المادة] = '" & tb1.Fields(i + 1) & "'" If tb3.NoMatch = True Then tb3.AddNew tb3![الصف] = tb2![المرحلة] tb3![المادة] = tb1.Fields(i + 1) tb3![عدد الحصص] = 1 tb3.Update Else tb3.Edit tb3![عدد الحصص] = tb3![عدد الحصص] + 1 tb3.Update End If End If Next i tb1.MoveNext Loop Next sf واخيراً يتم توزيع المعلمين على ايام الاسبوع وعلى حسب المواد التي لديهم في الجدول عن طريق الكود التالي tb1.MoveFirst Do While tb1.EOF = False For i = 3 To 100 Step 2 tb4.FindFirst "[الفصل]='" & tb1.Fields(i) & "'" & " and [المادة] = '" & tb1.Fields(i + 1) & "'" & "and [رقم] =" & tb1.Fields(0) If tb4.NoMatch = True And IsNull(tb1.Fields(i)) = False Then tb4.AddNew tb4![رقم] = tb1.Fields(0) tb4![اسم المعلم] = tb1.Fields(1) tb4![الفصل] = tb1.Fields(i) tb4![المادة] = tb1.Fields(i + 1) tb2.FindFirst "[الصف]='" & tb1.Fields(i) & "'" tb4![الصف] = tb2![المرحلة] tb4.Update Else End If Next i tb1.MoveNext Loop ارجو ان يكون الشرح واضح .. اعتذر عن عدم تمكني من التفصيل اكثر لضيق الوقت ولان الكود طويل نوعا ما فارجو السماح
  4. اخي الكريم طاهر حسب علمي ان الاستاذة زهرة ليست في هذا المنتدى .. اخر مشاركاتها كانت في منتدى الفريق العربي للبرمجة تحياتي
  5. استخدم دالة Dlookup كمصدر لعنصر التحكم الحساب السابق والاسم
  6. أخي الكريم الكل هنا يرجوا المساعدة لكن ذلك لا يعني ان نخالف قوانين المنتدى .. عنوان موضوعك مخالف وسيتم اغلاقه من قبل الادارة لذلك ارجو منك التقيد في قوانين المنتدى حتى تستفيد انت ويستفيد الكل تحياتي
  7. بارك الله فيك اخ عادل .. ان شاء الله يستفيد منه اعضاء المنتدى الكرام تحياتي
  8. حلول الخبراء دائما افضل .. فكرة جميلة بارك الله فيك استاذنا القدير رمهان
  9. نعم اخي الكريم هو كذلك بسبب عدم توضيحك للمطلوب جيداً من البداية .. كان من المفروض ان تقول عمل شرط بين خليتين منهم خلية في اخر سجل لكل شخص .. بهذا نستطيع ان نفهم انك لاتريد اخر سجل في الجدول بشكل عام ، وانما تريد اخر سجل لكل شخص في الجدول .. كما ان جدولك كان لايحتوي الا على اسم واحد وهو "محمد مجدى" وبعدها تقول "محمود اخر سجل عنده 10" ..اخي الفاضل يجب عليك تقديم السؤال بشكل صحيح لكي تحصل على جواب صحيح على العموم .. تفضل المرفق التالي test120.mdb
  10. فقط ضع الامر on error resume next قبل الكود
  11. اعمل استعلام واختار الحقول المطلوب عرضها ومن ثم اجعل مصدر التقرير ذلك الاستعلام
  12. اخي الكريم من قال لك بأنه يأتي بالرقم الأكبر من الاستعلام؟؟ الدالة المستعملة هي دالة Last يعني اخر سجل .. ليس لها علاقة بالرقم اذا كان كبير ام لا
  13. أخي الكريم @أكسس وبس هل اطلعت على ملفك بعد التعديل أم لا؟؟ ارجو الاهتمام بالاجابة
  14. اعتقد ان المشكلة متعلقة بتعدد نسخ الاوفيس على الجهاز
  15. ارفق قاعدة بياناتك لتفحصها
  16. اذا كانت قيمة txtbox فارغة فيجب عليك استعمال دالة Nz للتجنب القيمة الفارغة وتحويلها الى قيمة عددية كالتالي txtboxC = Nz(txtboxA,0) + Nz(txtboxB,0)
  17. اولى الملاحظات هي : 1- في لوحة التقارير .. من الافضل جعل القائمة تغلق عند الضغط بالماوس خارج القائمة وليس عن طريق زر اغلاق في الاسفل 2- اضافة المستخدمين يجب ان تكون حصرية للمدير او المسؤول الرئيسي 3 - عند فتح نموذج اسماء الموردين والضغط على جديد ومن ثم اغلاق النموذج بدون تعبئة البيانات فستظهر رسالة خطأ بوجوب عدم ترك الخانة فارغة.. يجب عليك تلافي ظهور اي رسالة خطأ فيما اذا اراد الشخص اغلاق النموذج بدون تعبئة البيانات .. نفس الشيء في نموذج اسماء العروق 4- عند الضغط على زر الحظائر او الاوزان والنمو او الاعلاف والتغذية لايفتح اي نموذج وكذلك نفس الشيء عند الضغط على التقارير 5- في نموذج ادخال اجراءات التحصين اليدوي اجعل الادخال في خانة تاريخ الاجراء عن طريق اختيار اليوم والشهر والسنة وليس عن طريق كتابتها لانه قد تختلف طرق كتابة التواريخ من شخص الى آخر 6- عند الضغط على زر ادخال في النموذج السابق "نموذج اجراءات التحصين اليدوي" عند الضغط على زر ادخال بينما الخانات جميعها فارغة فسوف تظهر رسالة "تم ادخال اجراء التحصين الدوري على كافة الابقار الموجودة" المفروض لا ينفذ الاجراء مادامت الخانات فارغة واخيراً .. البرنامج رائع التصميم خصوصاً الازرار لكن تنقصه شرح آلية العمل عليه وهو مايجب عليك فعله في زر التعليمات تحياتي
  18. تمام الان يعمل بصورة سليمة .. جاري الاطلاع
  19. تفضل .. ارجو منك تقييم الاجابة اذا كانت صحيحة تحياتي جمعيات 2.accdb
  20. لاتزال لاتعمل على اكسس 2007
×
×
  • اضف...

Important Information