التخطي إلى المحتوى الرئيسي

بناء وتعميم داله جديدة في اكسس

انشاء وتعميم داله جديدة في اكسس


لماذا نحتاج انشاء دالة خاصة بالمستخدم وتعميمها

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

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

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

يمكنكم مشاهدة الفيديو او الاستمرار بقرأة الموضوع

كيف نقوم بانشاء وتعميم الدالة

نقوم بفتح محرر فجوال بيسك وذلك باستخدام (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) 

النتيجة ستكون


تعليقات

  1. شكرا لمجهودكم الرائع تقبل الله صالح اعمالكم
    هل يتوفر لديك المزيد من هذه الدوال؟
    فقط للاطلاع وزيادة الخبرة
    شكري وتقديري

    ردحذف
  2. ممكن ملف يحمل جميع الدوال الحسابية في الاكسس

    ردحذف

إرسال تعليق

المشاركات الشائعة من هذه المدونة

انشاء الجداول في اكسس

انشاء الجداول في اكسس بعد انشاء ملف اكسس جديد فان الخطوة الاولى ستكون انشاء الجداول، ولانشاء الجداول نتبع ما يلي: 1- اختيار create  كما في الصورة 2- نقوم باختيار Table او Table Design والامر متروك للمستخدم، وانا بشكل شخصي افضل Table Design 3- بعد اختيار Table Design ستفتح لنا نافذة تصميم الجدول كما في الصورة 4- الحقل الاول Field Name يتم فية ادخال عناوين الاعمدة (الحقول) 5- الحقل الثاني Data Type يتم فية تحديد نوع المتغير (رقم ، نص ، تاريخ ...الخ) 6- الحقل الثالث Description وهو حقل اختياري ويتم فية ادخال وصف لهذا العمود 7- في كل جدول يجب تحديد المفتاح الاساسي ويجب ان يحتوي هذا الحقل على قيمة فريدة لا تتكرر مع اي حقل اخر. 8 - بعد الانتهاء نقوم باغلاق الجدول وعندها ستظهر نافذة لتحديد اسم الجدول وحفظة . 9- بعد فتح الجدول سيكون شكله كما في الصورة 10- نلاحظ ان عنوان العمود الاول ظهر كما تم كتابتة في التصميم اما العمود الثاني فقد ظهر اسمة باللغة العربية والسبب انه تم اضافة تسمية للعمود من خصائص الحقل اثناء تصميم الجدول كما في الصورة وبذلك يكو...

انشاء نموذج للدخول باسم مستخدم وكلمة مرور الى برنامج اكسس

انشاء نموذج للدخول باسم مستخدم وكلمة مرور الى برنامج اكسس عندما يكون البرنامج متاح لاكثر من شخص للعمل علية فلا بد من حماية البرنامج من المستخدمين غير المصرح لهم من خلال اضافة نموذج للدخول الى قاعدة الببيانات، ولانشاء نموذج الدخول الى البرنامج نتبع الخطوات التالية: انشاء جدول للمستخدمين يتم فيه تخزين اسماء المستخدمين وكلمات مرورهم ويحتوي على حقل لاسم المستخدم وحقل لكلمة المرور انشاء نموذج للدخول ويحتوي على مربعي نص غير مستندة الى مصدر بيانات، وزري امر واحد للالغاء والثاني للدخول  اضافة الكود التالي في حدث عند النقر في زر موافق   VBA   If pas = DLookup("userpass", "tusers", "usernam='" & [usr] & "'") Then DoCmd.OpenForm "Form1" Else MsgBox "يوجد خطأ في اسم المستخدم او كلمة المرور" End If

الشروط في الاستعلامات

الشروط في الاستعلامات يمكن اضافة الشروط في تصميم الاستعلام وعند اضافة الشرط فان الاستعلام سيقوم باظهار السجلات التي ينطبق عليها الشرط فقط، ويجب الانتباه الى انواع الحقول في الجدول قبل و ض ع الشرط لان صيغة الشرط في النص يختلف عنة اذا كنا نتعامل مع ارقام او تاريخ وسنتطرق الى هذة الانواع في هذا الموضوع. الصورة ادناة تخص تصميم الجدول الذي سنتعامل معه حيث يحتوي على اربع حقول من ظمنها اسم الطالب ونوعه نص قصير، وتاريخ الميلاد ونوعه تاريخ ووالنتيجة ونوعه رقم تم انشاء المثال اعلاة وتم تسميه الحقول باللغة العربية لتسهيل فهم الموضوع ، مع التاكيد على استخدام اللغة الانجليزية لكتابة المسميات يمكنك مشاهدة الفيديو للحصول على ايضاحات اكثر او الاستمرار بقراءة الموضوع 1-     الشروط في الحقل الذي يحتوي على نص او ارتباط تشعيبي: حسب الصورة اعلاة  لتصميم الجدول الخاص بنتائج الطلاب نلاحظ ان نوع البيانات في الحقل الثاني (اسم الطالب)    هو نص " Short Text "  وللتعامل مع هذا الحقل في الاستعلامات ،   في تصميم الاستعلام يمكننا ان نظع الشروط وكم...