اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

طلب نصيحه ومساعدة لتجهيز رواتب الشهر وايضا حل مشكله


إذهب إلى أفضل إجابة Solved by د.كاف يار,

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

 

السلام عليكم اساتذتى الكرام 

اتمنى من الله ان يسعدك ايامكم وان يبارك لكم ويحفظكم من كل شوء انتم واحبابكم وجميع المسلمين

 

انا معايا مشكلتين اليوم ^_^

فارجو ان تتحملوني قليلا 

 

المشكله الاولى 

يوجد فورم فى الملف المرفق باسم 

frmSalaryHistoryQT

هذا الفورم مربوط باستعلام 

والمفترض ان يتم احضار البيانات مProject2.accdbنه مباشرتا 

المشكله ان الاستعلام يعمل جيدا لكن الفورم لا يعمل وكأن لا يوجد ربط

هذه هى المشكله الاولى اريد ان اعرف السبب لهذا

وهذه ستكون بسيطه عليكم واريد حلها

 

المشكله الثانيه

عند تحضير الرواتب للشهر   ( اسم الفورم frmSalary )

وكما تعلمون جيدا ان هناك قد يحدث ان موظف يبدأ الدوام من نصف الشهر او اخرخ او او او 

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

واذا كان الموظف مثلا مباشرته يوم 10 فى الشهر فيحسب له الفتره المستحقه له فقط وليس كل الشهر مثل باقى الموظفين 

 

فانا مش عارف اطبق الكلام ده 

هل اقوم بانشاء جدول لايام البداية لان قد يكون موظف عاد من اجازه فى نصف الشهر 

فهو له نصف راتب 

مش عارف 

حاسس انى تائه ولا ادرى كيف ابدأ 

لحل هذه المشكله 

 

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

 

 

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

شكرا مقدما

Project2.rar

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

تم حل المشكله الاولى 

لما عملت للاستعلام فورم وعملت فورم تاني فيه الشرط 

والحقت فورم الاستعلام بفورم الشرط اشتغل تمام 

لكن لحد دلوقتى مش قادر افهم ليه كده 

ليه مجبليس نفس البيانات دون اخطأ لما كان الفورم فورم واحد وليس فورم اساسى وفرعي

 

 

 

ونأتى للمشكله الثانيه 

اريد تصورة (تخطيط) بحيث اوُفق بين الاجازات وحساب الرواتب

لن مش قادر اتخيله كيف اعملها فى رأسي علشان انفذها

(  _ 

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

واربطه بجدول بيانات الموظفين

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

وبعدها استعلام لحساب الفتره فى حال اذا كانت مباشرة الموظف داخل شهر حساب الراتب

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

_  )

 

بس حاسس انها مكعبره ( ملغبطه )

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

غير مش عارف ابدأ كيف فى الاستعلامات

 

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

بالنسبة للسؤال الأول

أعتقد أن المشكلة في طريقة ربط النموذج بالاستعلام

حيث يمكنك إنشاء نموذج جدولي،من خلال المعالج للاستعلام وتعيد تنسيقه كما تشاء 

ثم تضيف قائمة باسماء الموظفين للنموذج

ثم تكتب في الاستعلام مسار عنصر القائمة

وفي حدث بعد التحديث للقائمة نستعمل me.requery

بالنسبة للسؤال الثاني

لي افتراح

يمكنك اضافة حقل عدد ايام العمل وياخذ الموظف نسبة هذه الايام على عدد ايام الشهر او على 30 بصورة ثابتة

فمثلا من عمل من منتصف الشهر يكون راتبه

الراتب في 15 على 30

وبهذا يحصل على نصف الراتب  وهكذا

 

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

اولا انه لشرف لى ان حضرتك ترد فى موضوعى 

ثانيا بالنسبه لاقتراح حضرتك 

انا مش فاهم تقصد ايه 

يعنى اجي فى جدول المباشرات 

واعمل صف جديد محسوب 

ما من الممكن يكون فى موظفين تاريخ مباشرتهم اقدم ف هتزيد الحسبه عن 30 يوم 

غير ان هناك بنود فى الرواتب لا يتم الخصم منها زي بدل السكن هو مبلغ ثابت لا يتأثر بالغياب 

لكن بدل المواصلات وبدل هاتف واى بدلات اخرى تتأثر بالغياب او باى شئ اخر

 

فهل يمكن تنفيذ كل هذا بالاستعلامات ام بالاكواد ؟

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

السلام عليكم استاذ عمر.. انا عاوز امشي معاك خطوة خطوة كطالب مبتدىء في اكسس

بصراحة تصفحت في ملفك ولم افهم ماتريد؟

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

المفروض ان نعمل لكل موظف نموذج يحتوي على اسم الموظف ورقم جوازه ثم نعمل تحتها باوند فريم اوبجكت (هيكل الكائنات المرتبط ) الذي تكون مصدر سجلاته من جداول الاجازات والساعات الاضافية وغيرها

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

انت استاذي وانا دائما بتعلم منك

