الريحاوي
أهلا بالاعضاء الجدد

انضم إلى المنتدى ، فالأمر سريع وسهل

الريحاوي
أهلا بالاعضاء الجدد
الريحاوي
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
المواضيع الأخيرة
» لماذا يكون صوتنا مختلف عبر جهاز التسجيل او المايكروفون
 اكسس ( الوحدة النمطية ) Emptyالأربعاء نوفمبر 09, 2011 7:34 am من طرف Admin

» حروف العله ، دروس تعليميه في اللغه الانجليزيه 2012
 اكسس ( الوحدة النمطية ) Emptyالأربعاء نوفمبر 09, 2011 7:23 am من طرف Admin

» امثال وحكم باللغه الانكليزية
 اكسس ( الوحدة النمطية ) Emptyالأربعاء نوفمبر 09, 2011 7:19 am من طرف Admin

» عبارات تهنئة انجليزية مترجمة للعربية
 اكسس ( الوحدة النمطية ) Emptyالأربعاء نوفمبر 09, 2011 7:06 am من طرف Admin

» عبارات الرسائل باللغه الانجليزيه، عبارات باللغه الانجليزيه، دروس تعليم اللغه الانجليزيه، درس تعلم اللغه الانجليزيه، كتابه رساله باللغه الانجليزيه
 اكسس ( الوحدة النمطية ) Emptyالأربعاء نوفمبر 09, 2011 7:03 am من طرف Admin

» درس أستخدام In - on - at، دروس اللغة الانجليزيه 2012
 اكسس ( الوحدة النمطية ) Emptyالأربعاء نوفمبر 09, 2011 6:57 am من طرف Admin

» للمراجعة : استخدام much - many - a lot of - a few - a little
 اكسس ( الوحدة النمطية ) Emptyالأربعاء نوفمبر 09, 2011 6:54 am من طرف Admin

» قواعد نطق الفرنسية
 اكسس ( الوحدة النمطية ) Emptyالأربعاء نوفمبر 09, 2011 6:51 am من طرف Admin

» هل تعلم ماذا يفعل لك القران عند موتك ؟؟؟
 اكسس ( الوحدة النمطية ) Emptyالأربعاء نوفمبر 09, 2011 6:40 am من طرف Admin


اكسس ( الوحدة النمطية )

اذهب الى الأسفل

 اكسس ( الوحدة النمطية ) Empty اكسس ( الوحدة النمطية )

مُساهمة من طرف Admin الجمعة فبراير 04, 2011 11:39 am

بسم الله الرحمن الرحيم

الاخوة الكرام

[size=25]الدرس السابع

الوحدة النمطية

الوحدة النمطية هي مجموعة من التعريفات والجمل والإجراءات المخزنة معًا كوحدة واحدة و يمكن أن تكون الوحدة النمطية إما وحدة نمطية للفئة أو وحدة نمطية قياسية. يتم إرفاق الوحدات النمطية للفئة إلى النماذج أو التقارير، وغالبًا ما تحتوي على إجراءات محددة للنموذج أو التقرير المرفقة إليه
وتحتوي الوحدات النمطية القياسية على إجراءات عامة غير مقترنة بأي كائن آخر. ويتم سرد الوحدات النمطية القياسية أسفل وحدات نمطية في "جزء التنقل" بينما لا يتم سرد الوحدات النمطية للفئة


والوحدات النمطية هي كائنات، مثل وحدات الماكرو، يمكنك استخدامها لإضافة وظائف إلى قاعدة البيانات لكن الوحدات النمطية لها مرونة وقوة أفضل من الماكرو

وهى شفرة يقوم البرنامج بإنجاز سلسلة من المهام الخاصة والتي لا يمكن إنجازها لو إستخدمنا وحدات الماكرو



قواعد أساسية لكتابة Sub أو Function

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

القاعدة الأولى


اجعل الأسطر المتكررة في وظيفة
إذا رأيت أن هناك أسطرا مكررة في الأكواد التي تكتبها فقم بتحويلها إلى وظيفة
وذلك لأن الكود الذي يتكرر مرة واحدة أسهل في صيانته واختباره واستخدامه والتعديل عليه ، بخلاف الكود
الذي يتكرر مرات عديدة.
ولتوضيح هذا نفرض أن لديك أسطر خمسة من كود تكررت في برنامجك عشرين مرة ، ثم رغبت في التعديل
عليها أو اكتشفت أن فيها خطأ ، حينئذ يلزمك أن تقوم بالتعديل عليها في 20 موضعا ، وربما تنسى بعض
المواضع أو تخطئ فيها فينتج عن هذا عدد من الأخطاء الأخرى.
أما إذا كنت استخدمت وظيفة كتبت فيها هذه الأسطر الخمسة وقمت باستدعائها في العشرين موضعا ، فسيكون
كل ما عليك هو التعديل في هذه الوظيفة

