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

ياشباب تكفون ساعدوني

مغلق
بدأه التحدي في 19 مارس 2002 · 24 رد · 1,311 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أخواني أعضاء المنتدي أريد منكم المساعده حيث اني أقوم بتصميم قاعدة بيانات لحساب رواتب الموظفين والمطلوب فيها:

أنه عندما يتم النقر على زر التالي الموجود في نموذج البيانات يظهر نموذج الرواتب وقد تم حساب مقدار الراتب حيث أن رواتب جميع الموظفين ثابته وتساوي 800ريال وعند ظهور بيانات موظف معين يتم البحث عن رقمه في جدول الرواتب فاذا وجد رقمه نلاحظ اذا كان عدد مرات التأخير يساوي 6مرات يخصم عليه 50 ريال واذا كان 7مرات يخصم 100 ريال ثم يظهر الراتب ومقدار الراتب والراتب بعد الخصم في نموذج الرواتب وذلك بمجرد نقر زر التالي الموجود في نموذج البيانات(وذلك بعد تحديد موظف معين)

فكيف اعمل ذلك أو ماهو الكود الازم لعمل ذلك

والقاعده موجود على هذه الارتباط

http://mypage.ayna.com/scoon2004/rwateb.mdb

#2

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

أخي الكريم ، برجاء مراعاة قواعد كتابة الاسئلة المثبتة فى أعلا المنتدي

و خاصة من حيث تعبير السؤال عن الموضوع

اما بعد ...

عذرا أن غيرت أسماء الحقول و الجداول

الي الانجليزية

فكما ذكر سابقا فكتابة الكود فى ظل أسمار الحقول العربية صعب جدا

فرجاء الي جميع الاخوة كتابة أسماء الحقول و الكائنات بالانجليزية

أما وصف أي كائن فلا مشكلة فى وضعه بالعربية

الفورم الذي تظهر فيه النتيجة

غيرت أسماء صناديق النص به الي

t1,t2,t3

بالنسبة للأول فالقيمة الافتراضية له توضع 800

الثاني يتم حساب استرجاع قيمته من الجدول

عن طريق الدالة Dlookup

عند حدث فتح الفورم فى الزر فى الفورم االاولي

DoCmd.OpenForm stDocName, , , stLinkCriteria
Forms![Fsalary]![t2] = DLookup("[delayno]", "Tsalary", "[ID] =" & Forms![FData]![ID])

حيث delayno

الحقل الذي به عدد مرات التأخير

Tsalay

هو الجدول الذي يسجل به مرات التأخير

و ID

هو رقم الموظف

اما صندوق النص الثالث و الذي تحسب به النتيجة

فيوضع ما يلي فى مصدر بياناته

Control Source of Text Box t3

=IIf([t2]>=6;([t1]-([t2]-6)*50);[t1])
#3

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

اسف أخ محمد على العنوان ولكن أعذرني

ومشكور جدا على جهدك معي ولكن اذا كنت اجريت هذه التعديلات على الملف أتمنى ان تضع الملف بعد التعديل وبالنسبه لي فقد اتبعت الخطوات التي ذكرتها ولكن ليست كماأريد حيث ظهر لي:

المربع الاول يظهر فيه المبلغ وهو 800 وهذا ظهر كما اريد

اما المربع الثاني فظهر فيه عدد مرات التاخير وانا اريد ان يظهر مقدار الخصم

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

فما المشكله في ذلك

واشكرك مره اخرى واتمنى لك مزيد من التقدم والنجاح

وتقبل خالص تحياتي:o :o (f)

#4

السلام عليكم

ما و ضعته أنا يظهر أيان الغياب فى المربع الثاني

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

سأعدله ليناسب طلبك و أضعه هنا باذن الله

#5

فى المثال السابق لم يوجد خصم عند ال 6 أيام و قد عدلته هنا

لم أنجح فى ارسال الملف الآن

جرب التالي و أخبرني

بالنسبة لمربع النص للأول فالقيمة الافتراضية له توضع 800

الثاني يتم حساب استرجاع قيمته من الجدول

عن طريق الدالة Dlookup

عند حدث فتح الفورم فى الزر فى الفورم االاولي

    stDocName = "Fsalary"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Dim m As Integer
    m = DLookup("[delayno]", "Tsalary", "[ID] =" & Forms![FData]![ID])
    If m >= 5 Then
     m = 50 * (m - 5)
    End If
    Forms![Fsalary]![t2] = m

حيث delayno

الحقل الذي به عدد مرات التأخير

Tsalay

هو الجدول الذي يسجل به مرات التأخير

و ID

هو رقم الموظف

اما صندوق النص الثالث و الذي تحسب به النتيجة

