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

[ تمت الإجابة ]مشكلة مع التركيب If .. Then .. Else

بدأه الجاذبية في 22 نوفمبر 2008 · 5 رد · 842 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

حاولت البحث عن شيء مقارب لمشكلتي لكن لم تعمل معي خاصية البحث

أقوم بنقل معادلة حسابية من الاكسل للفيجوال بيسك

وهي لحساب الفرق بين تاريخين

وتظهر لي رسالة عند التطبيق

compiler erroe

else without if

في جميع العبارات المبتدئة بـ else

وهذه هي الجزئية

Private Sub Command1_Click()

day1 = cmb1.Text

day2 = Cmb2.Text

mon1 = cmb3.Text

mon2 = cmb4.Text

yer1 = Txt1.Text

yer2 = Txt2.Text

If day2 < day1 Then

Txt3.Text = (day2 + 30) - day1

Else

Txt3.Text = day2 - day1

End If

If day2 < day1 Then

ElseIf mon2 <= mon1 Then

Txt4 = (mon2 - 1) + 12 - mon1

Else

Txt4 = (mon2 - 1) - mon1

If mon2 < mon1 Then Txt4.Text = (mon2 + 12) - mon1

Else

Txt4.Text = mon2 - mon1

End If

If day2 < day1 Then

ElseIf mon2 <= mon1 Then

Txt5.Text = (yer2 - 1) - yer1

Else

Txt5.Text = yer2 - yer1

End If

If mon2 < mon1 Then Txt5.Text = (yer2 - 1) - yer1

Else

Txt5.Text = yer2 - yer1

End If

End Sub

لا أعلم ما هو خطئي

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

#2

اخي الكريم هناك نقص في احد اغلاقات IF

والصحيح هو كالتالي

Private Sub Command1_Click()

day1 = cmb1.Text
day2 = Cmb2.Text
mon1 = cmb3.Text
mon2 = cmb4.Text
yer1 = Txt1.Text
yer2 = Txt2.Text


If day2 < day1 Then
Txt3.Text = (day2 + 30) - day1
Else
Txt3.Text = day2 - day1
End If


If day2 < day1 Then

ElseIf mon2 <= mon1 Then
  Txt4 = (mon2 - 1) + 12 - mon1
Else
  Txt4 = (mon2 - 1) - mon1
End If

If mon2 < mon1 Then Txt4.Text = (mon2 + 12) - mon1

Else
Txt4.Text = mon2 - mon1
End If







If day2 < day1 Then
ElseIf mon2 <= mon1 Then
Txt5.Text = (yer2 - 1) - yer1
Else
Txt5.Text = yer2 - yer1
End If


If mon2 < mon1 Then Txt5.Text = (yer2 - 1) - yer1
Else
Txt5.Text = yer2 - yer1

End If

End Sub

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#3

جزاك الله خيرا أخي الفاضل

نسخت الكود الذي صححته لي مشكورا

ونفس المشكلة موجوده !

post-176346-1227369208_thumb.jpg

#4

السلام عليكم

أخي الكريم المشكلة بسيطة جدا الكود صحيح 100 % لكن هناك خطوة بسيطة هي أنزال السطر الذي بعد then في المرحلتين

If mon2 < mon1 Then Txt4.Text = (mon2 + 12) - mon1
Else
Txt4.Text = mon2 - mon1
End If


If mon2 < mon1 Then Txt5.Text = (yer2 - 1) - yer1
Else
Txt5.Text = yer2 - yer1
End If
End Sub

بحيث تصبح

If mon2 < mon1 
Then Txt4.Text = (mon2 + 12) - mon1
Else
Txt4.Text = mon2 - mon1
End If


If mon2 < mon1 Then 
Txt5.Text = (yer2 - 1) - yer1
Else
Txt5.Text = yer2 - yer1
End If
End Sub

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

post-143282-1227372019_thumb.jpg

post-143282-1227372028_thumb.jpg

أرجو الفائدة

تم تعديل هذه المشاركة بواسطة rober في 22 نوفمبر 2008 في 19:44

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#5

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

وجعل هذا في ميزان حسناتك

فعلا اختفت رسالة الخطأ

:)

على الآن مراجعة المعادلات لأن النتائج في الاكسل تختلف عنها في الفيجول بيسك

الله يعين

وفقك الله

#6

حاول أن تقوم بالتجربة

و نحن هنا للمساعدة بعون الله

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

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