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

توزيع الاحتياطي


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

السلام عليكم

يوجد جدول TBL_Employees لبيانات الموظفين

يوجد جدول TBL_Rserve لتسجيل حصص المعلمين

المطلوب حصر غياب المعلمين المتغيبين وتوزيع حصص اليوم على المعلمين الفارغين في هذه الحصة في جدول TBL_Rserve3

مع عدم تكرار المعلم مرة اخرى

وشكرا

برنامج الاحتياطي 2022.rar

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

21 ساعات مضت, ali2025 said:

يا رب

اذا تم توزيع حصص الاحتياط بهذه الطريقة من الممكن ان يكون بعض المعلمين يكون نصيبهم من حصص الاحتياط بشكل يومي ... والبعض الاخر لا يتم اسناد حصص لهم ... والله اعلم ... لكن ممكن ذلك التوزيع حسب معطياتك الحالية ... امهلني حتى ارى طريقة للتوزيع حسب معطياتك في الجداول ... ان لم يسبقني احد الزملاء الافاضل بفكرة ... او رد ... 

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

الحمد لله اولا وجزاك الله خير الجزاء على ردك

30 دقائق مضت, kanory said:

اذا تم توزيع حصص الاحتياط بهذه الطريقة من الممكن ان يكون بعض المعلمين يكون نصيبهم من حصص الاحتياط بشكل يومي ... والبعض الاخر لا يتم اسناد حصص لهم ... والله اعلم ... لكن ممكن ذلك التوزيع حسب معطياتك الحالية ... امهلني حتى ارى طريقة للتوزيع حسب معطياتك في الجداول ... ان لم يسبقني احد الزملاء الافاضل بفكرة ... او رد ... 

يجب اولا حساب الحصص الاساسية ثم حساب الحصص الاحتياطي ويتم التوزيع للملعم الاقصل نصاب

بانتظارك استاذ @kanory

:fff:

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

في 6‏/3‏/2022 at 16:01, ali2025 said:

بانتظارك استاذ @kanory

جرب .... واعلمنا .... قد يكون دخولي قليلا هذه الفترة .... عند وجود ملاحظات حاول طرحها ربما تجد من هو متواجد بكثرة الاجابة ...

 

‏‏‏‏‏‏‏‏برنامج الاحتياطي 2022 - Kan.accdb

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

استاذ @kanory

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

 

ويدخل معلمين في حصص فارغة غير مطلوبة للمعلم الغياب

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

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

في 8‏/3‏/2022 at 19:07, ali2025 said:

استاذ @kanory

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

ويدخل معلمين في حصص فارغة غير مطلوبة للمعلم الغياب

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

جرب ....

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset

Dim i, ii, e As Integer

Dim str, str1, str2 As String
str = "SELECT TBL_Rserve.IdEmployee, TBL_Rserve.Id_Day, TBL_Rserve.Period1, TBL_Rserve.Period2, TBL_Rserve.Period3, TBL_Rserve.Period4, TBL_Rserve.Period5, TBL_Rserve.Period6, TBL_Rserve.Period7, TBL_Rserve.Period8, TBL_Rserve.Id_Absence FROM TBL_Rserve WHERE (((TBL_Rserve.Id_Day)=" & Me.kan & ") AND ((TBL_Rserve.Id_Absence)=2));"
str1 = "SELECT TBL_Rserve3.IdEmployee, TBL_Rserve3.Id_Day, TBL_Rserve3.Period, TBL_Rserve3.Id_Period FROM TBL_Rserve3;"
str2 = "SELECT TBL_Rserve.IdEmployee, TBL_Rserve.Id_Day, TBL_Rserve.Period1, TBL_Rserve.Period2, TBL_Rserve.Period3, TBL_Rserve.Period4, TBL_Rserve.Period5, TBL_Rserve.Period6, TBL_Rserve.Period7, TBL_Rserve.Period8, TBL_Rserve.Id_Absence FROM TBL_Rserve WHERE (((TBL_Rserve.Id_Day)=" & Me.kan & ") AND ((TBL_Rserve.Id_Absence)=1));"
Set db = CurrentDb
Set rs = db.OpenRecordset(str)
Set rs1 = db.OpenRecordset(str1)
Set rs2 = db.OpenRecordset(str2)
rs.MoveLast: rs.MoveFirst
rs2.MoveLast: rs2.MoveFirst
For ii = 1 To rs2.RecordCount
    For iii = 1 To rs.RecordCount
        For i = 0 To rs.Fields.Count - 4
            If Len(rs.Fields(i + 2).Value & "") = 0 Then GoTo Next_i
                If Len(rs2.Fields(i + 2).Value & "") < 0 Then GoTo Next_ii
                    rs1.AddNew
                    rs1!IdEmployee = rs2.Fields(0).Value
                    rs1!Id_Day = rs!Id_Day
                    rs1!Id_Period = i + 1
                    rs1!Period = rs.Fields(i + 2).Value
                    rs1.Update
                    rs2.MoveNext
