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

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

قام بنشر

 

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

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

 

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

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

 

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

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

frmSalaryHistoryQT

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

مش عارف 

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

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

 

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

 

 

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

شكرا مقدما

Project2.rar

قام بنشر
1 hour ago, عمر ضاحى said:

طيب نبدأ بالمشكله الاولى 

المشكلة الاولى قم بأزالة الكود من الاستعلام

[Forms]![frmSalaryHistoryQT]![CbEmpNo]

قام بنشر

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

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

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

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

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

 

 

 

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

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

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

(  _ 

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

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

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

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

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

_  )

 

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

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

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

 

قام بنشر

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

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

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

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

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

وفي حدث بعد التحديث للقائمة نستعمل 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

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