الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

منع تكرار فترة الاجازة

بدأه morsyyy في 17 ديسمبر 2012 · 10 رد · 1,697 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم جميعا

الاخوة والاساتذة الافاضل اليكم برنامج الاجازات للاستاذة الفاضلة الاخت زهرة اريد ان امنع تكرار نفس الاجازة او اضافة اجازة خلال فترة الاجازة نفسها..

فلو تمت محاولة الضغط على( زر الامر اضافة اجازة) ووجود تاريخها من تواريخ التى مازال فيها الموظف فى اجازة تظهر رسالة بعدم جواز الاجازة لان الموظف مازال فى اجازة

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

ولكم جزيل الشكر

المرفقات

za-EmployeeVacation1.rar

تم تعديل هذه المشاركة بواسطة morsyyy في 17 ديسمبر 2012 في 14:03

#2

السلام عليكم اخي الكريم

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

على كل حال ضع هذا الكود تحت الزر

Private Sub CmdADD_Click()
' verify if there is any conflict before processing the vacation
If VacationConflict = True Then
MsgBox "There vacation overlaps with the employee vacaiton. Please, select different date "
Exit Sub
Else
Me.RecordSource = "tblTemp"
Dim I As Integer
DoCmd.GoToRecord , , acFirst
For I = 1 To Forms![FrmEmployee]![Days]
Me.EmployeeID = Forms![FrmEmployee]![EmployeeID]
Me.VacationKind = Forms![FrmEmployee]![VacationKind]
Me.strDate = DateAdd("d", I - 1, Forms![FrmEmployee]![StartDate])
DoCmd.GoToRecord , , acNext
Next
DoCmd.SetWarnings False
DoCmd.OpenQuery "QTemp"
Me.RecordSource = "tblDate"
DoCmd.OpenQuery "QDel"
DoCmd.SetWarnings True
DoCmd.Requery
MsgBox " ãÈÑæß ... ÊãÊ ÇÖÇÝÉ ÇáÅÌÇÒÉ ÈäÌÇÍ ", vbInformation, "ÅÖÇÝÉ ÇÌÇÒÉ"End If

End Sub

الان ضع هذه الدالة بعد هذا الكود

Public Function VacationConflict() As Boolean
Dim OnVacation As Integer
Dim VacationDate As Date
Dim VacationEndDate As Date

' intialize vaction date to loop from the existing start date through the vacation end date
VacationDate = [Forms]![FrmEmployee]!StartDate
' intialize vacation end date
VacationEndDate = DateAdd("d", [Forms]![FrmEmployee]!Days, VacationDate)
' intialize deafult values for Onvacation and VacationConflict to help determine vacation conflicts
OnVacation = 0
VacationConflict = False


   Do While VacationDate <= VacationEndDate

    OnVacation = DCount("EmployeeID", "tblDate", "strDate=#" & VacationDate & "# and EmployeeID=" _
    & [Forms]![FrmEmployee]!EmployeeID)

             If OnVacation = 0 Then
                VacationDate = DateAdd("d", 1, VacationDate)
                Else
                VacationConflict = True
                Exit Do
                End If

        Loop


End Function

شخصيا ارى ان السناريو المتبع في هذا المثال لتسجيل الموظفين فيه عيوب. اذا اردت استخدامه في بيئة عمل عليك باجراء كثير من التعديلات الإلزامية.

تحياتي

1
#3

السلام عليكم

شكرا جزيلا اخى الفاضل عل الحل ولك من +1

ولكن لاتتركنى هكذا من غير توضح هذه العبارة التى ذكرتها..لانى فعلا سوف استخدم هذا البرنامج فى العمل

شخصيا ارى ان السناريو المتبع في هذا المثال لتسجيل الموظفين فيه عيوب. اذا اردت استخدامه في بيئة عمل عليك باجراء كثير من التعديلات الإلزامية.

رجاء توضيح ماهى التعديلات الإلزامية

تحياتي

تم تعديل هذه المشاركة بواسطة morsyyy في 19 ديسمبر 2012 في 03:16

#4
morsyyy كتب:

السلام عليكم

شكرا جزيلا اخى الفاضل عل الحل ولك من +1

ولكن لاتتركنى هكذا من غير توضح هذه العبارة التى ذكرتها..لانى فعلا سوف استخدم هذا البرنامج فى العمل

شخصيا ارى ان السناريو المتبع في هذا المثال لتسجيل الموظفين فيه عيوب. اذا اردت استخدامه في بيئة عمل عليك باجراء كثير من التعديلات الإلزامية.

