اذهب الي المحتوي
أوفيسنا

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

قام بنشر (معدل)

السلام عليكم

كل عام وانتم بالف خير . عيد سعيد وعمر مديد . اعاده الله علينا وعليكم بالخير واليمن والمسرات.

لدي برنامج فيه جمع الخدمة الوظيفية للموظف من تاريخ التعيين (باليوم والشهر والسنه) مع الخدمة المضافة ينقص منها فترة الانقطاع وتظهر النتيجة (الخدمة النهائية)

المشكله هي عند جمع الخدمة الفعلية مع الخدمة المضافة وينقص منها فترة الانقطاع يظهر الناتج بالسالب كما في الصورة المرفقة

مرفق الملف الاصلي/ الخدمة الفعلية  لاحد الاخوة لحساب المجموع عن طريق الوحدة النمطية

 

Database1.rar 45.14 kB · 63 downloads

الخدمة الفعلية.rar 35.46 kB · 56 downloads

Untitled.jpg

تم تعديل بواسطه Ahmed_J
قام بنشر

السلام عليكم

شكرا لك استاذ @husamwahab

لكن انظر للسجل رقم 1 اعتقد فيه فرق

اتمنى ان تكون جميع الارقام مظبوطه لليوم والشهر والسنه حتى لو تم استبدال الوحدة النمطية او الاكواد المهم عندي النتيجة

تحياتي لك 

Database3.rarFetching info...

قام بنشر

الشكر لله اخي العزيز

نعم اخي العزيز فهذه مشكلة التعامل مع التاريخ

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

والسبب هو ان هناك من يتعامل مع فرق التاريخ كالتعامل مع المعادلات الرياضية وهي قد تعطي نتائج سالبة كما حدث معك

واخر يراعي السالب ولكن يجعل جميع الاشهر 30 يوم

واخر يراعي ترتيب الشهر وعدد ايامه وهكذا

برايك ماهي المفروض نتائج السجل الاول

وعذرا للاطالة

  • Like 1
قام بنشر

السلام عليكم 🙂

 

اخي احمد ، مثل ما قاله اخي حسام :

  في 31‏/7‏/2020 at 21:01, husamwahab said:

برايك ماهي المفروض نتائج السجل الاول

Expand  

 

اعطنا الارقام ، وخلينا نحللها و نشتغل على الهندسة العكسية ، ونصل للمعادلة الصحيحة 🙂

 

جعفر

  • Like 2
قام بنشر (معدل)

السلام عليكم

استاذ @jjafferr

استاذ @husamwahab

اعتقد ان الارقام  في السجل الاول تكون  9 سنوات و5 اشهر و29 يوم  كما في الصورة المرفقة

حسب رايي نقوم باضافة شهر 30 يوم (ننقصه من الاشهر حتى لاتظهر النتيجة بالسالب ) الى الايام لتصبح 58 يوم وننقصها

من مدة الانقطاع 29  ليصبح الفرق 29 يوم 

والراي النهائي رايكم  يا اعزاء 

تحياتي

Untitled.jpg.08299db0ac0e2c45d7a5637e79bff67f.jpg

تم تعديل بواسطه Ahmed_J
قام بنشر (معدل)
  في 1‏/8‏/2020 at 09:35, Ahmed_J said:

السلام عليكم

استاذ @jjafferr

استاذ @husamwahab

اعتقد ان الارقام  في السجل الاول تكون  9 سنوات و5 اشهر و29 يوم  كما في الصورة المرفقة

حسب رايي نقوم باضافة شهر 30 يوم (ننقصه من الاشهر حتى لاتظهر النتيجة بالسالب ) الى الايام لتصبح 58 يوم وننقصها

من مدة الانقطاع 29  ليصبح الفرق 29 يوم 

والراي النهائي رايكم  يا اعزاء 

تحياتي

Untitled.jpg.08299db0ac0e2c45d7a5637e79bff67f.jpg

Expand  

تفضل يحتوي على عدد من النتائج تستطيع تطبيق على مثالك 

الفارق بين تاريخين.accdbFetching info...

تم تعديل بواسطه طاهر الوليدي
  • Like 1
قام بنشر

شكرا لك اخي الكريم

بارك الله فيك

لكنني الايد الجمع يكون بالاستعلام وليس حقل محسوب بالجداول

تحياتي

UP

قام بنشر

السلام عليكم 🙂

 

الفكرة اللي استعملتها ، هي معادلات الاكسس ، وبدون تحديد عدد ايام للشهر ،

عندنا تاريخ المباشرة ،

ومن تاريخ اليوم ، نضيف اليه الخدمة المضافة ، سنة ، ثم شهر ، ثم يوم ، بحيث نتوصل الى تاريخ جديد ،

ومن التاريخ الجديد ، نستقطع ، سنة ، ثم شهر ، ثم يوم ، بحيث نتوصل الى تاريخ جديد ،

ثم في النهاية ، نوجد الفرق بين تاريخ المباشرة وبين هذا التاريخ الجديد 🙂 :

 