Next_i:
    Next i
    rs.MoveNext
    i = i + 1
    Next iii
Next_ii:
    Next ii
rs.Close
Set rs = Nothing

 

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

3 ساعات مضت, ali2025 said:

للاسف استاذنا الفاضل النتائج غير صحيحة

شكرا لك وساحاول مرة اخرى ايجاد حل بامر الله

وضح ... ماهي النتائج الغير صحيحة ولا تترك الموضوع عائم ... حتى نجد حل بامرالله ... ما هي النتائج الظاهرة لديك .. صورة لها ... وصورة للصحيح ... 

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

شكرا لك اخى لم اقصد شىء
لاحظ معلم 12 يوجد لديه الحصة الاولى ومع ذلك تم توزيعه
كذلك معلم 10 يوجد لديه الحصة السابعة ومع ذلك تم توزيعه
وهكذا لو لاحظت انه يتم توزيع بعض المعلمين مع وجود حصص لديهم
كما انك لمحت الى وجود مشكلة

في 4‏/3‏/2022 at 23:33, kanory said:

اذا تم توزيع حصص الاحتياط بهذه الطريقة من الممكن ان يكون بعض المعلمين يكون نصيبهم من حصص الاحتياط بشكل يومي ... والبعض الاخر لا يتم اسناد حصص لهم ... والله اعلم ... لكن ممكن ذلك التوزيع حسب معطياتك الحالية ... امهلني حتى ارى طريقة للتوزيع حسب معطياتك في الجداول ... ان لم يسبقني احد الزملاء الافاضل بفكرة ... او رد ... 

فهل تتكرم بطريقة توزيع عادلة لكل معلم :fff::fff::fff:

Emp.rar

n.png.143976415e47c3ffa18c71b065ff7d76.png

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

8 ساعات مضت, علي البحيري said:

شكرا لك اخى لم اقصد شىء
لاحظ معلم 12 يوجد لديه الحصة الاولى ومع ذلك تم توزيعه
كذلك معلم 10 يوجد لديه الحصة السابعة ومع ذلك تم توزيعه
وهكذا لو لاحظت انه يتم توزيع بعض المعلمين مع وجود حصص لديهم

