بناء وتعميم داله جديدة في اكسس
انشاء وتعميم داله جديدة في اكسس
لماذا نحتاج انشاء دالة خاصة بالمستخدم وتعميمها
توجد الكثير من العمليات الحسابية سواء البسيطة او المعقدة غير مضمنه في الدوال الجاهزة في مايكروسوفت اكسس، وفي معظم الاحيان يقوم المبرمج بانشاء المعادلات ويطبقها في البرنامج بدون الحاجة الى تعميمها وتحويلها الى دالة والسبب ان هذة المعادلة لا يتم استخدامها الا مرات محدودة.
ولكن في بعض الاحيان قد نحتاج تطبيق معادلة معينة لاحتساب قيمة ما بشكل مكرر وبكثرة في البرنامج وهنا يصبح من غير المنطقي كتابة المعادلة في كل مرة، سواء من حيث الوقت المستغرق في كتابة المعادلة او من حيث ان التكرارات او من حيث حجم المعادلة ومدى تعقيدها ، ولمعالجة هذا الموضوع جاء موضوع انشاء وتعميم الدوال في اكسس.
ولفهم الموضوع اكثر فان في قاعدة بيانات خاصة بالطلاب فاننا سنحتاج الى احتساب عمر الطالب في اكثر من مكان سواء في الاستعلامات او النماذج او التقارير وبالتالي وبدلا من كتابة معادلة احتساب العمر في كل مرة نحتاجها نقوم بانشاء وتعميم دالة لاحتساب العمر وبعد ذلك نبدأ باستخدام هذة الدالة عندما نحتاجها واذا طرأ اي تعديل في المعادلة فاننا لا نحتاج الى التعديل الا مرة واحدة.
يمكنكم مشاهدة الفيديو او الاستمرار بقرأة الموضوع
كيف نقوم بانشاء وتعميم الدالة
نقوم بفتح محرر فجوال بيسك وذلك باستخدام (Alt+F11) او من قائمة Database Tools ومن ثم نختار Insert ومن ثم Module وعندها تفتح شاشة محرر فجوال بيسك
نقوم بكتابة الكود وذلك بتعريف المتغيرات اولا ثم كتابة المعادلة وكما يلي لتكون الدالة متاحة للاستخدام
وهنا لا بد من التاكيد على ان بداية الكود احتوى على عبارة Public Function وهي التي تعمم الكود وممكن كتابة Function فقط بدون كلمة Public
Function Age (varBirthDate As Variant) As Integer Dim varAge As Variant If IsNull(varBirthdate) then Age = 0: Exit Function varAge = DateDiff("yyyy", varBirthDate, Now) If Date < DateSerial(Year(Now), Month(varBirthDate), _ Day(varBirthDate)) Then varAge = varAge - 1 End If Age = CInt(varAge) End Function
كيفية استخدام الدالة
1- استخدام الدالة في الاستعلام
النتيجة ستكون
2- استخدام الدالة في النماذج او التقارير في كود VBA
النتيجة ستكون
3- استخدام الدالة في النماذج او التقارير عن طرق منشئ التعبير (Expression Builder)
النتيجة ستكون
شكرا لمجهودكم الرائع تقبل الله صالح اعمالكم
ردحذفهل يتوفر لديك المزيد من هذه الدوال؟
فقط للاطلاع وزيادة الخبرة
شكري وتقديري
ممكن ملف يحمل جميع الدوال الحسابية في الاكسس
ردحذف