Ahmed_J قام بنشر مارس 16 قام بنشر مارس 16 (معدل) السلام عليكم لدي ملف لاضافة الخدمة الوظيفية بالسنوات من خلال الحقل (الخدمة_المضافة_سنة) المطلوب : توزيع الخدمة_المضافة_سنة مثلا (7) سنوات يتم مقارنتها بالدرجة الوظيفية بالنموذج مع الجدول tp2 (اي لوكان الموظف في الدرجة التاسعة والمرحلة الاولى نضيف له درجة واحدة وثلاث مراحل وظيفية ) لان فترة مكوثه 4 سنوات فتصبح الدرجة الوظيفية الجديدة = 8 والمرحلة الوظيفية الجديدة =4 (اي يتم توزيعها) تحياتي test.mdb تم تعديل مارس 16 بواسطه Ahmed_J
Barna قام بنشر مارس 17 قام بنشر مارس 17 17 ساعات مضت, Ahmed_J said: اي لوكان الموظف في الدرجة التاسعة والمرحلة الاولى نضيف له درجة واحدة وثلاث مراحل وظيفية ) لان فترة مكوثه 4 سنوات فتصبح الدرجة الوظيفية الجديدة = 8 والمرحلة الوظيفية الجديدة =4 (اي يتم توزيعها) طيب استاذ @Ahmed_J ممكن شرح ... كيف الموظف كان في التاسعة وصار في الثامنة ... بارك الله فيك ... من امس وانا احاول دبلجتها وما ركبت في رأسي ولا رأس الجهاز ممكن قصدك العاشرة والمرحلة الرابعة 1
Ahmed_J قام بنشر مارس 17 الكاتب قام بنشر مارس 17 (معدل) السلام عليكم استاذي العزيز @Barna خليني اشرح لك : الدرجة الثامنة اعلى بالوظيفة وبالراتب من الدرجة التاسعة وهكذا (اعلى درجة وظيفية عندنا هي الاولى ) وحسب الجدول مثلا موظف حاصل على شهادة البكالوريوس يتم تعيينه في الدرجة الوظيفة السابعة / المرحلة الوظيفية الاولى (يعني 7-1) بعد مرور 4 سنوات خدمة وظيفية يتم ترفيعه الى الدرجة السادسة / المرحلة الاولى يعني (6-1) وهكذا حسب الجدول الموجود في الصورة يعني باختصار (يتم ترفيع الموظف من الدرجة العاشرة الى الدرجة السادسة كل 4 سنوات ومن الدرجة الخامسة الى الدرجة الاولى كل 5 سنوات) --------------------------------------------------------------------------------------------------------------------------------------- المطلوب : توزيع الخدمة_المضافة_سنة مثلا (7) سنوات يتم مقارنتها بالدرجة الوظيفية بالنموذج مع الجدول tp2 (اي لوكان الموظف في الدرجة التاسعة والمرحلة الاولى نضيف له درجة واحدة وثلاث مراحل وظيفية ) لان فترة مكوثه 4 سنوات فتصبح الدرجة الوظيفية الجديدة = 8 والمرحلة الوظيفية الجديدة =4 (اي يتم توزيعها) وهكذا تحياتي تم تعديل مارس 17 بواسطه Ahmed_J 1
Barna قام بنشر مارس 17 قام بنشر مارس 17 (معدل) 4 ساعات مضت, Ahmed_J said: المطلوب : توزيع الخدمة_المضافة_سنة مثلا (7) سنوات يتم مقارنتها بالدرجة الوظيفية بالنموذج مع الجدول tp2 (اي لوكان الموظف في الدرجة التاسعة والمرحلة الاولى نضيف له درجة واحدة وثلاث مراحل وظيفية ) لان فترة مكوثه 4 سنوات فتصبح الدرجة الوظيفية الجديدة = 8 والمرحلة الوظيفية الجديدة =4 (اي يتم توزيعها) وهكذا طيب استاذنا @Ahmed_J جرب الشيفرة ان شاء الله تلبي طلبك ...... Dim db As DAO.Database Dim rs As DAO.Recordset Dim i, ii, R, Grad As Integer Dim numCopies As Integer Set db = CurrentDb Set rs = db.OpenRecordset("SELECT tp2.GradeNO, tp2.سنوات_المكوث FROM tp2 WHERE (((tp2.GradeNO)<=" & Me.الدرجة_الوظيفية & ")) ORDER BY tp2.GradeNO DESC;", dbOpenDynaset) ii = Me.iYear R = 0 Do Until rs.EOF numCopies = rs!سنوات_المكوث For i = 1 To numCopies If ii = 0 Then Me.مربع_تحرير_وسرد47 = Grad Me.مربع_تحرير_وسرد49 = Me.المرحلة_الوظيفية + R Exit Sub End If ii = ii - 1 Grad = rs!GradeNO Next i R = R + Me.iYear - rs!سنوات_المكوث rs.MoveNext Loop rs.Close Set rs = Nothing Set db = Nothing تم تعديل مارس 17 بواسطه Barna 1
Ahmed_J قام بنشر مارس 17 الكاتب قام بنشر مارس 17 (معدل) السلام عليكم استاذي العزيز @Barna شكرا للمتابعة بارك الله فيك ملاحظة : المرحلة الوظيفية الجديدة تبقى محصورة بين (1- 5) حسب فترة المكوث في الجدول tp2 الفكرة صحيحة لكن الاحتساب فيه مشكله لو قمنا بزيادة الخدمة المضافة سنة واحدة واصبحت 8 سنوات بدلا من 7 المفروض البرنامج يحتسب درجتين وتصبح الدرجة الجديدة 7 المرحلة 1 وليس 8-9 تحياتي تم تعديل مارس 17 بواسطه Ahmed_J
Barna قام بنشر مارس 18 قام بنشر مارس 18 6 ساعات مضت, Ahmed_J said: ملاحظة : المرحلة الوظيفية الجديدة تبقى محصورة بين (1- 5) حسب فترة المكوث في الجدول tp2 طيب في هذه الحالة .... ماهو الصحيح
Ahmed_J قام بنشر مارس 18 الكاتب قام بنشر مارس 18 (معدل) السلام عليكم شكرا لك استاذ @Barna المشكلة انني ما عم اقدر اوصل الفكرة بصورة صحيحة ؟؟ نفترض ان موظف في الدرحة الثامنة والمرحلة الاولى المهم : لوكان الموظف لديه 7 سنوات خدمة اضافية راح نطرح (4) سنوات (فترة المكوث) ونضيف بدلا منها درجة وظيفية والباقي (3) سنوات تجمع مع المرحلة الوظيفية السابقة فتصبح النتيجة الدرجة 8 والمرحلة 4 تم تعديل مارس 18 بواسطه Ahmed_J
Barna قام بنشر مارس 18 قام بنشر مارس 18 15 ساعات مضت, Barna said: طيب في هذه الحالة .... ماهو الصحيح جميل ... اليس هذا ماتم في هذه الصورة 1
Barna قام بنشر مارس 18 قام بنشر مارس 18 طيب جرب كده على امثلة لديك .... Dim db As DAO.Database Dim rs As DAO.Recordset Dim i, TT As Integer Dim numCopies As Integer Set db = CurrentDb Set rs = db.OpenRecordset("SELECT tp2.GradeNO, tp2.سنوات_المكوث FROM tp2 WHERE (((tp2.GradeNO)<=" & Me.الدرجة_الوظيفية & ")) ORDER BY tp2.GradeNO DESC;", dbOpenDynaset) TT = iYear Do Until rs.EOF TT = TT - rs!سنوات_المكوث numCopies = rs!سنوات_المكوث If TT < rs!سنوات_المكوث Then Me.مربع_تحرير_وسرد47 = rs!GradeNO - 1 Me.مربع_تحرير_وسرد49 = Me.المرحلة_الوظيفية + TT Exit Sub End If For i = 1 To numCopies Next i rs.MoveNext Loop rs.Close Set rs = Nothing Set db = Nothing 1
Ahmed_J قام بنشر مارس 18 الكاتب قام بنشر مارس 18 (معدل) السلام عليكم استاذ @Barna النتائج ان شاء الله طيبة الصورة (1) و الصورة (2) النتائج صحيحة عندما يتكون المرحلة الوظيفية السابقة =1 الصورة (3) غير صحيحة لان المرحلة الوظيفية السابقة اكبر من 1 المفروض تكون الدرجة الوظيفية الجديده =6 والمرحلة الوظيفية الجديدة =1 السبب : لان المرحلة الوظيفية الجديده في الصورة (3) = 5 وان فترة المكوث =4 الصحيح ان الموظف يرتفع درجة ويصبح = 6 والمرحلة الوظيفية =1 تحياتي تم تعديل مارس 18 بواسطه Ahmed_J
Barna قام بنشر مارس 18 قام بنشر مارس 18 منذ ساعه, Ahmed_J said: الصحيح ان الموظف يرتفع درجة ويصبح = 6 والمرحلة الوظيفية =1 يرتفع درجة يعني 7 صح هو كان في الثامنة 1
Ahmed_J قام بنشر مارس 18 الكاتب قام بنشر مارس 18 (معدل) يعني ينقص درجة يصبح الدرجة 6 المرحلة 1 كما في الصورة 3 تم تعديل مارس 18 بواسطه Ahmed_J
Barna قام بنشر مارس 18 قام بنشر مارس 18 39 دقائق مضت, Ahmed_J said: يعني ينقص درجة يصبح الدرجة 6 8 -1 = 7 وليس 6 <<<<<<<<<<<<<<< هذا بالنسبة للدرجة والمرحلة كان في 2 واضيفت لها 7- 4 =3 تضاف للمرحلة وتصبح 5
Ahmed_J قام بنشر مارس 18 الكاتب قام بنشر مارس 18 (معدل) استاذي العزيز فكرتك صحيحة جدا ؟ لكن المرحلة الوظيفية يعني سنوات الخدمة مثلا فترة المكوث= 4 سنوات لماذا يبقى الموظف 5 سنوات في المرحلة الوظيفية المفروض ينتقل الى درجة وظيفية اعلى عند وصوله للمرحلة 4 اي يجب ان لاتكون المرحلة الوظيفية اكبر من فترة المكوث تم تعديل مارس 18 بواسطه Ahmed_J
Barna قام بنشر مارس 18 قام بنشر مارس 18 50 دقائق مضت, Ahmed_J said: المرحلة الوظيفية يعني سنوات الخدمة مثلا فترة المكوث= 4 سنوات لماذا يبقى الموظف 5 سنوات في المرحلة الوظيفية المفروض ينتقل الى درجة وظيفية اعلى عند وصوله للمرحلة 4 اي يجب ان لاتكون المرحلة الوظيفية اكبر من فترة المكوث طيب شوف كده ....... Dim db As DAO.Database Dim rs As DAO.Recordset Dim i, TT As Integer Dim numCopies As Integer Set db = CurrentDb Set rs = db.OpenRecordset("SELECT tp2.GradeNO, tp2.سنوات_المكوث FROM tp2 WHERE (((tp2.GradeNO)<=" & Me.الدرجة_الوظيفية & ")) ORDER BY tp2.GradeNO DESC;", dbOpenDynaset) TT = iYear Do Until rs.EOF TT = TT - rs!سنوات_المكوث numCopies = rs!سنوات_المكوث If TT < rs!سنوات_المكوث Then Me.مربع_تحرير_وسرد47 = rs!GradeNO - 1 Me.مربع_تحرير_وسرد49 = Me.المرحلة_الوظيفية + TT GoTo RR End If For i = 1 To numCopies Next i rs.MoveNext Loop RR: If TT < rs!سنوات_المكوث And Me.مربع_تحرير_وسرد49 = 5 Then Me.مربع_تحرير_وسرد47 = rs!GradeNO - 1 Me.مربع_تحرير_وسرد49 = 1 Exit Sub End If rs.Close Set rs = Nothing Set db = Nothing جرب على امثلة اخرى للتاكد من الشيفرة 1
Ahmed_J قام بنشر مارس 18 الكاتب قام بنشر مارس 18 (معدل) استاذ @Barna والله تعبتك كثير معي الله يحفظك من كل مكروه النتائج اكثرها اصبحت غير صحيحة تم تعديل مارس 18 بواسطه Ahmed_J
Barna قام بنشر مارس 19 قام بنشر مارس 19 3 ساعات مضت, Ahmed_J said: النتائج اكثرها اصبحت غير صحيحة طيب .... Dim db As DAO.Database Dim rs As DAO.Recordset Dim i, TT As Integer Dim numCopies As Integer Set db = CurrentDb Set rs = db.OpenRecordset("SELECT tp2.GradeNO, tp2.سنوات_المكوث FROM tp2 WHERE (((tp2.GradeNO)<=" & Me.الدرجة_الوظيفية & ")) ORDER BY tp2.GradeNO DESC;", dbOpenDynaset) TT = iYear Do Until rs.EOF TT = TT - rs!سنوات_المكوث numCopies = rs!سنوات_المكوث If TT < rs!سنوات_المكوث Then Me.مربع_تحرير_وسرد47 = rs!GradeNO - 1 Me.مربع_تحرير_وسرد49 = Me.المرحلة_الوظيفية + TT GoTo RR End If For i = 1 To numCopies Next i rs.MoveNext Loop RR: If Me.مربع_تحرير_وسرد49 > rs!سنوات_المكوث Then Me.مربع_تحرير_وسرد47 = rs!GradeNO - 2 Me.مربع_تحرير_وسرد49 = 1 Exit Sub End If rs.Close Set rs = Nothing Set db = Nothing 1
Ahmed_J قام بنشر مارس 19 الكاتب قام بنشر مارس 19 (معدل) السلام عليكم استاذ @Barna لسه فيه اخطاء اعتقد ان المشكلة في سنوات المكوث في الجدول لانها تكون 4 سنوات واحيانا 5 سنوات تم تعديل مارس 19 بواسطه Ahmed_J
Barna قام بنشر مارس 19 قام بنشر مارس 19 1 دقيقه مضت, Ahmed_J said: لسه فيه اخطاء ممكن تضيف هذه امثلة لهذه الاخطاء وما هو الصحيح 1
أفضل إجابة Barna قام بنشر مارس 20 أفضل إجابة قام بنشر مارس 20 15 ساعات مضت, Ahmed_J said: هذه احدى الاخطاء استاذي العزيز طيب جرب على حالات اخرى .... Dim db As DAO.Database Dim rs As DAO.Recordset Dim i, TT As Integer Dim numCopies As Integer Set db = CurrentDb Set rs = db.OpenRecordset("SELECT tp2.GradeNO, tp2.سنوات_المكوث FROM tp2 WHERE (((tp2.GradeNO)<=" & Me.الدرجة_الوظيفية & ")) ORDER BY tp2.GradeNO DESC;", dbOpenDynaset) TT = iYear Do Until rs.EOF TT = TT - rs!سنوات_المكوث numCopies = rs!سنوات_المكوث If TT < rs!سنوات_المكوث Then Me.مربع_تحرير_وسرد47 = rs!GradeNO - 1 Me.مربع_تحرير_وسرد49 = Me.المرحلة_الوظيفية + TT rs.MoveNext GoTo RR 'Exit Sub End If For i = 1 To numCopies Next i rs.MoveNext Loop RR: If Me.مربع_تحرير_وسرد49 > rs!سنوات_المكوث Then Me.مربع_تحرير_وسرد47 = rs!GradeNO - 1 Me.مربع_تحرير_وسرد49 = 1 Exit Sub End If rs.Close Set rs = Nothing Set db = Nothing 1 1
Eng.Qassim قام بنشر مارس 20 قام بنشر مارس 20 احسنت استاذنا الغالي برناوي @Barna الشفرة جميلة جدا ..عاشت الايادي 1 1
Barna قام بنشر مارس 20 قام بنشر مارس 20 12 دقائق مضت, Eng.Qassim said: احسنت استاذنا الغالي برناوي @Barna الشفرة جميلة جدا ..عاشت الايادي حياك الله بشمهندس @Eng.Qassim تقبل الله منا ومنكم صالح الاعمال جزاك الله خير 1
Ahmed_J قام بنشر مارس 20 الكاتب قام بنشر مارس 20 (معدل) السلام عليكم استاذي العزيز @Barna شكرا لك بارك الله فيك اصبح البرنامج شغال 100% بعد تعديل كود واحد فقط الى: Me.مربع_تحرير_وسرد49 = Me.المرحلة_الوظيفية - 1 تحياتي تم تعديل مارس 20 بواسطه Ahmed_J 1
Barna قام بنشر مارس 20 قام بنشر مارس 20 6 دقائق مضت, Ahmed_J said: السلام عليكم استاذي العزيز @Barna شكرا لك بارك الله فيك اصبح البرنامج شغال 100% بعد تعديل كود واحد فقط الى: Me.مربع_تحرير_وسرد49 = Me.المرحلة_الوظيفية - 1 تحياتي الحمد لله رب العالمين ... ممكن نسخ الكود كامل ووضعه في الموضوع .... لان التعديلات كثيرة في الموضوع ... حتى يتمكن المراجع للموضوع سرعة الوصول اليه
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.