فيوضع ما يلي فى مصدر بياناته

Control Source of Text Box t3

 
=[t1]-[t2]
#6

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

رابط الملف السابق

http://mypage.ayna.com/mtarafa/rwateb.zip

#7

السلام عليكم

مشكور اخوي على تعبك معاي

والكود تنفذ زي ماابي ولكن لاحظت اذاكان اثنين نفس عدد مرات التاخير يخصم من احدهم 100 ومن الاخر 50 مع ان عددمرات التاخير واحد

فما الحل

ملاحظه(معليش ممكن تعدل بالكود لانه المطلوب مني اذاكان عدد مرات التاخير خمس مرات يخصم 50ريال واذاكان ست فمافوق يخصم 100ريال واسف لاني مالنتبهت من البدايه)

وتقبل خالص تحياتي وشكري الجزيل على تعبك معاي:o :o

#8

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

مشكور والحمدلله تنفذ المطلوب وبالنسبه لعدد مرات التاخير اللي ذكرته ضبطته بان وضعت بدال 5 وضعت4 وتنفذ والحمدلله

ولكن لاحظت انه اذاكان عددمرات التاخير اقل من 5 مثلا 3 فانه يضع مقدار الخصم 3 ويطرحه من المبلغ المستحق مع العلم انه كان مضبوط مع اول كود(الذي لايظهر مقدار الخصم وانما يظهر عدد المخالفات)

فماالحل؟

ولك جزيل الشكر والدعاء لك بالتوفيق

#9

السلام عليكم

http://mypage.ayna.com/mtarafa/rwateb.zip

    stDocName = "Fsalary"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Dim m As Integer
    If IsNull(Forms![FData]![ID]) Then
     m = 0
    Else
     m = DLookup("[delayno]", "Tsalary", "[ID] =" & Forms![FData]![ID])
      If m >= 4 Then
        m = 50 * (m - 4)
      Else
       m = 0
      End If
    End If
    Forms![Fsalary]![t2] = m
#10

الأخ التحدي

جرب هذه القاعدة على هذا الرابط

http://www.libya.ly/user/ashrafk/rwateba.zip

أشرف خليل

#11

السلام عليكم

اشكركم جميعا على المساعده

أخ محمد هذا فعلا هو المطلوب ولكن اذا كان الموظف غير موجود في جدول التاخير تظهر الرساله التاليه:invalid use of null

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

فهل من الممكن اخفاء هذه الرساله بحيث لاتظهر وانما تظهر الحسابات مباشره

واخوي (معليش طولتها)احيانا يتم تاخير صرف الرواتب لشهر معين لتصرف مع الشهر الذي يليه اي يصرف راتب شهرين اوثلاثة اشهر احيانا مع بعض فكيف اعمل ذلك؟(لكي اتجنب الأخطاء )

ولك جزيل الشكر واتمنى لك التوفيق في الدنيا والاخره

أخ اشرف اشكرك جزيل الشكر على تعبك معاي

#12

السلام عليكم

بالنسبة للجزء الاول

    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Fsalary"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Dim m As Integer
    If IsNull(Forms![FData]![ID]) Or _
    DCount("[delayno]", "Tsalary", "[ID] =" & Forms![FData]![ID]) = 0 Then
     m = 0
    Else
     m = DLookup("[delayno]", "Tsalary", "[ID] =" & Forms![FData]![ID])
      If m >= 4 Then
        m = 50 * (m - 4)
      Else
       m = 0
      End If
    End If
    Forms![Fsalary]![t2] = m
#13

السلام عليكم

مشكور اخوي هذا المطلوب فعلا بالنسبه للجزء الأول

وانا بانتظار الحل بالنسبه للجزء الثاني

سؤال(اتمنى انه يصير الاخير لاني تعبتك وازعجتك)هل يمكن ان أحدد عدد مرات التاخير بان يكون اقصى حد للتاخير هو 6مرات ليخصم عليه 100 ريال( لانه اذاكان عدد مرات التاخير وصل الى سبع مرات فان الموظف يعطى لفت نظر) ولايخصم عليه الا في حالة خمس مرات او ست اما اذاخصم عليه و تعدي المره السادسه فانه كما ذكرت يعطى لفت نظر فهل يمكن ان احدد حقل مرات التاخير بان لايقبل اكثر من الرقم 6

وتقبل خالص تحياتي وشكري الجزيل وسدد الله خطاك لمايحبه ويرضاه

#14

السلام عليكم

وينك اخ محمد انا بانتظار ردك ارجوك لاتاخر

:o :o

#15

