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

اضافة السنوات المفقودة بين تاريخين


Omar_Kreem

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

السلام عليكم ورحمة الله ..

رمضان كريم

وكل عام وأنتم إلى الله أقرب تقبل الله منا ومنكم صالح الأعمال ..

 

.

إذا كان لدى جدول به العديد من الأسماء وكل اسم له تواريخ الحصول على الترقيات ..

 

فهل من الممكن اضافة السنوات البينية كل سنة فى سجل منفرد لكل موظف

أريد زيادة السجلات بحسب السنوات البينية بين كل درجة على سبيل المثال تكون هكذا:

post-29235-0-42990200-1434740366_thumb.j

db1.rar

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

أخى الكريم أ/ مارد ..
جزاك الله خيراً ..
.
عندما بدأت التطبيق على المثال .. وضعت التواريخ الآتيه كمثال للموظف رقم 916:
1ـ 1/1/1992 الدرجة الثالثة .. بداية تعيين..
2ـ 1/1/2001 الدرجة الثانية .. ترقية.
3ـ 1/1/2008 الدرجة الأولى .. ترقية.
.....
بالنظر إلى النتيجة وجدت الآتى:
1ـ أعطى تاريخ 1/1/1992 إلى الدرجتين الثالثة والثانية ... والفرض أنها تخص الدرجة الثالثة فقط.
2ـ أعطى لتاريخ 1/1/2001 الدرجة الثالثة والسبب بداية تعيين ...... والصحيح هو الدرجة الثانية والسبب ترقية.
3ـ كذلك أعطى لتاريخ 1/1/2001 للدرجة الأولى ...... والصحيح هو تاريخ 1/1/2008.
4ـ أعطى تاريخ 1/1/2008 للدرجة الثانية.

 

اضافة السنوات2.rar

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

اخى الكريم

توضيح

زر تسجيل موظف جديد معمول علشان لو فى موظف اسمه مش موجود فى الجدول

يعنى بتسجل منه الموظف اول مره بس والترقيه بتتسجل من الموظف الثانى

 

وابشر طالما الاستاذ  رمهان شرفنا بقدومه باذن الله طلبك محلول :yes:

 

وجرب المرفق دا كدا

 

اضافة السنوات.rar

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

وابشر طالما الاستاذ  رمهان شرفنا بقدومه باذن الله طلبك محلول :yes:

 

البركة فيك استاذ مارد

وصدقني انا اتعلم من هذه الاستفسارات ! اكون حريص على فهم المشكلة اولا فهي تحاكي التطبيق العملي للاكسس !

تحياتي

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

 

وابشر طالما الاستاذ  رمهان شرفنا بقدومه باذن الله طلبك محلول :yes:

 

البركة فيك استاذ مارد

وصدقني انا اتعلم من هذه الاستفسارات ! اكون حريص على فهم المشكلة اولا فهي تحاكي التطبيق العملي للاكسس !

تحياتي

 

 

 

وهذا ملحوظ جدا منكم

 

تسال اولا ثم تزيد فى الاستفسار ثم تتجه الى التحليل وتقلب الموازين الى ان يظن السائل  انه متهم بكثرة سؤالك له  :smile:

 

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

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

.

أستاذى (رمهان) شكراً جزيلاً على مداخلتك ..

وإن كان أ/ مارد قد أتم الإجابة إلا أنه وجب عليًَ الإجابة على استفساركم :
ـ الفكرة سيدى تقوم على إدراج عدد السنوات التى قضاها الموظف فى درجته الوظيفية (بداية تعيينه أو ترقيته) فى سجلات (لكل سنة سجل)..

ـ وبفرض أن الموظف تم تعيينه مثلا فى تاريخ 1/1/1990 وترقيته فى 5/2/2000 ، فإننى أريد حصر تلك السنوات الواقعة بين التاريخين بشكل عينى أى فى صورة سجلات أمامى أياً كان عددها ..

وهذا يفيد فى حالات عملية عديدة مثل النواحى المالية وغيرها ..

.

بارك الله فيكم وجزاكم عنى خيرا ..

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

.

أستاذى (رمهان) شكراً جزيلاً على مداخلتك ..

وإن كان أ/ مارد قد أتم الإجابة إلا أنه وجب عليًَ الإجابة على استفساركم :

ـ الفكرة سيدى تقوم على إدراج عدد السنوات التى قضاها الموظف فى درجته الوظيفية (بداية تعيينه أو ترقيته) فى سجلات (لكل سنة سجل)..

ـ وبفرض أن الموظف تم تعيينه مثلا فى تاريخ 1/1/1990 وترقيته فى 5/2/2000 ، فإننى أريد حصر تلك السنوات الواقعة بين التاريخين بشكل عينى أى فى صورة سجلات أمامى أياً كان عددها ..

وهذا يفيد فى حالات عملية عديدة مثل النواحى المالية وغيرها ..

.

بارك الله فيكم وجزاكم عنى خيرا ..

بارك الله فيه اخي عمر والحمد لله الاستاذ مارد كفى ووفى !

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