القاعدة الثانية


حاول قدر الإمكان أن تكون الوظائف قصيرة
ذلك أن الوظيفة إذا لم تكن قصيرة فإن هذا يعني أنها تقوم بعدد من الأعمال ، والمفضل أن يكون ما تقوم به
الوظيفة عمل محدود ، لكي تسهل صيانتها ولكي يمكن إعادة استعمالها.

القاعدة الثالثة


أفضل الوظائف لا تتطلب سوى عدد محدود من الوسائط.
وذلك لأنها لا تقوم إلا بأعمال محدودة . لذا حاول إنشاء وظيفة قصيرة وقوية تحتوي على عدد محدود من
الوسائط ، بحيث يكون كل ما عليك هو التأكد من صحة تمرير الوسائط التي تحتاجها الوظيفة.
ما هي الوسائط ؟
هي تلك العوامل التي يتم إرسالها إلى الوظيفة أو الروتين الفرعي حتى يتم تقييمها أو تعديلها عن طريق سطور
الشفرة في الوظيفة أو الروتين الفرعي ، أي أنها هي البيانات التي يتم نقلها بين أقواس مستديرة في الروتين
الفرعي أوالوظيفة

القاعدة الرابعة


استخدم معرفات الوسيطة لمنع إساءة استخدام المتغيرات

استخدم معرفات الوسيطة ByVal ByRef Optional لكي توضح تماما للبرنامج الغرض الذي تريده أثناء تمرير المتغيرات كوسائط

ما هي المتغيرات ؟

إنها باختصار ما يفضل أن نعلن عنها باستخدام Global أو Const أو Dim

القاعدة الخامسة


استخدم البرمجة الشرطية
المراد بهذه القاعدة أن عليك أن تفترض حين كتابة الوظيفة أن هناك شروطا تم التأكد منها في الوسائط الممررة
قبل تمريرها ، بحيث يكون التأكد من تطبيق هذه الشروط قبل تمرير الوسائط وليس أثناء عمل الوظيفة
ويفضل أن تنص على هذه الشروط في الوظيفة كتعليق
ولا مانع من إجراء اختبار سريع للتأكد من تطبيق هذه الشروط بحيث أنه في حال عدم تطبيقها توقف عمل
الوظيفة دون أي معالجات أخرى .
والغرض من هذه القاعدة هو تقليل سطور الوظيفة وتبسيطها.

القاعدة السادسة


استخدم التعليقات عند الحاجة إليها
قم بإضافة عبارات تصف ما تقوم به سطور الوظيفة ، وأسباب استخدامها ، فهذا أفضل دليل لك ولغيرك عند
مراجعة الوظيفة أو تعديلها أو محاولة الاستفادة منها . خاصة أنك قد تراجع الوظيفة بعد فترة طويلة من كتابتها،
مما يصعب عليك أن تتذكر المراد ببعض الأسطر ولماذا كتبت.
مع ملاحظة أن بعض الأسطر في الوظائف لا تحتاج إلى تعليق، لأنها واضحة المعنى والهدف .
ومما قد يساعد على هذا الوضوح تسمية المتغيرات والوسائط بأسماء لها معاني، بحيث إذا رجعت لها بعد مدة
طويلة تعرف المراد بها بمجرد الإطلاع عليها دون أي تعليق


شرح دوال الاكسيس

الدوال الرياضية


ِAbs

ترجع القيمة المطلقة لآي عدد وترجعه من نفس نوع البيانات المعطى للدالة والمقصود بالقيمة المطلقة هي قيمة العدد بدون إشارة فالقيمة المطلقة ل (-13) مثلا هي (13) وهكذا.
ولاحظ أن القيمة المدخلة للدالة لابد أن تكون عدد أو تعبير عددي فإذا كانت القيمة المدخلة للدالة Null ستكون النتيجة Null وإذا كانت القيمة المدخلة للدالة متغير فارغ أو لم يتم تعيين قيمة له ستكون النتيجة (0).
راجع الدالة ايضا sgn فهاتين الدالتين تسمى دوال الاشارة

مثال :

MyNumber=Abs(-45.6)
msgbox MyNumber

فإن نتيجة تنفيذ الدالة هي
MyNumber=45.6

Atn

تستخدم هذه الدالة في حساب مقلوب ظل الزاوية "ظتا" للرقم الذي تشتمل علية مقدار بالتقدير الدائري وتأخذ الصورة العامة التالية :

MyNumber=Atn (رقم)

Cdbl

وتعمل هذه الدالة علي تحويل نوع بيانات متغيرها إلى عدد مضاعف الدقة Double وتأخذ الصورة التالية :

MyNumber= CDbl(678)

Cos