السلام عليكم

Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Fsalary"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Dim m As Integer
    If IsNull(Forms![FData]![ID]) Or _
    DCount("[delayno]", "Tsalary", "[ID] =" & Forms![FData]![ID]) = 0 Then
     m = 0
    Else
     m = DLookup("[delayno]", "Tsalary", "[ID] =" & Forms![FData]![ID])


      If m >= 4 and m < 7 Then
        m = 50 * (m - 4)
      elseif m >= 7  Then
       m = 100
      Else
       m = 0
      End If

    Forms![Fsalary]![t2] = m

بالنسبة للجزء الثاني سأحاول قريبا باذن الله

#16

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

واشكرك جزيل الشكر وانا بانتظار الرد

:o :o

#17

السلام عليكم

الرقم n = 1 يعني أن المتب لشهر واحد

فى حالة أكثر من شهر قم بتغييره

'==============
Dim n As Byte
n = 2
'=============
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Fsalary"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Dim m As Integer
    If IsNull(Forms![FData]![ID]) Or _
    DCount("[delayno]", "Tsalary", "[ID] =" & Forms![FData]![ID]) = 0 Then
     m = 0
    Else
     m = DLookup("[delayno]", "Tsalary", "[ID] =" & Forms![FData]![ID])
      If m > 5 And m < 7 * n Then
        m = 50 * (m - (5 * n))
      ElseIf m >= 7 * n Then
       m = 2 * 50 * n
      Else
       m = 0
      End If
    End If
    Forms![Fsalary]![t2] = m
    Forms![Fsalary]![t1] = 800 * n
#18

السلام عليكم

اشكرك اخ محمد وانا بانتظار الجزء الثاني

وتقبل خالص تحياتي:o :o

#19

ما سبق كان هو الجزء الثاني

اذا وضعت N = 1 يكون حالة شهر واحد

n=2 يكون شهران

N =3 ثلاثة أشهر

و هكذا

ملحوظة ::rolleyes: :rolleyes: :rolleyes:

و نرجو صرف كل شهر لوحده ( أعطوا الاجير حقه قبل أن يجف عرقه )

#20

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

مشكور اخوي محمد على تعبك معاي ولكن انا لااريد ان يكون التغير في الكود (لان مستخدم البرنامج ليس مبرمج)وانا اريد ان تظهر رساله قبل ظهور نموذج الراتب تطلب ادخال عدد الاشهر وبعد ادخال عدد الاشهر يظهر بيانات المبلغ بناء عى عدد الاشهر التي تم ادخالها

او ان يكون هناك مربع (اوقائمه) يختار منها المستخدم عدد الأشهر وبنا عليها يتم حساب مقدار الراتب

(معليش تعبتك معاي)وانا بانتظار الرد(ارجو ان لاتتاخر بالرد)

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

:o :o :o (f) (f)

#21

الأخ التحدي :

على هذا الرابط طريقة الإكمال التلقائي ولكن هذا لا يمشي مع نفس النموذج كما فسرت لك .

http://www.libya.ly/user/ashrafk/rwateb.mdb

اسم النموذج frm

أشرف خليل

#22

أخي الكريم

ضع صندوق نص اسمه t5 فى الفورم الاولي

و ضع به عدد الاشهر

ثم استبدل

n=2

ب

n=Me.t5

#23

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

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

مشكور اخوي محمد على تعبك معاي

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

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

اي مثلا اذاكان لديه تاخر خمس مرات والصرف لثلاثة اشهر فانه يخصم عليه 50 ريال فقط فما الحل؟

واليك الملف لتشاهده

http://mypage.ayna.com/scoon2004/rwateb2.zip

وتقبل خالص تحياتي

#24

السلام عليكم

بما انك تسجل مرتب 3 أشهر فالمفترض أنك تسجل غياب 3 أشهر أيضا

أي أن ال 5 أيام غياب تخصم 50

و اذا غاب 5 أيام كل شهر يكون المجموع 15 يوم غياب و ليس 5

#25

السلام عليكم

المقصود من كلامي

انه اذا غاب في شهر واحد 5 مرات ولم يصرف الراتب في ذلك الشهر ولم يغيب في الشهرين التاليين ولا يوم واحد وتم صرف رواتب ثلاثة الاشهر مع بعض فانه يخصم عليه 50 ريال لانه غاب خمسة ايام في ذلك الشهر . وهذا مالم يتنفذ في البرنامج صحيح كلامك انه اذا غاب 15 يوم يخصم عليه 150ريال ولكن انا لايزيد عدد مرات الغياب عن ست مرات كما ذكرت في كل مره يصرف فيها الراتب سواء تم صرف شهر واحد او عده اشهر قد تصل احيانا الى ستة اشهر

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

5 مرات 50ريال و6 مرات 100 ريال

والله يعينك علينا.

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…