الأحد، 16 أكتوبر، 2016

شرح الدوال

     شرح الدوال

                 استخدام أداة الشرط IF

هذه الأداة هي شرطية.. بمعنى أنه لن يتم تنفيذ أمر معين إلا إذا تحقق شرط معين .
نطرح مثال لتقريب عمل هذه الأداة IF 
لدى في برنامجي زر فيه( أمر حذف سجل) عند الضغط على هذا الزر يتم حذف سجل من البرنامج ... ولكني أريد أن لا يقوم هذا الزر بحذف أي موظف يكون بالمرتبة العاشرة فما فوق أما من المرتبة الأولى وحتى العاشرة فيتم الحذف دون تردد فكيف يتم عمل ذلك .. نقول يتم عمل ذلك عن طريق أداة الشرط IF  
فهذه الأداة تعمل بهذه الطريقة :
نذكر الأداة أولاً ثم نذكر الكائن الذي نريد وضع الشرط عليه ثم نذكر الشرط ثم الأمر الذي نريده أن ينفذ إذا تحقق هذا الشرط ثم نضع أمر آخر يتم تنفيذه إذا لم يتحقق الشرط ثم ننهي عمل الدالة .

هكذا ..
code:
IF [الكائن الذي عليه الشرط]=[الشرط] THEN
 هنا نضع الأمر الذي نريد تنفيذه إذا تحقق الشرط
ELSE
هنا نضعه  الأمر الآخر إذا لم يتحقق الشرط
END IF

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

أم علامة( يساوي ) فهي تتغير بحسب بناء هذه الأداة فقد تكون = أو < أو > أو <> أو غير ذلك بحسب الشرط الذي لدينا .

أما ( الشرط ) فقد يكون نص أو رقم أو تاريخ أو غير ذلك ..
أما الأمر الذي نضعه فقد يكون أمر حذف سجل أو أمر فتح نموذج أو رسالة أو تغيير بيانات في مربع نص آخر أو تسمية أو غير ذلك بحسب ما نريده ..



المثال الأول :

انشأ نموذج وسمه نموذج الشرط .. ضع فيه مربعي نص غير منظمين
المربع الأول سمه text1
المربع الثاني سمه text2
ضع أمر زر على هذا النموذج
( اذهب إلى خصائص هذا الزر .. ثم حدث .. ثم عند النقر .. ثم أختر ( إجراء حدث )  ثم اضغط على النقاط الثلاث نقاط (...) التي بجواره ليفتح لك محرر الفيجوال بيسك الذي سوف نضع الكود فيه )
ثم ضع الأداة IF حسب ما تم شرحه ولكن بهذه الصورة .
إذا كتبت في مربع النص المسمى text1 الرقم 10 وبعد الضغط على هذا الزر يخرج في مربع النص المسمى text2 يخرج الرقم 50 وإذا كان المربع text1 يحوي غير ذلك يكون المربع text2 يحوي 100
تكون الإجابة بهذه الطريقة..
code:
IF text1 = 10 THEN
   Text2 = 50
  ELSE
   Text2 = 100
END IF


الإجابة:  
عند عمل  أمر زر
اضغط يمين الفار واختار خصائص
حدث – عند النقر – اختر ( إجراء حدث ) – ثم اضغط النقاط ( ... ) – واكتب التالي
code:
IF text1 = 10 THEN
   Text2 = 50
  ELSE
   Text2 = 100
END IF


المثال الثاني :

في هذا المثال أريدك أنت أن تصيغ الجملة الشرطية بناء على ما يلي :-
نحتاج إلى مربع نص غير منظم في النموذج باسم txt1
نحتاج إلى زر أمر في النموذج أيضاً
نحتاج إلى وجود نموذجين آخرين غير هذا الذي عليه زر الأمر
النموذج الأول باسم FF1
النموذج الثاني باسم FF2
أما النموذج الذي عليه زر الأمر فسمه كما تشاء
نريد فتح نموذج بناء على شرط معين في مربع النص المسمى txt1

والجملة الشرطية تقول :