معذرة أساتذتى الكرام أثقلت عليكم .. لكنى أطمع فى كرمكم ..

.

....................... هل يمكن وضع التاريخ بدلا من تكراره؟ .. حتى نصل إلى السنة الحالية؟

.

بمعنى إذا كانت الدرجة هى (الثالثة) مثلا وكان تاريخها هو : 1/1/1990 .. فإن الكود يضع التاريخ مكرراً (1/1/1990) ..

.

فهل يمكن أن يكون التاريخ مسلسلاً :

فى الثالثة:

ـ 1/1/1990

ـ 1/1/1991

ـ 1/1/1992

ـ .....

وهكذا حتى نصل إلى الدرجة التى تليها ..

الثانية:

ـ 5/2/2000

ـ 5/2/2001

ـ 5/2/2002

ـ .......

وهكذا حتى نصل إلى الدرجة التى تليها ..

الأولى:

ـ 3/10/2010

ـ .....

ـ......

حتى تاريخ السنة الحالية ...

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

الآن فهمت ! معليش يمكن الصيام له دور ! 

والآن اخي عمر وبعد اذن الاستاذ مارد :

1. هل تريد فرد السنوات في جدول مستقل مرتبط بالجدول الذي باول مشاركة !؟  ام تريده على نفس الجدول ؟!

2. كما ان هناك استفسار مهم : هل الفائدة من فرد السجلات للعرض فقط ( هنا ممكن نستخدم العنصر مربع قائمة )  ام انه سيكون هناك تعديلات عليها وباعمدة جديدة مثلا والكتابة في تلك السجلات المفرودة ! وهنا نحتاج الى فتح سجلات جديدة كما فعل الاستاذ مارد وسواء على نفس الجدول او بجدول مرتبط .

3. ممكن نشوف طريقة عمل برنامجك ! بمعنى ارفاق نموذج الادخال للترقيات !

 

بالتوفيق

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

شكراً أخى (مارد) جزاك الله خيراً ..

 

لكن التواريخ فى حالة الترقية تأخذ قيم اليوم والشهر للتاريخ الأول ..

 

مثلا الدرجة الثالثة:

25/9/21995 الثالثة

25/9/2006 الثالثة

.......

 

.

فى الثانية

 31/1/202 الثانية

25/9/2003 الثانية

........

فى الأولى

1/7/2008 الأولى

25/9/2009

.....

تم تعديل بواسطه omar19-3
رابط هذا التعليق
شارك

شكرا أخى (رمهان) ورمضان كريم ..

... وددت الإجابة على السؤال الأخير أولاً لأنه أساسى ...

.
3ـ الغرض مما أريد هو التعديل على العلاوات السنوية لكل موظف لأحصل على مرتبه السنوى ..
ـ ومن ثم يجب أن تتوافر بياناته الوظيفية كى تستطيع قاعدة البيانات أن تحسب الزيادات السنوية بشكل تلقائى.
.
.... أما الإجابة عن السؤالين الأول والثانى فهى:

1ـ فى الواقع أريد فرد السنوات فى نفس الجدول.
2ـ لا .. السجلات ليست للعرض فقط ، ولكنى سأتعامل معها وفقاً للدرجة، والتاريخ والسبب لكل سنة .. حتى تستطيع قاعدة البيانات إدراج القيم المالية بشكل تلقائى .. من خلال استعلام ..

db2.rar

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

اخينا عمر  ومشاركة مع الاستاذ مارد

هل هذا ماتريد؟

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

 

ملاحظة : تم اضافة عمودين وذلك لمعرفة كل سجل وسجلاته المفرودة فقد تحتاجها في نماذج فرعية او تقارير!

Set rs0 = CurrentDb.OpenRecordset("select distinct id from AddNwee order by id"): rs0.MoveFirst
Do While Not rs0.EOF
rs1 = CurrentDb.OpenRecordset("select * from AddNwee where id='" & rs0(0) & "' order by Daterr").GetRows(DCount("*", "AddNwee", "id='" & rs0(0) & "'"))
DoCmd.SetWarnings False
For i = LBound(rs1) To UBound(rs1, 2)
On Error Resume Next
xn = 1
For ii = Year(rs1(3, i)) To Year(rs1(3, i + 1)) - 1
DoCmd.RunSQL "insert into AddNwee(id,Degr,Daterr,Reasonn,i_d_p) values('" & rs1(1, i) & "','" & rs1(2, i) & "',#" & DateAdd("yyyy", xn, rs1(3, i)) & "#,'" & rs1(4, i) & "'," & rs1(0, i) & ")"
xn = xn + 1
Next ii
Next i
rs0.MoveNext
Loop
DoCmd.SetWarnings True

بالتوفيق

db1.rar

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

  • 2 weeks later...

جزاك الله كل خير أستاذنا رمهان ...

.

أنظر إلى الحالة المظللة بالصورة ..

نجد الدرجة الثانية وقد تداخلت مع الدرجة الأولى فى التاريخ..

post-29235-0-12285000-1436229009_thumb.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