موضوع منقول من المنتدي القديم
الكاتب: أبو حمود
السابقة : Dim
الموقع : داخل إجراء
المدى : داخل الإجراء فقط (محلي)
السابقة :Dim
الموقع : في قسم التصريحات لنموذج أو تقرير أو وحدة نمطية
المدى :جميع إجراءات نفس الوحدة النمطية (متحول وحدة نمطية)
السابقة :Public
الموقع : في قسم التصريحات العامة لنموذج أو تقرير
المدى :جميع إجراءات قاعدة البيانات
السابقة :Public
الموقع : في قسم التصريحات لوحدة نمطية عامة
المدى :جميع إجراءات قاعدة البيانات وقواعد البيانات الأخرى
¡ من الأفضل وضع جميع المتغيرات العامة في وحدة نمطية خاصه بها مما يسهل عملية الرجوع إليها كما يجنبك تكرار تعريف المتغير في أكثر من وحدة .
¡ لاحظ أن المتغيرات العامة تحتفظ بقيمها طوال فترة فتح قاعدة البيانات .
¡ لجعل المتغير المحلي يحتفظ بقيمته بعد نهاية الإجراء حوله إلى متغير ساكن باستخدم Static بدلاً من Dim .
¡ لجعل متغيرات إجراء متغيرات ساكنة بغض النظر عن طريقة تعريف هذه المتغيرات ضع Static في بداية الإجراء ، مثال :
Static Sub
Static Function
¡ يمكن أن يكون نوع المتغير إما أحد الأنواع الأساسية وهي :
Integer, Long, Single, Double, Currency, String أو Variant .
أو نوع كائن Object Type .
¡ إذا كان العدد الذي تستخدمه لايحوي أرقاماً بعد الفاصلة فمن الأنسب تعريفه على أنه عدد صحيح (Byte - Integer -Long) حيث أن العمليات الحسابية تكون أسرع على الأعداد الصحيحة .
¡ إذا كان العدد يحتوي على فاصلة عشرية فيعرف باستخدام (Single - Double - Currency) مع ملاحظة أن Currency يقبل أربع خانات بعد الفاصلة العشرية وخمسة عشر قبلها ، و Single - Double لديهم مجال أكبر من Currency لكنهما يقومان ببعض التقريبات التي قد لاتكون مرغوبة في الحسابات المالية .
¡ جميع المتغيرات الرقمية يمكن أن تنسب إلى بعضها البعض ولكن انتهبه من مسألة التقريب .
¡ وعندما تعرف متغيراً نصياً فإن أكسس يعتبره تلقائياً سلسلة نصية ذات طول متغير وسيكبر المتغير أو يصغر حسب البيانات المنسوبة إليه ، ويمكنك تعريف متغير بطول ثابت بكتابة :
Dim متغير As String * 10
التعليمة السابقة تعرف متغير نصي طوله 50 حرف .
وإذا كانت السلسة أقل من طول المتغير فسوف يضيف أكسس فراغات في نهاية السلسلة ليصبح طول المتغير هو نفس الطول الذي تم الإعلان عنه ، وهنا من الأفضل استخدام الدالة Trim .
¡ نوع البيانات Variant
نوع البيانات Variant هو نوع بيانات متقلب ، بمعنى أنه يستطيع تخزين أي نوع بيانات . والغرض من هذا النوع هو السماح باستخدام قيم أنواع بيانات مختلفة دون الحاجة لتحويل أنواع البيانات الخاصة بك بنفسك . نوع البيانات Variant هو نوع بيانات فرضي في أكسس VBA ، لذلك إذا لم تحدد بوضوح نوع البيانات لمتغير ما ، يقوم VBA بتعيين نوع البيانات إلى Variant .
المميزات الأساسية لاستخدام متغيرات Variant تتضمن ما يلي :
ž من الأسهل إنشاء الشفرة لأنك لا تحتاج لمعرفة أنواع البيانات ولا للقلق مما إذا كانت أنواع البيانات الخاصة بالمتغيرات متوافقة أم لا .
ž متغير بيانات Variant هو الوحيد الذي له قيمة Null إذا أردت تعيين متغير لحقول يمكن أن يكون لها قيمة Null فإن استخدام متغير Variant يجنبك الحاجة لكتابة الشفرة للتعامل مع قيم بيانات Null .
أما عيوب استخدام متغيرات Variant :
ž تحتاج أقصى ذاكرة ، وكلما كبرت الذاكرة المربوطة في متغيرات الحفظ ، كلما قلت فرصة تواجدها لتشغيل التطبيق .
ž تتم الإجراءات التي تستخدم متغيرات Variant ببطء في كل مرة تشير فيها لمتغير Variant ، يجب على VBA أن يأخذ وقته في تحويل نوع البيانات لمتغير كائن لتحديد ما إذا كانت الخصائص والطرق التي تمت الإشارة إليها في الشفرة ملائمة للكائن أم لا .
والموضوع طويل وهو منقول من أحد الكتب