باعتذر اذا كنت لم انجح فى توصيل المطلوب 

انا زي ما حضرتك شوفت مقسم الجداول رواتب وفى جدول مباشرات 

وغيره

انا محتاج فكره

علشان اضيف جدول او اعدل فى جدول 

المهم اوصل لطريقه 

اجعل الاكسيل ينظر فى جدول المباشرات ويشوف اخر مباشرة للموظفين الموجودين فى جدول الموظفين 

وبعدها يتحقق من اذا كان كلهم يعمل ام لا ويتحقق من اذا كانت هناك مباشرات موجوده ضمن الشهر الذى اعده للرواتب ام لا

(هذا فى نموذج frmSalary ) اقوم بتحديد اول الشهر واخر الشهر حسب نظام الشركه اذا كان الشهر يبدأ من يوم 15 او من يوم 1

فاريد ان يقوم بما سبق

 

تم رفع الملف من جديد 

بعد اضافة بيانات وتعديل لتشغيل الفورم عند فتح الملف للتيسير

Project2.rar

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

up

 

ايضا استفسار تقني 

هل استعلام محسوب افضل واخف ولا حقل محسوب افضل فى الجدول

ده مع كثرة البيانات التى من الممكن تواجدها

 

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

هل طلبي عام وغير صحيح وغير محدد علشان كده محدش قادريرد 

ام ان سؤالى يحتاج لشرح كثير

انا دورت على فيديوهات على اليوتيوب لكن لم اصل لشئ

 

وايضا لى استفسا اخر

فى معادلة شرطية وضعتها فى استعلام

لكن لما حبيت اعملها هى هى لم تعمل معايا لما جربت اعملها VBA

والدالة التى تعمل جيدا فى الاستعلام هي

حالة الموظف: IIf([DateBack] Is Null;IIf([DateEnd]+1>Date();"اجازة";"غياب");"يعمل")

الدالة فى ال VBA هى 

Me.txtstatVacation = IIf(Me.txtDateBack Is Null, IIf(Me.txtddateend + 1 > Date, "غياب", "اجازة"), "يعمل")

اريد اعرف اين الخطأ

علما ان جميع الحقول المشار لها فى الداله هى حقول لتواريخ وقد يحدث ان هناك تاريخ غير مجود (تاريخ المباشرة المرمز لها باسم Me.txtDateBack)

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

15 ساعات مضت, عمر ضاحى said:

هل طلبي عام وغير صحيح وغير محدد علشان كده محدش قادريرد 

ام ان سؤالى يحتاج لشرح كثير

انا دورت على فيديوهات على اليوتيوب لكن لم اصل لشئ

 

وايضا لى استفسا اخر

فى معادلة شرطية وضعتها فى استعلام

لكن لما حبيت اعملها هى هى لم تعمل معايا لما جربت اعملها VBA

والدالة التى تعمل جيدا فى الاستعلام هي

حالة الموظف: IIf([DateBack] Is Null;IIf([DateEnd]+1>Date();"اجازة";"غياب");"يعمل")

الدالة فى ال VBA هى 

Me.txtstatVacation = IIf(Me.txtDateBack Is Null, IIf(Me.txtddateend + 1 > Date, "غياب", "اجازة"), "يعمل")

اريد اعرف اين الخطأ

علما ان جميع الحقول المشار لها فى الداله هى حقول لتواريخ وقد يحدث ان هناك تاريخ غير مجود (تاريخ المباشرة المرمز لها باسم Me.txtDateBack)

تفضل التعديل

Me.txtstatVacation = IIf(IsNull(Me.txtDateBack), IIf(Me.txtddateend + 1 > Date, "غياب", "اجازة"), "يعمل")

 

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

41 دقائق مضت, د.كاف يار said:

تفضل التعديل

Me.txtstatVacation = IIf(IsNull(Me.txtDateBack), IIf(Me.txtddateend + 1 > Date, "غياب", "اجازة"), "يعمل")

 

اولا اشكر حضرتك على ردك

ثانيا المعادلة نفسها فيها غلط مش راكب 

يعنى المفترض المعادلة تكون كالتالى 

اذا كان حقل الماشرة فارغ وتاريخ اليوم يساوي او اقل من تاريخ موعد العودة يعطينى انه فى اجازه

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

اذا كان حقل الماشرة به تاريخ مباشرة  وتاريخ اليوم اكبر من تاريخ موعد العودة يعطينى انه غياب

وقمت باعادة ترتيبها 

Me.txtstatVacation = IIf(IsNull(Me.txtDateBack), "غياب", IIf(Me.txtdateend + 1 < Date, "اجازة","يعمل"))

Me.txtstatVacation = IIf(IsNull(Me.txtDateBack) Or Me.txtDateBack < Date, "غياب", IIf(Me.txtdateend + 1 < Date, "اجازة","يعمل"))

 

ايضا لا يعطينة النتيجه المرجوه 

وايضا هناك مشكلة اخرى حاولت ان اجعل الكود يعمل دائما لكني لم انجح