رجاء توضيح ماهى التعديلات الإلزامية

تحياتي

اخي الفاضل موضوع معالجة اجازات الموظفين اكبر من ماتتصور. البرنامج الحالي يحتاج ان تراعي فيه التالي:

1- يجب ان يكون هناك رصيد لعدد ايام الاجازة للموظفين في كل سنة

2- اذا انتهت السنة هل تنقل الايام الى رصيد السنة القادمة ام لا؟ هل تستبدل ايام الاجازة بمال او لا؟

3- هل ايام العطل (الخميس و الجمعة او الجمعة و السبت على حسب الدولة) تحسم من الاجازة او لا؟

4- هل ايام الاجازات مثل العيد تحسم من ايام الاجازة ام لا؟ مثلا لو اخذ شخص اجازة قبل عيد الفطر بيومين ثم اتى بعد الاجازة.

5- اذا نفذ الرصيد يجب فرض قيد بان الاجازات التي تاخذ اذا نفذ الرصيد هي اجازات اضافية (مرضية, عائلية الخ)

6- الطريقة المتبعة في الملف المرفق تحتاج اعادة نظر. يجب ان يكون هناك حقل اخر باسم End Date بالاضافة الى الحقل المجود Start Date. حينما يتم ادخال اجازة شخص ما يجب ان يحدد تاريخ البداية و النهاية بدلا من تحديد تاريخ البداية فقط

7- ايضا, لايوجد ضرورة في ان تدخل سجلات الاجازة من يوم تاريخ الاجازة الى يوم نهاية الاجازة لتفادي تكرار البيانات و تضخم قاعدة البيانات في المستقبل. مثلا اذا كانت الاجازة تبدا من 11/11/2012 الى 15/11/2011 فان السجلات التي ستدخل هي خمس:

1- 11/11/2012

2- 12/11/2012

3- 13/11/2012

4- 14/11/2012

5- 15/11/2012

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

قد يكون هنالك كثير من الاقتراحات لكن هذا مايحضرني حاليا

تحياتي

1
#5

اخى الفاضل

شكرا جزيلا على الرد وابداء كل هذة الاقتراحات والنصائح...

نعم الصديق انت ونعم العون

والله ما قصرت اخى

كان الله فى عون العبد مادام العبد فى عون اخيه

وفقك الله واكثر من امثالك ولك منى احلى تقييم+1

والسلام عليكم

تم تعديل هذه المشاركة بواسطة morsyyy في 20 ديسمبر 2012 في 04:40

#6
morsyyy كتب:

اخى الفاضل

شكرا جزيلا على الرد وابداء كل هذة الاقتراحات والنصائح...

نعم الصديق انت ونعم العون

والله ما قصرت اخى

كان الله فى عون العبد مادام العبد فى عون اخيه

وفقك الله واكثر من امثالك ولك منى احلى تقييم+1

والسلام عليكم

في الخدمة عزيزي

#7
Creative Man كتب:

7- ايضا, لايوجد ضرورة في ان تدخل سجلات الاجازة من يوم تاريخ الاجازة الى يوم نهاية الاجازة لتفادي تكرار البيانات و تضخم قاعدة البيانات في المستقبل. مثلا اذا كانت الاجازة تبدا من 11/11/2012 الى 15/11/2011 فان السجلات التي ستدخل هي خمس:

1- 11/11/2012

2- 12/11/2012

3- 13/11/2012

4- 14/11/2012

5- 15/11/2012

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

ولكن لو اتبعت النصيحة رقم 7...هل سوف يكون بامكانى السؤال عن يوم معين من هذه الايام ان كان الموظف فيها اجازة ام لا؟

لك منى افضل تحية

#8
morsyyy كتب:

ولكن لو اتبعت النصيحة رقم 7...هل سوف يكون بامكانى السؤال عن يوم معين من هذه الايام ان كان الموظف فيها اجازة ام لا؟

لك منى افضل تحية

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

تستطيع استخدام نفس الكود مع تعدليل طفيف ان شاء الله. حاول ان تعمل التعديلات و اي خدمة ان شاء الله نقوم بالواجب

1
#9

شكرا لك استاذى واخى الفاضل على الرد والاهتمام

وجزاك الله خيرا

ولك +1

#10
Creative Man كتب:

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

تستطيع استخدام نفس الكود مع تعدليل طفيف ان شاء الله. حاول ان تعمل التعديلات و اي خدمة ان شاء الله نقوم بالواجب

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

#11

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

مواضيع مشابهة