إذا كان مربع النص المسمى txt1 فيه كلمة (موافق) افتح النموذج المسمى FF1
وإلا افتح النموذج المسمى FF2
نهاية الجملة الشرطية
طبعاً الحدث يتم وضعه في زر الأمر هذا عند النقر
للعلم فقط الأمر الذي يقوم بفتح النموذج هو
code:
DoCmd.OpenForm "FF1"

نقوم بتغيير FF1 إلى اسم النموذج الذي نريد

الإجابة على المثال الثاني :

نضع الكود التالي في حدث عند النقر على الزر
code:
If [txt1] = "موافق" Then
 
DoCmd.OpenForm "FF1"
 
Else
DoCmd.OpenForm "FF2"
 
End If
End Sub
 المثال الثالث :

استخدام And   و or
مع الجملة الشرطية
الأدوات المطلوبة لكل من النموذجين هي :
مربع نص غير منظم باسم txt1
مربع نص غير منظم باسم txt2
زر أمر
استخدام Or
إذا كانت الكلمة الموجودة في txt1 هي (موسى الحربي ) أو الرقم (1009)
فيكون لون مربع النص txt1 (أحمر) ولون مربع النص txt2 )أصفر)
وإذا كانت غير هاتين الكلمتين فيكون مربع النص txt1 )أخضر) ولون txt2 )أزرق)
نهاية الجملة الشرطية
استخدام And
إذا كانت الكلمة الموجودة في txt1 هي (موسى) والكلمة الموجودة في txt2 هي(الحربي(
فيكون لون مربع النص txt1)أحمر) ولون مربع النص txt2 )أصفر (
وإذا كان أحد مربعي النص يحوي غير هاتين الكلمتين فيكون مربع النص txt1 )أخضر( ولون txt2 )أزرق(
نهاية الجملة الشرطية
طبعاً استخدام And في نموذج
واستخدام Or في نموذج آخر مستقل
للعلم فقط الحدث الذي يقوم بتلوين مربع النص هوcode:
txt1.BackColor = 255

غير txt1 إلى مربع النص الذي تريد وغير 255 إلى اللون الذي تريد
أما أرقام الألوان المطلوبة فهي :
255
اللون الأحمر

16711680
اللون الأزرق

65535
اللون الأصفر

32768
اللون الأخضر
الإجابة

الفقرة الأولى

Option Compare Database

Private Sub Command4_Click()
" Thenالحربي"  And [Text2] = " موسى" If[Text1] =
Text1.BackColor = 255
Text2.BackColor = 65535
Else
Text1.BackColor = 32768
Text2.BackColor = 16711680
End If
End Sub 
الفقرة الثانية

Option Compare Database

Private Sub Command4_Click()
If [Text1] = " موسى الحربي  " Or "100" Then
Text1.BackColor = 255
Text2.BackColor = 65535
Else
Text1.BackColor = 32768
Text2.BackColor = 16711680
End If
End Sub
المثال الرابع :

سوف نستخدم Else If
الأدوات المطلوبة في النموذج هي :
1- مربع نص غير منظم باسم TNN
2 - مربع نص غير منظم باسم txt1
3 - مربع نص غير منظم باسم txt2
4 - مربع نص غير منظم باسم txt3
5 - زر أمر
قم بإخفاء جميع مربعات النص الثلاثة ما عدا المربع TNN

طريقة الإخفاء كما يلي :-
وأنت في وضع تصميم النموذج ضع مؤشر الفأرة على المربع الذي تريد إخفاؤه
ثم أضغط على يمين الفأرة ثم اختر خصائص
ثم ( تنسيق ) ثم (مرئي) وغير الخاصية من (نعم ) إلى (لا( فقط

المطلوب للمثال هو تنفيذ ما يلي :
إذا كان مربع النص TNN يحتوي على الرقم ( 1 )
يتم إخفاء المربع txt2 والمربع txt3 وإظهار المربع txt1
وإذا كان مربع النص TNN يحتوي على الرقم ( 1 )
يتم إخفاء المربع txt1 والمربع txt3 وإظهار المربع txt2
وإذا كان مربع النص TNN يحتوي على الرقم ( 3 ) 
يتم إخفاء المربع txt1 والمربع txt2 وإظهار المربع txt3
وإلا else
يتم إظهار جميع المربعات وهي txt1 و txt2 و txt3
نهاية الجملة الشرطية
للتوضيح :استخدم طريقة مشابهة لهذه مع التغيير طبعاً ليناسب المطلوب ..
code:
If [...] = 1 Then
[...] = 2
ElseIf [...] = 3 Then
[...] = 4
ElseIf [...] = 5 Then
[...] = 6
Else
[....]=123
End If
للعلم الكود الذي يقوم بإخفاء مربع النص وإظهاره هو
للإخفاء
code:
Txt1.Visible = False
للإظهار
code:
Txt1.Visible = True
الإجابة

Private Sub Ok_Click()
If [TNN] = "1" Then
txt1.Visible = True  
txt2.Visible = False 
txt3.Visible = False 

ElseIf [TNN] = "2" Then
txt1.Visible = False
txt2.Visible = True
txt3.Visible = False

ElseIf [TNN] = "3" Then
txt1.Visible = False
txt2.Visible = False
txt3.Visible = True

Else
txt1.Visible = True
txt2.Visible = True
txt3.Visible = True

End If

End Sub







المثال الخامس :

الأدوات المطلوبة في النموذج هي :
1- مربع نص غير منظم باسم MSG
فقط
المطلوب للمثال هو تنفيذ ما يلي:
إذا كان مربع النص MSG يحتوي على كلمة (حذف )
تخرج علينا رسالة هل تريد الحذف ؟
وإلا else
تخرج علينا رسالة تم إلغاء الأمر
نهاية الجملة الشرطية
((  ملاحظة )) : سوف نضع الكود هذه المرة في حدث (عند الخروج ) لمربع النص MSG كنوع من التغيير في وضع الأكواد
للعلم : طريقة كتابة الرسالة المطلوبة هنا هي كالآتي
code:
MsgBox "هل تريد الحذف؟", vbOKOnly, "تحذير"
طريقة كتابة الرسالة :

نكتب أولاً : MsgBox
ثم نضع علامتي تنصيص هكذا " " وهي حرف الطاء مع ضغط الشفت
ثم نكتب الرسالة بين هاتين العلامتين
ثم نضغط على حرف الواو بعد تحويل اللغة إلى الإنجليزية ليخرج علينا الأوامر الخاصة بالرسالة
نختار منها vbOKOnly
ثم نضغط على حرف الواو مرة أخرى بعد تحويل اللغة إلى الإنجليزية
ثم نضع علامتي تنصيص هكذا " " وهي حرف الطاء مع ضغط الشفت
ثم نكتب عنوان الرسالة بين هاتين العلامتين وهي هنا ( تحذير(

ولزيادة الفائدة عن رسائل الأكسس راجع هذا الرابط :
http://www.msaccess4arab.com/Top/Functions/msgbox/index.htm

وسوف نأخذ في المحاضرة القادمة إن شاء الله رسالة التحذير أو السؤال وفيها زري (نعم) و ( لا ( فإذا ضغطنا على (نعم) ينفذ حدث وإذا ضغطنا على (لا) ينفذ حدث آخر


الإجابة

Option Compare Database

Private Sub MSG_Exit(Cancel As Integer)
If [MSG] = "حذف" Then MsgBox "هل تريد الحذف؟", vbOKOnly, "تحذير"
If [MSG] <> "حذف" Then MsgBox "تم إلغاء الأمر", vbOKOnly, "مبروك لقد تم الغاء الامر"
End Sub
بالنسبة للمثال الثالث
انظر الفرق .. و دقق لتستفيد في المرات القادمة
code:
'الكود بعد التعديل
If [txt1] = "موسى الحربي" Or [txt1] = 100 Then
        txt1.BackColor = 255
        txt2.BackColor = 65535
    Else
        txt1.BackColor = 32768
        txt2.BackColor = 16711680
End If

'الكود قبل التعديل
If [txt1] = "موسى الحربي" Or "100" Then
        txt1.BackColor = 255
        txt2.BackColor = 65535
    Else
        txt1.BackColor = 32768
        txt2.BackColor = 16711680
End If

هل يمكن دمج السطور الشرطية كسطر واحد على الصورة
Then Txt1.visible, txt2.visible, txt3.visible=true
استخدام الكود وهو
code:
Then Txt1.visible, txt2.visible, txt3.visible=true

ليست هناك تعليقات:

إرسال تعليق