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

لدي الكثير من الشروط فما الحل

مغلق
بدأه halo all في 31 أكتوبر 2007 · 3 رد · 506 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

واذا كان لديه دوام ليلي عدا الاستقطاعات من تقاعد وضمان صحي وسلف .... وغيرها

مشكلتي عند استخدام if او elseif

لاينفذ ال IF الثانية لماذا؟ وما الحل

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

علما ان جميع هذه الشروط داخل للوب تنفذ بأستخدام Do While

وقد استخدمت قاعدة بيانات Access ونوع الربط هو ADO

#2

ممكن الكود اللي فيه المشكلة ؟؟

وهذه التكريبة الكاملة للIF :

If شرط Then
أمر 
Else
أمر
End if

If شرط Then
أمر
Elseif شرط Then
أمر
End If
اقتباس
If A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut

Albert Einstein

مدخل إلى برمجة وتصميم الألعاب : كيف أبدأ ؟

#3

السلام عليكم

اخى الكريم

جملة Select تشبه تقريباً جملة If إلا أنها تستعمل حالات متعددة وفي كل حالة تكتب تعليمة مختلفة

Select Case (العنصر)

Case (الحالة)

التعليمة

End select

يمكنك إضافة الكثير من الحالات ولكن قبل End Select

سوف نعمل مثال بسيط لهذه الجملة.

أضف فورم وأضف الأدوات التالية:

Text1

Label1

Command1

*******************************************************************************

Dim a As Integer

a = Text1

Select Case a

Case 0 To 10

Label1 = "سيىء"

Case 10 To 40

Label1 = "ضعيف"

Case 40 To 60

Label1 = "وسط"

Case 60 To 80

Label1 = "جيد"

Case 80 To 100

Label1 = "ممتاز"

End Select

Exit Sub

b:

MsgBox "الرجاء إدخال قيمة عددية ", vbCritical, "خطأ في الكتابة"

منقول من كتاب VB4ALL

واعتقد انة المطلوب

#4

السلام عليكم

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

وهي بالبداية راح اكتب else if وكما يلي

If rs![deg] = 1 And rs![group_] = "أ" And rs![base_sal] < sald1(1, 1) Then

rs![base_sal] = sald1(1, 1)

rs.Update

ElseIf rs![deg] = 1 And rs![group_] = "أ" And rs![base_sal] > sald1(1, 2) Then

rs![base_sal] = sald1(1, 2)

rs.Update

ElseIf rs![deg] = 1 And rs![group_] = "ب" And rs![base_sal] < sald2(1, 1) Then

rs![base_sal] = sald2(1, 1)

rs.Update

ElseIf rs![deg] = 1 And rs![group_] = "ب" And rs![base_sal] > sald2(1, 2) Then

rs![base_sal] = sald2(1, 2)

rs.Update

ElseIf rs![deg] = 1 And rs![group_] = "ج" And rs![base_sal] < sald3(1, 1) Then

rs![base_sal] = sald3(1, 1)

rs.Update

ElseIf rs![deg] = 1 And rs![group_] = "ج" And rs![base_sal] > sald3(1, 2) Then

rs![base_sal] = sald3(1, 2)

rs.Update

ElseIf rs![deg] = 2 And rs![group_] = "أ" And rs![base_sal] < sald1(2, 1) Then

rs![base_sal] = sald1(2, 1)

rs.Update

ElseIf rs![deg] = 2 And rs![group_] = "أ" And rs![base_sal] > sald1(2, 2) Then

rs![base_sal] = sald1(2, 2)

rs.Update

ElseIf rs![deg] = 2 And rs![group_] = "ب" And rs![base_sal] < sald2(2, 1) Then

rs![base_sal] = sald2(2, 1)

rs.Update

ElseIf rs![deg] = 2 And rs![group_] = "ب" And rs![base_sal] > sald2(2, 2) Then

rs![base_sal] = sald2(2, 1)

rs.Update

ElseIf rs![deg] = 3 And rs![group_] = "أ" And rs![base_sal] < sald1(3, 1) Then

rs![base_sal] = sald1(3, 1)

rs.Update

ElseIf rs![deg] = 3 And rs![group_] = "أ" And rs![base_sal] > sald1(3, 2) Then

rs![base_sal] = sald1(3, 2)

rs.Update

ElseIf rs![deg] = 3 And rs![group_] = "ب" And rs![base_sal] < sald2(3, 1) Then

rs![base_sal] = sald2(3, 1)

rs.Update