حطيت الكود فى حدث عند التحديث برضه لم يعمل

حاولت جعله فى حدث بعد الادراج برضه لا يعمل

فاطريت ان اجعله فى حدث عند النقر فى الحقل  علشان يعمل 

فهل هناك طريقه اجعله يعمل عند تغير اى شئ فى الفورم ؟ 

Project2.rar

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

  • أفضل إجابة
1 ساعه مضت, عمر ضاحى said:

اولا اشكر حضرتك على ردك

ثانيا المعادلة نفسها فيها غلط مش راكب 

يعنى المفترض المعادلة تكون كالتالى 

اذا كان حقل الماشرة فارغ وتاريخ اليوم يساوي او اقل من تاريخ موعد العودة يعطينى انه فى اجازه

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

اذا كان حقل الماشرة به تاريخ مباشرة  وتاريخ اليوم اكبر من تاريخ موعد العودة يعطينى انه غياب

وقمت باعادة ترتيبها 

Me.txtstatVacation = IIf(IsNull(Me.txtDateBack), "غياب", IIf(Me.txtdateend + 1 < Date, "اجازة","يعمل"))

Me.txtstatVacation = IIf(IsNull(Me.txtDateBack) Or Me.txtDateBack < Date, "غياب", IIf(Me.txtdateend + 1 < Date, "اجازة","يعمل"))

 

ايضا لا يعطينة النتيجه المرجوه 

وايضا هناك مشكلة اخرى حاولت ان اجعل الكود يعمل دائما لكني لم انجح

حطيت الكود فى حدث عند التحديث برضه لم يعمل

حاولت جعله فى حدث بعد الادراج برضه لا يعمل

فاطريت ان اجعله فى حدث عند النقر فى الحقل  علشان يعمل 

فهل هناك طريقه اجعله يعمل عند تغير اى شئ فى الفورم ؟ 

Project2.rar 212.63 kB · 0 downloads

تفضل التعديل

 

Project2.zip

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

السلام عليكم استاذ @عمر ضاحىمن المعلوم ان الموظف حين منحه اجازة معينة يجب ان يكون هناك تاريخ لنهاية الاجازة اي ان هذا الحقل يجب ان يكون فيه تاريخ لان النموذج خاص للاجازات حتى نتمكن من المقارنه في حالة مباشرته بعد تاريخ نهاية الاجازة بيعتبر غائب

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

If Me.txtDateBack = Me.txtDateEnd Then Me.txtstatVacation = "يعمل"
If Me.txtDateBack > Me.txtDateEnd Then Me.txtstatVacation = "غياب"
If Date < Me.txtDateEnd Then Me.txtstatVacation = "مجاز"

 

تم تعديل بواسطه Eng.Qassim
رابط هذا التعليق
شارك

3 ساعات مضت, Eng.Qassim said:

السلام عليكم استاذ @عمر ضاحىمن المعلوم ان الموظف حين منحه اجازة معينة يجب ان يكون هناك تاريخ لنهاية الاجازة اي ان هذا الحقل يجب ان يكون فيه تاريخ لان النموذج خاص للاجازات حتى نتمكن من المقارنه في حالة مباشرته بعد تاريخ نهاية الاجازة بيعتبر غائب

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

If Me.txtDateBack = Me.txtDateEnd Then Me.txtstatVacation = "يعمل"
If Me.txtDateBack > Me.txtDateEnd Then Me.txtstatVacation = "غياب"
If Date < Me.txtDateEnd Then Me.txtstatVacation = "مجاز"

 

طبعا كلام حضرتك مظبوط 

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

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

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

6 ساعات مضت, د.كاف يار said:

تفضل التعديل

 

Project2.zip 255.78 kB · 5 downloads

لا ااعرف كيف اشكر حضرتك 

الف الف شكر لحضرتك 

وطبعا اوجه الشكر ايضا 

للمهندس قاسم لانه دائما يسرع فى الرد على اسألتى ويساعدنى كثيرا

وايضا جميع الموجودين فى المنتدي كلهم لهم خالص الشكر

 

 

سوف اجربه الان واخبرك بالوضع

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

6 ساعات مضت, عمر ضاحى said:

لا ااعرف كيف اشكر حضرتك 

الف الف شكر لحضرتك 

وطبعا اوجه الشكر ايضا 

للمهندس قاسم لانه دائما يسرع فى الرد على اسألتى ويساعدنى كثيرا

وايضا جميع الموجودين فى المنتدي كلهم لهم خالص الشكر

 

 

سوف اجربه الان واخبرك بالوضع

العفو منك اخي عمر لكن يوجد خطا 😂

تفضل التعديل

=IIf(IsNull([txtDateBack]) And [txtDateEnd]>Format(Now();"yyyy/mm/dd");"اجازة"
;IIf(IsNull([txtDateBack]) And [txtDateEnd]<=Format(Now();"yyyy/mm/dd");"غياب"
;IIf(Not IsNull([txtDateBack]);"يعمل";"-")))

 

Project2.zip

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information