يشتكى الكثير من صعوبه عمل القوائم الخاصه به فى الاكسس 2007 و 2010 و الاصدارات الاحدث نظرا لانهم اعتمدوا على شئ جديد مختلف عما سبق يعتمد عمل القوائم فى تلك الاصدارات على XML
و لتنفيذ فكره تصميم شريط القوائم في الاكسيس نتبع الخطوات التاليه
الاول يجب عمل جدول و نسميه USysRibbons يراعى اسم الجدول بنفس الشكل ونفس الحروف و يجب ان يكون بهذا الاسم لانه من جداول النظام و ينظر اليه البرنامج عند البدايه و قبل ان نحفظ هذا الجدول يجب علينا اظهار جداول النظام نفسها بالضغط بزر الماوس الايمن علي All Tables ثم اختيار Navigation Options
كما بالصوره
Autonumber | ID |
Text | RibbonName |
Memo | RibbonXml |
و تكون به تلك الحقول بنفس الاسماء
الاول هو مجرد ترقيم تلقائ لعدد القوائم التى سوف تعملها
الثانى هو اسم القائمه
الثالث و هو من نوع ميمو لتخزين كود xml بداخله
عملنا الجدول خلاص
نبتدى نكتب كود xml فى اى مكان حتى لو النوت باد
وممكن نعمل نموذج ياخد بياناته من هذا الجدول لتحرير الكود من خلاله
كود xml مشابه لاكواد html
أول سطر يجب كتابته هو
و يجب طبعا غلقه
و بعده نكتب داخل نفس الكود و تحت السطر الاول هذا الكود
و هذا فائدته ان نخفى جميع القوائم الموجوده مسبقا و نعرض القوائم الخاصه بنا
اما اذا كان الاختيار false فسوف يعرض القوائم الموجوده مسبقا بالاضافه للقوائم المعموله منك
بعد كده نبتدى عمل التاب tabs
و بداخلها اكثر من تاب
و نلاحظ وجود id & label داخل التاب
id و يجب ان يكون وحيدا unique و لا يتكرر
label و نضع فيها الاسم المراد ظهوره على التاب
ملاحطة التاب المقصود به اسم القائمة مثل Home – insert-Create
طيب نجرب كده و نشوف
و علشان النتيجه تظهر
هانعمل حاجه صغيره
سوف نجعل القائمه الخاصه بنا تظهر فقط عند فتح النموذج الذى نكتب فيه الكود
الاول نكتب الكود و نضعه فى الحقل ribbonxml و فى اسم الريبون نضع اى اسم معبر لنا
بعد ذلك نغلق القاعدة ثم نعيد فتحها
و نفتح النموذج فى وضع التصميم
و عند خصائص النموذج فى تاب other او اخرى
سنجد خانه بها ribbon name و نختار منها اسم الريبون الذى صنعناه
طيب هذا التاب هو الذى سنضع بداخله الـ buttons
طيب ما احنا ممكن نريد ان نقسم الازرار الى مجموعات
بمعنى اخر مجموعه خاصه بالنماذج و مجموعه خاصه بالتقارير و هكذا
و هذا يأتى عن طريق تقسيم التاب الى مجموعات groups
و لكى نفعل ذلك نضع الكود التالى بعد سطر <tab>
و كما سبق id يجب ان يكون متفرد (اى لا نسمى جروب اخر بنفس الاسم)
label هو الكلام الذى سيظهر للتعريف بالجروب
و طبعا نكرر الكود لعمل اكثر من Group
ده الشكل المبدئي للكود
ملاحظ أن:
- اي ID بيكون unique
- لما بتفتح Tag لازم تقفله
كده تقريبا ناقصنا ايه بقى
ايوه صح الازرار التى سوف نستعملها لكى نتحكم فى برنامجنا
الكود الخاص بأضافه الـ button سيكون كالتالى
و نضعه بعد تاج الـ group
كما هى العاده
id سيكون اسم لا يتكرر
label هو الكلام الذى سيكون على الزر
و لكن تلاحظون هنا شئ مختلف اننا لم نقفل تاج الbutton بالشكل التالى </button>
و انما وضعنا / فى نهايه التاج
هنا صنعنا button
و طبعا ممكن نكرره مثل ما نريد
نستكمل موضوع الـbutton
لكى يعطينا الbutton تأثير هناط طريقتان لفعل ذلك
الاولى عن طريق ماكرو Macro
او عن طريق كتابة كود VBA داخل Module
الطريقه الاولى عن طريق الماكرو
بكل بساطه نعمل ماكرو و نسميه myBut1 يفعل اى شئ و ليكن message box تعرض رساله hello this is button 1 click
خلصنا الماكرو و حفظناه
نذهب بعد ذلك الى كود الـ xml الخاص بنا
و الى وسم الـ button فى اخره نكتب
onAction=”اسم الماكرو”
ليصبح كالتالى
هناك شئ زياده فى الكود و هو “size = “large و هذا لاختيار حجم الbutton و جعلناه هنا large
طيب لو نريد الطريقه الاخره و هى عن طريق كتابة الكود
يبقى الاول هانعمل new module و نسميه myrib مثلا
و بداخله نكتب الداله التى سوف تنفذ عندما نضغط على الـ button
و لتكن داله بسيطه تفتح نموذج اخر
ستكون الداله كالتالى
public fuction pressMe() docmd.openform "myform1" end function
بعد ذلك نذهب الى تاج الbutton (و ليكن button اخر غير الموجود سابقا)
و نكتب فى اخره
نطبق بقى و نشوف بس طبعا لا تنسى ان تعمل فورم باسم myform1 لكى يتم فتحه عندما نضغط على الـbutton
, و بكده يصبح لدينا الكود التالى من اول ما بدأنا
لوضع الصور على الزرار :
فى البدايه نصنع مجلد جديد و نسميه images و نضعه مع بداخل المجلد المحتوى لقاعدة البيانات الخاصه بنا
و نضع به الصور الخاصه بنا
بعد ذلك نذهب لكود الريبون و فى اول سطر خاااالص , فاكرينه نضيف المقطع التالى “loadImage=”OnLoadImage
و هو بكل بساطه يخبر البرنامج ان الصور لكى تظهر يجب ان تنفذ الداله OnLoadImage
يبقى شكل السطر الاول
يبقى كده ناقص ايه
تمام كد الداله OnLoadImage
و طبعا سوف نكتبها فى الموديول الذى سبق و صنعناه
و تلك الداله تكون كالتالى
(Public Sub OnLoadImage(strImage As String, ByRef Image Dim strPath As String ' construct a path strPath = CurrentProject.Path & "\images\" & strImage ' make sure the file exists (Debug.Assert (Len(strPath) > 0 ' return the image (Set Image = LoadPicture(strPath End Sub
و هى بكل بساطه تخبر البرنامج ان الصوره المطلوبه موجوده مع المشروع فى مجلد اسمه images
كده يبقى ناقص اخر شئ
و هو اختيار الصوره ووضعها
يبقى نروح للسطر الخاص بالـ button
و نضيف التالى ليصبح السطر كاملا كالتالى
نجرب كده و نشوف النتيجه
الف مبروك الريبون الخاص بك
و طبعا مرفق المثال التطبيقى للتحميل