كريمو2 قام بنشر يناير 13, 2016 قام بنشر يناير 13, 2016 السلام عليكم اساتذة المطلوب المساعدة بخصوص حساب اقدمية من تاريخ التوظيف بالسنة والشهر واليوم علما ان حساب اقدمية الجنوب تحسب كل اربعة اشهر في السنة بشهر واحد فقط واذا كان تاريخ التوظيف ليس في اول الشهر تدخل فيها التكملة بحساب الأيام ملاحظة : أقدمية الجنوب في حدود 06 سنوات اي الموظف يلزمه 18 سنة عمل لكي يتحصل على 06 سنوات كاملة *- اما الخدمة الفعلية تحسب تلقائيا منذ تاريخ التوظيف والمرفق يوضح المطلوب اتمنى مد يد المساعدة وشكرا حساب اقدمية.rar
kamel2711 قام بنشر يناير 14, 2016 قام بنشر يناير 14, 2016 (معدل) سلام عليكم وجدت هدا الاستلام ربما يساعدك DatePart ("yyyy", #15/10/1998#) Result: 1998 حساب السنوات من بداية الخدمة DatePart ("m", #15/10/2003#) Result: 10 DatePart ("d", #15/10/2003#) Result: 15 PartDate("t", [DateVente]) = 1 لكل ثلاثي أول مهما تكن السنة خاص بالتسجيلات DatePart ("yyyy", #15/10/1998#) Result: 1998 حساب السنوات من بداية الخدمة DatePart ("m", #15/10/2003#) Result: 10 DatePart ("d", #15/10/2003#) Result: 15 PartDate("t", [DateVente]) = 1 لكل ثلاثي أول مهما تكن السنة خاص بالتسجيلات DatePart ("yyyy", #15/10/1998#) Result: 1998 حساب السنوات من بداية الخدمة DatePart ("m", #15/10/2003#) Result: 10 DatePart ("d", #15/10/2003#) Result: 15 PartDate("t", [DateVente]) = 1 لكل ثلاثي أول مهما تكن السنة خاص بالتسجيلات DiffDate("aaaa";[date_n];Maintenant()) حساب عدد السنوات الى يومنا هذا DiffDate("m";[date_n];Maintenant()) الشهور تم تعديل يناير 14, 2016 بواسطه kamel2711
كريمو2 قام بنشر يناير 14, 2016 الكاتب قام بنشر يناير 14, 2016 شكر اخي ممكن الملف الذي وجدت به هذه الدوال لو سمحت
كريمو2 قام بنشر يناير 14, 2016 الكاتب قام بنشر يناير 14, 2016 للأسف أخي لم اجد فيها ماهو مطلوب أتمنى المساعدة من طرف الخبراء
كريمو2 قام بنشر يناير 15, 2016 الكاتب قام بنشر يناير 15, 2016 (معدل) للرفع ... تم تعديل يناير 15, 2016 بواسطه كريمو2
kamel2711 قام بنشر يناير 15, 2016 قام بنشر يناير 15, 2016 سلام عليكم جرب هدا استعلام المرفق يبن حساب اقدمية1.rar
كريمو2 قام بنشر يناير 16, 2016 الكاتب قام بنشر يناير 16, 2016 (معدل) شكر اخي انظر المطلوب في الصورة تم تعديل يناير 16, 2016 بواسطه كريمو2
jjafferr قام بنشر يناير 17, 2016 قام بنشر يناير 17, 2016 السلام عليكم أخي كريمو في الواقع انا انزلت مرفقك قبل يومين ، ولكن للأسف لم يكن فيه بيانات كافية اجرب عليها ، والاهم انه لم اجد المثال المتكامل الذي يجب ان احتذي به رجاء تعمل مثال تكون فيه النتائج الصحيحة ، وتشرح لماذا النتائج صحيحة ، وعليه نحاول ان نلوي يد البرنامج ونجعله يعطينا نفس النتائج ان شاء الله جعفر
كريمو2 قام بنشر يناير 17, 2016 الكاتب قام بنشر يناير 17, 2016 25 دقائق مضت, jjafferr said: السلام عليكم أخي كريمو في الواقع انا انزلت مرفقك قبل يومين ، ولكن للأسف لم يكن فيه بيانات كافية اجرب عليها ، والاهم انه لم اجد المثال المتكامل الذي يجب ان احتذي به رجاء تعمل مثال تكون فيه النتائج الصحيحة ، وتشرح لماذا النتائج صحيحة ، وعليه نحاول ان نلوي يد البرنامج ونجعله يعطينا نفس النتائج ان شاء الله جعفر وعليكم السلام استاذي العزيز جعفر الصحيح : تحسب من 2013/5/1 الى غاية 2015/12/31 ..... 02 سنة , 08 أشهر , 00 يوم هذه تسمى الخدمة الفعلية للموظف تحسب من 2013/5/1 الى غاية 2015/12/31 ..... 00 سنة , 10 أشهر , 20 يوم هذه تسمى أقدمية الجنوب للموظف حسب .....01 المجموع : 03 سنة , 06 أشهر , 20 يوم كيفية استنتاج هذه الحل : خلال سنة 2013 له 08 اشهر سنة 2014 له 12 شهر وهو 01 سنة سنة 2015 له 12 شهر وهو 01 سنة القاعدة تقول : كل 01 سنة تحسب فيها 04 اشهر كل 06 اشهر تحسب فيها 02 اشهر كل شهر تحسب فيها 10 ايام كل 10 ايام تحسب فيها 03 ايام آمل اني قد وضحت ماهو كان غامضا
كريمو2 قام بنشر يناير 18, 2016 الكاتب قام بنشر يناير 18, 2016 اعجزتم ايها الاساتذة الكرام عن حل ماهو المطلوب حساب أقدمية الجنوب القاعدة تقول : كل 01 سنة تحسب فيها 04 اشهر كل 06 اشهر تحسب فيها 02 اشهر كل شهر تحسب فيها 10 ايام كل 10 ايام تحسب فيها 03 ايام
jjafferr قام بنشر يناير 19, 2016 قام بنشر يناير 19, 2016 أخي كريمو اذا صار عندنا 65 يوم ، فما الحل؟ جعفر
كريمو2 قام بنشر يناير 19, 2016 الكاتب قام بنشر يناير 19, 2016 53 دقائق مضت, jjafferr said: أخي كريمو إذا صار عندنا 65 يوم ، فما الحل؟ جعفر تحسب 02 أشهر و 05 ايام
كريمو2 قام بنشر يناير 19, 2016 الكاتب قام بنشر يناير 19, 2016 3 دقائق مضت, jjafferr said: يعني الشهر 30يوم؟ ايه
jjafferr قام بنشر يناير 20, 2016 قام بنشر يناير 20, 2016 السلام عليكم أخي كريمو الموضوع بالنسبة لي كان أصعب مما تصورت على العموم ، هذا الكود يقوم بالعمل ، وهو حدث على الحالي ، وحدث بعد تحديث التاريخ ، وبما انه لا يوجد تاريخ "الى" في النموذج ، لذلك فانا وضعته في الكود باسم D2 حاولت ان اترك ملاحظات على الكود قدر الامكان: Public Sub Calculate_Diff() '1 'الخدمة الفعلية 'D1 ealier, D2 later Dim D1, D2 As Date D1 = Me.date_recrut D2 = #12/31/2015# 'leave if No date entered If Len(D1 & "") = 0 Then Exit Sub 'don't check get values unless D2 is populated If Len(D2 & "") = 0 Then Exit Sub Call YMDDif3(D1, D2, Y, M, D) Me.Année2 = Y Me.Mois2 = M Me.Jours2 = D '2 'أقدمية الجنوب 'Convert Years, Months, Days to southern 'Convert Years to sMonth sM = Y * 4 'Convert every 6 months to sMonths sM2 = Int(M / 6) * 2 'Convert Remaining months to sDays sD = (M - Int(M / 6) * 6) * 10 'Convert Days to sDays sD2 = Int(D / 10) * 3 'Add the sM, sD 'add the sMonths sM = sM + sM2 'add the sDays sD = sD + sD2 'Finalizing 'Convert sD more than 30days to sM sM3 = Int(sD / 30) '# Final sD sD3 = sD - Int(sD / 30) * 30 'add the extra months from sD to sM sM3 = sM + sM3 '# Final sY sY3 = Int(sM3 / 12) '# Final sM sM3 = sM3 - Int(sM3 / 12) * 12 Me.Année1 = sY3 Me.Mois1 = sM3 Me.Jours1 = sD3 '3 'المجموع 'add the Years, Months, Days sY4 = sY3 + Y sM4 = sM3 + M sD4 = sD3 + D 'Convert more than 30days to Months sM5 = Int(sD4 / 30) '# Final Days sD5 = sD4 - Int(sD4 / 30) * 30 'add the extra months from the Days sM5 = sM4 + sM5 '# Final Years sY5 = Int(sM5 / 12) + sY4 '# Final Months sM5 = sM5 - Int(sM5 / 12) * 12 Me.Année4 = sY5 Me.Mois4 = sM5 Me.Jours4 = sD5 End Sub Private Sub date_recrut_AfterUpdate() Call Calculate_Diff End Sub Private Sub Form_Current() Call Calculate_Diff End Sub هذه الوحدة النمطية تقوم بحساب السنة ، الشهر ، اليوم ، بين تاريخين: Option Compare Database Public Sub YMDDif(sDate1, sDate2, Y, M, D) 'sdate1 earliest date sdate2 later Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim dInterim1 As Date iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) D = iDay M = iMonth Mod 12 Y = iMonth \ 12 End Sub Public Function YMDDif2(sDate1, sDate2) On Error GoTo err_YMDDif2 'sDate1 earliest date 'sDate2 later date Dim dInterim1 As Date iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) D = iDay M = iMonth Mod 12 Y = iMonth \ 12 'YMDDif2 = CStr(Y) & " Years " & CStr(M) & " months " & CStr(D) & " days" 'YMDDif2 = CStr(Y) & " س /" & CStr(M) & " ش /" & CStr(D) & " ي" YMDDif2 = CStr(Y) & " س/" & CStr(M) & " ش/" & CStr(D) & " ي" Exit Function err_YMDDif2: If Err.Number = 94 Then 'ignor, null Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function 'Public Sub YMDDif3(sDate1, sDate2, ByRef y As Integer, ByRef M As Integer, ByRef D As Integer) Public Sub YMDDif3(sDate1, sDate2, Y, M, D) 'sdate1 earliest date sdate2 later Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim dInterim1 As Date iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) D = iDay M = iMonth Mod 12 Y = iMonth \ 12 End Sub وصدقني اني صار لي يومين احاول الوصول للنتيجة ، وعملت اكثر من برمجة ولم تفلح ، وقد عبّأت ورقتين مِلئُها ارقام فلهذا السبب ، رجاء بسرعة اذا عندك اي استفسار ،فانا محتاج الى هذه الاوراق ان تكون امامي ، وقبل ان اتخلص منها جعفر 237.حساب اقدمية.accdb.zip 237.حساب اقدمية.pdf.zip
كريمو2 قام بنشر يناير 20, 2016 الكاتب قام بنشر يناير 20, 2016 (معدل) 4 ساعات مضت, jjafferr said: السلام عليكم أخي كريمو الموضوع بالنسبة لي كان أصعب مما تصورت على العموم ، هذا الكود يقوم بالعمل ، وهو حدث على الحالي ، وحدث بعد تحديث التاريخ ، وبما انه لا يوجد تاريخ "الى" في النموذج ، لذلك فانا وضعته في الكود باسم D2 وصدقني اني صار لي يومين احاول الوصول للنتيجة ، وعملت اكثر من برمجة ولم تفلح ، وقد عبّأت ورقتين مِلئُها ارقام فلهذا السبب ، رجاء بسرعة اذا عندك اي استفسار ،فانا محتاج الى هذه الاوراق ان تكون امامي ، وقبل ان اتخلص منها جعفر وعليكم السلام أخي حعفر شكرا لك اخي على المجهودات المبذولة من اجل مساعدة جميع الإخوة ربي يجعلها في ميزان حسانتك ان شاء الله فيه بعض الملاحظات واتمنى ان تصحيحها يكون بسيط دائما في اقدمية الجنوب *- إذا افترضنا ان تاريخ التعيين 2014/01/01 وان D2 هو 2015/12/31 فأقدمية الجنوب تكون 08 أشهر وليس 07 أشهر و 29 يوم حسب التعديل بالنسبة للأيام في الأقدمية اذا كانت تساوي 30 فتلقائيا تجمع مع مربع نص الأشهر وتصبح زيادة بشهر ولا تكتب 30 يوم ملاحظة1 : بالنسبة للباقي في الأيام في الأقدمية : من وجهة نظري ارى انها صعبة الحساب وخاصة لما يكون يوم بداية التعيين لا يبدأ بـ 01/YY/MM او 10/YY/MM او 20/YY/MM ملاحظة 2 : أقدمية الجنوب في حدود 06 سنوات فقط اي لا تفوق هذا العدد ابدا وبعد هذا العدد تظهر في مربع نصها ولا تحسب في الزيادة مع الخدمة الفعلية اي المجموع تم تعديل يناير 20, 2016 بواسطه كريمو2
jjafferr قام بنشر يناير 20, 2016 قام بنشر يناير 20, 2016 وعليكم السلام جرب هذا التغيير لوسمحت: Public Sub Calculate_Diff() '1 'الخدمة الفعلية 'D1 ealier, D2 later Dim D1, D2 As Date D1 = Me.date_recrut D2 = #12/31/2015# 'leave if No date entered If Len(D1 & "") = 0 Then Exit Sub 'don't check get values unless D2 is populated If Len(D2 & "") = 0 Then Exit Sub Call YMDDif3(D1, D2, Y, M, D) '**change 1 'if D >= 30, then make it 1 month If D >= 30 Then D = D - 30 M = M + 1 End If '**1 Me.Année2 = Y Me.Mois2 = M Me.Jours2 = D '2 'أقدمية الجنوب 'Convert Years, Months, Days to southern 'Convert Years to sMonth sM = Y * 4 'Convert every 6 months to sMonths sM2 = Int(M / 6) * 2 'Convert Remaining months to sDays sD = (M - Int(M / 6) * 6) * 10 'Convert Days to sDays sD2 = Int(D / 10) * 3 'Add the sM, sD 'add the sMonths sM = sM + sM2 'add the sDays sD = sD + sD2 'Finalizing 'Convert sD more than 30days to sM sM3 = Int(sD / 30) '# Final sD sD3 = sD - Int(sD / 30) * 30 'add the extra months from sD to sM sM3 = sM + sM3 '# Final sY sY3 = Int(sM3 / 12) '# Final sM sM3 = sM3 - Int(sM3 / 12) * 12 Me.Année1 = sY3 Me.Mois1 = sM3 Me.Jours1 = sD3 '3 'المجموع 'add the Years, Months, Days sY4 = sY3 + Y sM4 = sM3 + M sD4 = sD3 + D 'Convert more than 30days to Months sM5 = Int(sD4 / 30) '# Final Days sD5 = sD4 - Int(sD4 / 30) * 30 'add the extra months from the Days sM5 = sM4 + sM5 '# Final Years sY5 = Int(sM5 / 12) + sY4 '# Final Months sM5 = sM5 - Int(sM5 / 12) * 12 '**change 2 'No more than 6 years If sY5 >= 6 Then Me.Année4 = 6 Me.Mois4 = 0 Me.Jours4 = 0 Else Me.Année4 = sY5 Me.Mois4 = sM5 Me.Jours4 = sD5 End If '**2 End Sub جعفر
كريمو2 قام بنشر يناير 20, 2016 الكاتب قام بنشر يناير 20, 2016 شكرا استاذي الكريم الان بقيت الخدمة الفعلية ايضا تحسب 12 شهر اليست تساوي 01 سنة استاذي العزيز جعفر 06 سنوات تقف في اقدمية الجنوب وليست في المجموع الذي يجمع اقدمية الجنوب مع الخدمة الفعلية حسب التعديل تقف في المجموع
jjafferr قام بنشر يناير 20, 2016 قام بنشر يناير 20, 2016 تفضل: Public Sub Calculate_Diff() '1 'الخدمة الفعلية 'D1 ealier, D2 later Dim D1, D2 As Date D1 = Me.date_recrut D2 = #12/31/2015# 'leave if No date entered If Len(D1 & "") = 0 Then Exit Sub 'don't check get values unless D2 is populated If Len(D2 & "") = 0 Then Exit Sub Call YMDDif3(D1, D2, Y, M, D) '**change 1 'if D >= 30, then make it 1 month If D >= 30 Then D = D - 30 M = M + 1 End If If M >= 12 Then M = M - 12 Y = Y + 1 End If '**1 Me.Année2 = Y Me.Mois2 = M Me.Jours2 = D '2 'أقدمية الجنوب 'Convert Years, Months, Days to southern 'Convert Years to sMonth sM = Y * 4 'Convert every 6 months to sMonths sM2 = Int(M / 6) * 2 'Convert Remaining months to sDays sD = (M - Int(M / 6) * 6) * 10 'Convert Days to sDays sD2 = Int(D / 10) * 3 'Add the sM, sD 'add the sMonths sM = sM + sM2 'add the sDays sD = sD + sD2 'Finalizing 'Convert sD more than 30days to sM sM3 = Int(sD / 30) '# Final sD sD3 = sD - Int(sD / 30) * 30 'add the extra months from sD to sM sM3 = sM + sM3 '# Final sY sY3 = Int(sM3 / 12) '# Final sM sM3 = sM3 - Int(sM3 / 12) * 12 Me.Année1 = sY3 Me.Mois1 = sM3 Me.Jours1 = sD3 '3 'المجموع 'add the Years, Months, Days sY4 = sY3 + Y sM4 = sM3 + M sD4 = sD3 + D 'Convert more than 30days to Months sM5 = Int(sD4 / 30) '# Final Days sD5 = sD4 - Int(sD4 / 30) * 30 'add the extra months from the Days sM5 = sM4 + sM5 '# Final Years sY5 = Int(sM5 / 12) + sY4 '# Final Months sM5 = sM5 - Int(sM5 / 12) * 12 '**change 2 'No more than 6 years If sY5 >= 6 Then Me.Année4 = 6 Me.Mois4 = 0 Me.Jours4 = 0 Else Me.Année4 = sY5 Me.Mois4 = sM5 Me.Jours4 = sD5 End If '**2 End Sub جعفر
كريمو2 قام بنشر يناير 20, 2016 الكاتب قام بنشر يناير 20, 2016 يا استاذ جعفر لم يتم التعديل في مشكلة الـ 06 سنوات بقيت تقف عند المجموع والاصح تقف عند أقدمية الجنوب مثل الصورة
jjafferr قام بنشر يناير 20, 2016 قام بنشر يناير 20, 2016 تفضل Public Sub Calculate_Diff() '1 'الخدمة الفعلية 'D1 ealier, D2 later Dim D1, D2 As Date D1 = Me.date_recrut D2 = #12/31/2015# 'leave if No date entered If Len(D1 & "") = 0 Then Exit Sub 'don't check get values unless D2 is populated If Len(D2 & "") = 0 Then Exit Sub Call YMDDif3(D1, D2, Y, M, D) '**change 1 'if D >= 30, then make it 1 month If D >= 30 Then D = D - 30 M = M + 1 End If If M >= 12 Then M = M - 12 Y = Y + 1 End If '**1 Me.Année2 = Y Me.Mois2 = M Me.Jours2 = D '2 'أقدمية الجنوب 'Convert Years, Months, Days to southern 'Convert Years to sMonth sM = Y * 4 'Convert every 6 months to sMonths sM2 = Int(M / 6) * 2 'Convert Remaining months to sDays sD = (M - Int(M / 6) * 6) * 10 'Convert Days to sDays sD2 = Int(D / 10) * 3 'Add the sM, sD 'add the sMonths sM = sM + sM2 'add the sDays sD = sD + sD2 'Finalizing 'Convert sD more than 30days to sM sM3 = Int(sD / 30) '# Final sD sD3 = sD - Int(sD / 30) * 30 'add the extra months from sD to sM sM3 = sM + sM3 '# Final sY sY3 = Int(sM3 / 12) '# Final sM sM3 = sM3 - Int(sM3 / 12) * 12 '**change 2 'No more than 6 years If sY3 >= 6 Then Me.Année4 = 6 Me.Mois4 = 0 Me.Jours4 = 0 Else Me.Année4 = sY3 Me.Mois4 = sM3 Me.Jours4 = sD3 End If '**2 '3 'المجموع 'add the Years, Months, Days sY4 = sY3 + Y sM4 = sM3 + M sD4 = sD3 + D 'Convert more than 30days to Months sM5 = Int(sD4 / 30) '# Final Days sD5 = sD4 - Int(sD4 / 30) * 30 'add the extra months from the Days sM5 = sM4 + sM5 '# Final Years sY5 = Int(sM5 / 12) + sY4 '# Final Months sM5 = sM5 - Int(sM5 / 12) * 12 Me.Année4 = sY5 Me.Mois4 = sM5 Me.Jours4 = sD5 End Sub جعفر
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.