وتستخدم هذه الدالة في تحديد قيمة جيب تمام الزاوية معينة وتأخذ الصورة العامة التالية :


MyNumber=Cos (رقم)

Exp

تستخدم هذه الدالة في تحديد القيمة (e) وهي قاعدة اللوغاريتم الطبيعي مرفوعة بقوة الرقم الذي تتضمنه حيث (e) تساوي تقريبا 2.7182818 وتأخذ الصورة العامة التالية :


MyNumber=Exp (رقم)

Int

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

MyNumber=Int (332.54)
فإن نتيجة تنفيذ الدالة هي
MyNumber=332

Fix

وهي تشبه الدالة Int تماما أي أنها تستخدم لحساب الجزء الصحيح فقط وتأخذ الصورة التالية :

MyNumber= Fix(4.52696)
فإن نتيجة تنفيذ الدالة هي

MyNumber=4

Hex

وتعمل هذه الدالة علي تحويل الرقم العشري إلى ما يقابله في النظام السادس عشر Hexadecimal وتأخذ الصورة التالية :

Dim HexNO, Character As String
Character = "A 'أو أي قيمة أخرى "
HexNO = Hex(Asc(Character))
MsgBox "Character " & Character & " = " & HexNO

Log

تستخدم هذه الدالة في تحديد قيمة اللوغاريتم العشري لرقم وتأخذ الصورة العامة التالية :

MyNumber=Log (20)
Text1.Text=MyNumber
فإن نتيجة تنفيذ الدالة هي MyNumber=2.9957327

Oct

وهذه الدالة تعمل علي تحويل نظام الرقم العشري إلى ما يقابله في النظام الثمانية Octal وتأخذ الصورة التالية :

MsgBox Oct(100)

Randomize

يعمل هذا التصريح مع الدالة Rnd ونستفيد منه عدم التكرارية و الحصول علي عشوائية افضل وذلك لأنه يعتمد علي ساعة النظام لديك

مثال :

Randomize
MsgBox Int((10 * Rnd) + 1)

Rnd

وتستخدم هذا الدالة في توليد أرقام عشوائية تقع ما بين الصفر و واحد بحد أقصي 15 رقما عشريا

مثال1 :

التصريح Randomize : يعمل هذا التصريح مع الدالة Rnd ونستفيد منه عدم التكرارية و الحصول علي عشوائية افضل وذلك لأنه يعتمد علي ساعة النظام لديك

MyNumber=Rnd (عدد)
فمثلا الدالة Rnd(10) قد تعطي رقما مثل 0.7055475 وعند تشغيل الدالة مرة أخري ينتج رقما آخر مثل 0.533424 وهكذا .

مثال 2 :

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

Randomize
MsgBox Int((10 * Rnd) + 1)

مثال 3 :

'مثال لتوليد الالون بطريقة عشوائية
Randomize
Label1.BackColor = QBColor(Int((16 * Rnd) + 0))

مثال 4 :
For i = 1 To 4
Print Rnd()
Next i

Round

وهي دالة التقريب التي من خلالها يمكنك تحديد عدد الأرقام العشرية وتأخذ الصورة التالية :

MyNumber= Round(4.52696,2)

حيث 4.52696 الرقم المراد تقريبه أما الرقم 2 فهو عدد التي ستقرب بعد العلامة العشرية وسيكون الناتج 4.53

Sgn

تعيد الدالة -1 اذا كان متغيرها سالبا وصفر اذا كان متغيرها صفرا.وواحد اذا كان متغيرها موجبا
راجع الدالة abs فهاتان الدالتان تعملان في الغالب مع اشارة العدد ويسميان ب دالتا الاشارة
يمكن استخدام هذه الدالة لتحديد اذا كان الرصيد اكبر من صفر او درجة حرارة الجو تحت الصفر

على سبيل المثال تقوم البنوك الاجنبية بحساب الفوائد الربوية (المحرمة) على الشركات التي تقترض منها ولكتابة معادلة تقوم بتحديث رصيد العميل بحساب الفوائد الربوية اوتوماتيكيا انظر المثال


balance=balance +(sgn(balance) * 0.12)

Sin

تستخدم هذه الدالة في تحديد قيمة جيب زاوية معينة وتأخذ الصورة العامة التالية :


MyNumber=Sin (رقم)

Sqr

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


MyNumber=Sqr(10)
Text1.Text=MyNumber
فإن نتيجة تنفيذ الدالة هي
MyNumber=3.1622776

Tan

تستخدم هذه الدالة في تحديد قيمة ظل زاوية معينة وتأخذ الصورة العامة التالية :

MyNumber=Tan (رقم)



Admin
Admin
Admin

عدد المساهمات : 447
تاريخ التسجيل : 17/04/2010
العمر : 54

https://nazem.yoo7.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى