توفي المغرم عضــو مبتدىء
عدد الرسائل : 62 السٌّمعَة : 0 نقاط : 0 تاريخ التسجيل : 02/08/2008
| موضوع: الكود VBA فيبرنامج الاكسس الأحد أغسطس 03, 2008 8:09 am | |
| أما يكون في روتين فرعي sub routine لها أي اسم مثل Sub mm() و تنتهي ب end sub مثال sub showamessage() msgbox "mm" end sub و هذا في حالة مجموعة من التعليمات التي تكون جزء خاص و تنفذ بمفردها أو تستدعي داخل روتين فرعي آخرو إما أن تكون داخل دالة function function mm() و هي تنتهي ي end function function showamessage(x) msgbox "mm" showamessage = x*x end function و هي تستخدم للعودة بقم أو لتنفيذ الدالة علي المتغير الموجود بهافتنفيذ الدالة السابقة علي رقم 2 يكون الناتج 4 ، و علي 6 يكون 36 يعني فى وسط أي كود نكتب y= showamessage(4) فتصبح قيمة Y = 16 أما عن الكود الخاص باكائنات : objects مثل الفورم أو التقرير فيكون مرتبط بأحداث معينةتجدها فى الخصائص الخاصة بالكائن و اسمها أحداث Events مثال Private Sub Form_Open(Cancel As Integer) msgbox "koko" End Sub و اسم الروتين الفرعي يكتب تلقائيا بمجرد الاختيار من مربع خيار الأحداث الخاص بالكائنقواعد أساسية لكتابة Function أو Sub مـلاحـظــــــــات:1 - نعني بالوظيفة هنا Function أو Sub 2 - هذه القواعد مأخوذة من كتاب علم نفسك برمجة أكسس 2002 يورك برس York Press لكن بكثير من التصرف بل بإعادة صياغة3 - أتمنى من الإخوان الزيادة على هذه القواعد مما اطلعوا عليه أو استفادوه من تجاربهم ، لعل الموضوع يزداد إثراء القاعدة الأولى : اجعل الأسطر المتكررة في وظيفة إذا رأيت أن هناك أسطرا مكررة في الأكواد التي تكتبها فقم بتحويلها إلى وظيفة وذلك لأن الكود الذي يتكرر مرة واحدة أسهل في صيانته واختباره واستخدامه والتعديل عليه ، بخلاف الكود الذي يتكرر مرات عديدة . ولتوضيح هذا نفرض أن لديك أسطر خمسة من كود تكررت في برنامجك عشرين مرة ، ثم رغبت في التعديل عليها أو اكتشفت أن فيها خطأ ، حينئذ يلزمك أن تقوم بالتعديل عليها في 20 موضعا ، وربما تنسى بعض المواضع أو تخطئ فيها فينتج عن هذا عدد من الأخطاء الأخرى . أما إذا كنت استخدمت وظيفة كتبت فيها هذه الأسطر الخمسة وقمت باستدعائها في العشرين موضعا ، فسيكون كل ما عليك هو التعديل في هذه الوظيفةالقاعدة الثانية : حاول قدر الإمكان أن تكون الوظائف قصيرة ذلك أن الوظيفة إذا لم تكن قصيرة فإن هذا يعني أنها تقوم بعدد من الأعمال ، والمفضل أن يكون ما تقوم به الوظيفة عمل محدود ، لكي تسهل صيانتها ولكي يمكن إعادة استعمالها.القاعدة الثالثة : أفضل الوظائف لا تتطلب سوى عدد محدود من الوسائط . وذلك لأنها لا تقوم إلا بأعمال محدودة . لذا حاول إنشاء وظيفة قصيرة وقوية تحتوي على عدد محدود من الوسائط ، بحيث يكون كل ما عليك هو التأكد من صحة تمرير الوسائط التي تحتاجها الوظيفة . ما هي الوسائط ؟ هي تلك العوامل التي يتم إرسالها إلى الوظيفة أو الروتين الفرعي حتى يتم تقييمها أو تعديلها عن طريق سطور الشفرة في الوظيفة أو الروتين الفرعي ، أي أنها هي البيانات التي يتم نقلها بين أقواس مستديرة في الروتين الفرعي أوالوظيفة .مثلا :code:function MyTest(A as String,B as Integer) as booleansub DoTest(A as variant,B as Integer)فهنا B , A هما وسيطان يتم تمريرهما للوظيفة MyTest أو الروتين الفرعي DoTest القاعدة الرابعة : استخدم معرفات الوسيطة لمنع إساءة استخدام المتغيراتاستخدم معرفات الوسيطة ByVal ByRef Optional لكي توضح تماما للبرنامج الغرض الذي تريده أثناء تمرير المتغيرات كوسائط . ما هي المتغيرات ؟إنها باختصار ما يفضل أن نعلن عنها باستخدام Dim أو Const أو Global فمثلا : Dim A as Integer A هي متغيروحتى لو استخدمت A بدون الإعلان عنها فإن هذا لا ينفي عنها أنها متغيرراجع الرابط التالي للاستزادة : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
القاعدة الخامسة : استخدم البرمجة الشرطيةالمراد بهذه القاعدة أن عليك أن تفترض حين كتابة الوظيفة أن هناك شروطا تم التأكد منها في الوسائط الممررة قبل تمريرها ، بحيث يكون التأكد من تطبيق هذه الشروط قبل تمرير الوسائط وليس أثناء عمل الوظيفة ويفضل أن تنص على هذه الشروط في الوظيفة كتعليق ولا مانع من إجراء اختبار سريع للتأكد من تطبيق هذه الشروط بحيث أنه في حال عدم تطبيقها توقف عمل الوظيفة دون أي معالجات أخرى . والغرض من هذه القاعدة هو تقليل سطور الوظيفة وتبسيطها .
القاعدة السادسة : استخدم التعليقات عند الحاجة إليهاقم بإضافة عبارات تصف ما تقوم به سطور الوظيفة ، وأسباب استخدامها ، فهذا أفضل دليل لك ولغيرك عند مراجعة الوظيفة أو تعديلها أو محاولة الاستفادة منها . خاصة أنك قد تراجع الوظيفة بعد فترة طويلة من كتابتها، مما يصعب عليك أن تتذكر المراد ببعض الأسطر ولماذا كتبت. مع ملاحظة أن بعض الأسطر في الوظائف لا تحتاج إلى تعليق، لأنها واضحة المعنى والهدف. ومما قد يساعد على هذا الوضوح تسمية المتغيرات والوسائط بأسماء لها معاني، بحيث إذا رجعت لها بعد مدة طويلة تعرف المراد بها بمجرد الإطلاع عليها دون :lol!: | |
|
غرام حسيني المدير العام
عدد الرسائل : 4535 العمر : 51 الموقع : ولاية علي عليه السلام السٌّمعَة : 3 نقاط : 1437 تاريخ التسجيل : 20/07/2008
| موضوع: رد: الكود VBA فيبرنامج الاكسس الإثنين أغسطس 04, 2008 9:16 pm | |
| | |
|
المغرم نائب المديـر العــام
عدد الرسائل : 1994 الموقع : مع المتقين السٌّمعَة : 2 نقاط : 787 تاريخ التسجيل : 19/07/2008
| موضوع: رد: الكود VBA فيبرنامج الاكسس الخميس أغسطس 07, 2008 12:09 am | |
| اخي العزيز ** الموضوع معاد ** ارجو الانتباه الى ذلك
| |
|