ElseIf rs![deg] = 3 And rs![group_] = "ب" And rs![base_sal] > sald2(3, 2) Then

rs![base_sal] = sald2(3, 1)

rs.Update

ElseIf rs![deg] = 4 And rs![group_] = "أ" And rs![base_sal] < sald1(4, 1) Then

rs![base_sal] = sald1(4, 1)

rs.Update

ElseIf rs![deg] = 4 And rs![group_] = "أ" And rs![base_sal] > sald1(4, 2) Then

rs![base_sal] = sald1(4, 2)

rs.Update

ElseIf rs![deg] = 4 And rs![group_] = "ب" And rs![base_sal] < sald2(4, 1) Then

rs![base_sal] = sald2(3, 1)

rs.Update

ElseIf rs![deg] = 4 And rs![group_] = "ب" And rs![base_sal] > sald2(4, 2) Then

rs![base_sal] = sald2(4, 1)

rs.Update

ElseIf rs![deg] = 5 And rs![group_] = "أ" And rs![base_sal] < sald1(5, 1) Then

rs![base_sal] = sald1(5, 1)

rs.Update

ElseIf rs![deg] = 5 And rs![group_] = "أ" And rs![base_sal] > sald1(5, 2) Then

rs![base_sal] = sald1(3, 2)

rs.Update

ElseIf rs![deg] = 5 And rs![group_] = "ب" And rs![base_sal] < sald2(5, 1) Then

rs![base_sal] = sald2(5, 1)

rs.Update

ElseIf rs![deg] = 5 And rs![group_] = "ب" And rs![base_sal] > sald2(5, 2) Then

rs![base_sal] = sald2(5, 1)

rs.Update

ElseIf rs![deg] = 6 And rs![base_sal] < sald1(6, 1) Then

rs![base_sal] = sald1(6, 1)

rs.Update

ElseIf rs![deg] = 6 And rs![base_sal] > sald1(6, 2) Then

rs![base_sal] = sald1(6, 2)

rs.Update

ElseIf rs![deg] = 7 And rs![base_sal] < sald1(7, 1) Then

rs![base_sal] = sald1(7, 1)

rs.Update

ElseIf rs![deg] = 7 And rs![base_sal] > sald1(7, 2) Then

rs![base_sal] = sald1(7, 2)

rs.Update

ElseIf rs![deg] = 8 And rs![base_sal] < sald1(8, 1) Then

rs![base_sal] = sald1(8, 1)

rs.Update

ElseIf rs![deg] = 8 And rs![base_sal] > sald1(8, 2) Then

rs![base_sal] = sald1(8, 2)

rs.Update

ElseIf rs![deg] = 9 And rs![base_sal] < sald1(9, 1) Then

rs![base_sal] = sald1(9, 1)

rs.Update

ElseIf rs![deg] = 9 And rs![base_sal] > sald1(9, 2) Then

rs![base_sal] = sald1(9, 2)

rs.Update

End If

Dim mbase_sal2

Dim calc_day1

Dim calc_day2

Dim cut1

Dim cut2

Dim cut3

Dim cut4

Dim cut5

Dim cut6

calc_day1 = rs![exist_day]

cut1 = 0.5 * rs![all_2]

cut2 = rs![all_3]

cut3 = 0.5 * rs![sik_2]

cut4 = rs![sik_3]

cut5 = rs![abs_day]

cut6 = rs![ponish_day]

calc_day2 = calc_day1 - cut1 - cut2 - cut3 - cut4 - cut5 - cut6

mbase_sal2 = mbase_sal1 * calc_day2 / 30

rs![calc_b_sal] = mbase_sal2

rs.Update

الى هذه المرحلة يطلع كلشي مضبوط

بعد ذلك احتاج شرط اخر وهو مخصصات مسؤولية وكما يلي

If rs![mask_resp] = 1 Then

rs![bnf_resp] = 0.05 * rs![calc_b_sal]

rs.Update

Else

rs![bnf_resp] = 0

End If

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

ولكن اذا كان الموظف جديد مثلا خبير وفي نفس الوقت يأخذ مسؤولية في هذه الحالة سوف يحتسب راتبه حسب الشروط التي كتبتها ولكن لن يحتسب مخصصات المسؤولية

وبعد هذا لدي شروط اخرى لم ابدأ بها بعد وذلك لأن الشرط هذا لم يطبق

فقد لاحظة عند وجود IF وبعدها IF لن يطبق الثانية

مع خالص شكري

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

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