Private Sub cmd_Cal_Click()

    Dim Y  As Integer:    Dim M As Integer:     Dim D As Integer
    Dim Y_Add As Date:    Dim M_Add As Date:    Dim D_Add As Date
    Dim Y_Ded As Date:    Dim M_Ded As Date:    Dim D_Ded As Date
    Dim Y_Fin As Date:    Dim M_Fin As Date:    Dim D_Fin As Date
    
    'Now
    Me.dmy_Now = YMDDif(Me.ddd, Date, Y, M, D)
    Me.Y_Now = Y
    Me.M_Now = M
    Me.D_Now = D
    
    'Add
    Y_Add = DateAdd("yyyy", Me.yerr, Date)
    M_Add = DateAdd("m", Me.mann, Y_Add)
    D_Add = DateAdd("d", Me.dyy, M_Add)
    Me.dmy_Add = D_Add
    
    'Deduct
    Y_Ded = DateAdd("yyyy", -Me.yerrr, Me.dmy_Add)
    M_Ded = DateAdd("m", -Me.mannn, Y_Ded)
    D_Ded = DateAdd("d", -Me.dyyy, M_Ded)
    Me.dmy_Deduct = D_Ded
    
    'Final
    Me.dmy_Final = YMDDif(Me.ddd, Me.dmy_Deduct, Y, M, D)
'    Me.Y_Fin = Y
'    Me.M_Fin = M
'    Me.D_Fin = D
    
End Sub

Private Sub Form_Current()

    Call cmd_Cal_Click
End Sub

.

والوحدة النمطية YMDDiff :

Public Function YMDDif(ByVal sDate1 As Date, ByVal sDate2 As Date, _
                       ByRef Y As Integer, ByRef M As Integer, ByRef D As Integer) As String

    '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

    'YMDDif = CStr(Y) & " Years " & CStr(M) & " months " & CStr(D) & " days"
    YMDDif = CStr(D) & " ي/" & CStr(M) & " ش/" & CStr(Y) & " س"

End Function

.

والنتيجة:

image.png.11fd05f652ecd66855512fa3b159b06e.png

.

ويمكننا عمل كل هذه المعادلات في الاستعلام ، بالاضافة الى مناداة الوحدة النمطية 🙂

رجاء التأكد من الارقام اولا.

 

جعفر

Database1.zipFetching info...

  • Like 6
قام بنشر (معدل)

السلام عليكم

استاذنا العزيز @jjafferr

ومن باب اثراء الموضوع بصورة كامله خدمة لكل الاعضاء الاعزاء

البارحة انا عملت نفس فكرتك لكن عن طريق الاستعلام  QQ عن طريق زيادة او نقصان ارقام الخدمة المضافة والانقطاع الى تاريخ المباشرة الاولى بالوظيفة 

عن طريق الدالة  DateAdd ووصلت الى التاريخ النهائي لو كان تاريخ المباشرة بالوظيفة هو 2010/10/5  يكون التاريخ النهائي هو 2011/2/2

* اولا /  الارقام بيننا فيها فرق يوم واحد فقط (تمت تجربته عن طريق تغيير تاريخ المباشرة اكثر من مرة)

* ثانبا / ماهو التاريخ النهائي الذي حصلت عيه يا استاذ؟

استاذي العزيز جعفر  تم تدقيق النتائج عن طريق موقع Age Calculator ومرفقة الصور والبرنامج بعد التعديل .

ارجوا ابداء الراي والمساعدة في اكمال الموضوع 

تحياتي

2.jpg

1.jpg

Database1-New.rarFetching info...

تم تعديل بواسطه Ahmed_J
قام بنشر

اخي احمد 

 

ياريت تشوف هذا الرابط ، والذي فيه نقاش عميق عن حساب العمر ، وانا استعملت الموقع الذي اشرت اليه انت :

 

 

والافضل ان تقرأ الموضوع كاملا 🙂

 

جعفر

  • Like 1
قام بنشر (معدل)

السلام عليكم

استاذ جعقر الغالي 

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

بارك الله فيك على كل هذا المجهود الرائع جعله الله في ميزان حسناتك

لكن لدي بعض الاسئلة ارجوا ان يتسع صدرك لي 

* هل هو صحيح  ان ناتج الايام يكون كالتالي (30 ي/5 ش/9 س)  ام الاصح يكون (0 ي/6 ش/9 س) على اعتبار الشهر 30 يوم؟

*ماهو التاريخ النهائي الذي حصلت عليه يا استاذ جعفر في الملف المرفق هل هو  2011/2/2 ام لا ؟

* ارجو بيان السبب لماذا يوجد فرق يوم واحد فقط بين عملي وعملك بالنموذج

وشكرا لك وبارك الله فيك

Untitled.jpg

Database1-new.rarFetching info...

تم تعديل بواسطه Ahmed_J
قام بنشر

السلام عليكم 🙂

 

علشان اعمل المقارنة ، البارحة حولت استعلامك الى كود (بعد يحتاج له شوية شغل) ، والمغرب ان شاء الله اتفرغ لموضوعك 🙂

 

جعفر

قام بنشر (معدل)

السلام عليكم

استاذ @jjafferr

شكرا لك كثيرا وبارك الله فيك

سوف انتظرك  

 

 

تم تعديل بواسطه Ahmed_J

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