طيب انظر الصور .... وغير الكود الذي لديك بهذا الكود ......

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim i, ii, e As Integer
Dim str, str1, str2 As String
str = "SELECT TBL_Rserve.IdEmployee, TBL_Rserve.Id_Day, TBL_Rserve.Period1, TBL_Rserve.Period2, TBL_Rserve.Period3, TBL_Rserve.Period4, TBL_Rserve.Period5, TBL_Rserve.Period6, TBL_Rserve.Period7, TBL_Rserve.Period8, TBL_Rserve.Id_Absence FROM TBL_Rserve WHERE (((TBL_Rserve.Id_Day)=" & Me.kan & ") AND ((TBL_Rserve.Id_Absence)=2));"
str1 = "SELECT TBL_Rserve3.IdEmployee, TBL_Rserve3.Id_Day, TBL_Rserve3.Period, TBL_Rserve3.Id_Period FROM TBL_Rserve3;"
str2 = "SELECT TBL_Rserve.IdEmployee, TBL_Rserve.Id_Day, TBL_Rserve.Period1, TBL_Rserve.Period2, TBL_Rserve.Period3, TBL_Rserve.Period4, TBL_Rserve.Period5, TBL_Rserve.Period6, TBL_Rserve.Period7, TBL_Rserve.Period8, TBL_Rserve.Id_Absence FROM TBL_Rserve WHERE (((TBL_Rserve.Id_Day)=" & Me.kan & ") AND ((TBL_Rserve.Id_Absence)=1));"
Set db = CurrentDb
Set rs = db.OpenRecordset(str)
Set rs1 = db.OpenRecordset(str1)
Set rs2 = db.OpenRecordset(str2)
rs.MoveLast: rs.MoveFirst
rs2.MoveLast: rs2.MoveFirst
For i = 1 To 8
rs.MoveLast: rs.MoveFirst
rs2.MoveLast: rs2.MoveFirst
For iii = 1 To rs.RecordCount
    If rs("Period" & i) > 0 Then
        For ii = 1 To rs2.RecordCount
                Dim dd As Integer
                dd = rs2("IdEmployee") '.Value
                If IsNull(rs2("Period" & i)) Then
                  If DCount("[IdEmployee]", "TBL_Rserve3", "[IdEmployee] = " & rs2("IdEmployee") & "") = 0 Then
                    rs1.AddNew
                    rs1!IdEmployee = rs2!IdEmployee.Value
                    rs1!Id_Day = rs!Id_Day
                    rs1!Id_Period = i
                    rs1!Period = rs("Period" & i)
                    rs1.Update
                    rs2.MoveNext
                    GoTo mystnext1
                   End If
                End If
        rs2.MoveNext
        Next ii
    End If
mystnext1:
rs.MoveNext
Next iii
Next i
rs.Close
Set rs = Nothing

اما بالنسبة لــــــــــــ

8 ساعات مضت, علي البحيري said:

كما انك لمحت الى وجود مشكلة

فهل تتكرم بطريقة توزيع عادلة لكل معلم :fff::fff::fff:

حلها لديك بان تحدد لكل معلم امامه ...  حسب نصابة من الحصص عدد معين من حصص الاحتياط في الاسبوع مثلا معلم لدية 24 حصة مثلا تخصص له حصة احتياط واحد ومعلم لدية 10 حصص تخصص له 10 حصص احتياط اسبوعية مثلا أو حسب نظام التعليم لديك .... حتى يتكمن البرنامج من توزيع الاحتياط ومع كل عملية احتياط يتم خضم واحد من حصص الاحتياط وهكذا ....... حاول التعديل وأعلمنا بالنتيجة ....

1.png

2.png

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

حاولت تحديد حصة احتياطي لكل موظف ولكن اذا كان عدد الغياب اكثر فلن تتم العملية بنجاح

لذلك يتم النظر الى المتفرغون في نفس حصة الغياب ويتم التوزيع عليهم او على بعضهم حصص الاحتياطي

التعديل الجديد تمام التمام وفقك الله واصلج حالك

الباقي الان التوزيع العادل لكل موظف بحيث يكون لكل موظف نصاب مساوي او يزيد قليلا عن الباقي

معلم له حصص 15 حصة ومعلم اخر له 17 حصة ومعلم له 21 حصة

يتم التوزيع على الاقل ثم الذي يليه

ثم يتم اعتبار هذا الحساب في اليوم التالي فيبدأ بالاقل ثم الذي يليه

حصص اساسية + حصص احتياطي = مجموع الحصص لكل معلم

ويبدأ بالاقل

وفقك الله واصلح الله حالك

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

طيب ان شاء الله الفكرة التي سوف احاول تطبيقها كالتالي : ( حسب ظروفي ..... الله ييسر الامور )

اضيف حقلين Reserve و Reserve1 في الجدول كما في الصورة ( Reserve لعدد نصاب المعلم من حصص الاحتياط خلال اسبوع و حقل Reserve1 عدد حصص الاحتياط المسندة للمعلم أي كلما نقوم باسناد حصة احتياط يتغير الرقم صعودا حتى يصل لعدد حصص الاحتياط في حقل Reserve ويتوقف البرنامج تلقائيا من اسناد حصص لهذا المعلم .... وملاحظة يبدأ البرنامج باسناد حصص الاحتياط للمعلمين الاقل نصاب وهكذا .........

___________________________________________________

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

 

1.png

2.png

3.png

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

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