اذهب الي المحتوي
أوفيسنا

allosh

03 عضو مميز
  • Posts

    105
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل منشورات العضو allosh

  1. بارك الله فيك ونفعنا الله بعلمك لكن عندي سؤال بسيط اذا ممكن كيف انقل مجموعة من الاسطر لشيت مثلا الطلاب الراسبين بنقلهم بالكامل لشيت مستقل واذا عدلت على درجات واحد منهم نجحته مثلا يختفي من الشيت او يعود للصفحة الأصل عشان عملية الطباعة
  2. السلام عليكم ورحمة الله تفاجأت بايميلا من بعض الزوار والاعضا يسألون عن ملف الدرس الاخير وان الرابط لا يعمل وهذا رابط الدروس http://www.officena.net/ib/index.php?showtopic=28195&hl=%2B%D8%B9%D9%84%D9%88%D8%B4+%2B%D8%A7%D9%84%D8%AD%D8%B1%D8%A8%D9%8A وهذا رابط الملف http://www.up-00.com/?eNY كذلك الاسم السري xxx والرقم السري 3 والسلام عليكم ورحمة الله مع تحيات اخوكم علوش الحربي
  3. السلام عليكم ورحمة الله رحمة الله عليك يا علوش الحربي ، وألهم اهلك الصبر والسلوان اما المقصود في هذه المشاركة فأعرفه معرفة سطحية ونسأل الله له الرحمة والمغفرة وهو ليس أنا ( فأنا ولله الحمد لازلت على قيدالحياة ) ولا زلت في نعمة وصحة من العزيزالكريم و الاسم الحقيقي علي بن دويرج الحربي وتقبلوا تحياتي علوش الحربي
  4. ممتاز - عندي عدة اسئلة - على أي اساس يبنى رقم الجلوس ؟ هل هو رقم تلقائي أم رقم يدخلة المستخدم ؟؟ توزيع الطلاب هل هو توزيع عشوائي ، ولماذا لا يتم التوزيع عند التسجيل ؟ يعني عندما تسجل طالب تحدد الصف المطلوب وتكتب بياناته ؟ ما المقصود بمدة الاقامة ؟ أكتب المواد الدراسية التي يجب ان تكون في البرنامج ؟برنامج خابور يحتوي على مواد قليلة ولا اعلم ما هو السبب ؟ وتقبل تحاتي
  5. وماذا عن بقية الفصول ، هل البرنامج مقصور على صف واحد ، وهل برنامج خابور خير بهذا الشكل يعتبر متكامل اي الهدف من البرنامج توزيع الطلاب على اللجان والفصول وفصل الاولاد عن البنات فقط وحالة القيد المقصود منه نتيجة الطالب ، في نظري البسيط ان على البرنامج حساب رقم القيد آليا ، أرجو التوضيح بشكل أوسع اذا كنت مدرس أو من المستفيدين من هذا البرنامج . وتقبل تحياتي
  6. الف شكر على هذا الاطراء الجميل الذي اخجلتني به ، و أسأل الله أن يجزاك خير الجزاء على هذا الكلام الجميل أما بالنسبة للبرنامج فهو برنامج بسيط جدا المقصود منه طريقة بناء البرنامج أي طريقة التفكير بالبرنامج وليس البرنامج نفسه ، وتقبل تحياتي
  7. ياريت يارب يكرمك ويسهلك الامور طيب ممكن تشرح الي البرنامج لأني حاولت افهمه ما قدرة ،، واعتقد أن برنامج خابور خير حول صف واحد فقط يعني الصف الثالث فقط ولا اعلم المقصود في الجان
  8. الدرس الثالث عشر http://www.officena.net/ib/index.php?showtopic=28564
  9. السلام عليكم ورحمة الله وبركاته الدرس الثالث عشر والأخير : بسم الله وعلى بركة الله نبدأ درسنا الاخير ، في درسنا هذا سوف نتكلم عن الجمال نعم الجمال والمقصود بالجمال أي الفن والإبداع في النموذج ، قد تستغرب من كلمة ابداع وفن في النموذج ولكن لا تستغرب ففي جمال النموذج فائدة عظيمة للمستخدم خاصة إذا كان ذو مظهر جذاب ومتناسق الألوان ، وقد تنزعج من شكل أو ألوان النموذج ، حتى لو كان البرنامج رائع فإن الالوان والمظهر تعيبه ، وتشعر أن البرنامج ضعيف أو بسيط ، لنلقي نظرة على هذا النموذج على سبيل المثال .. لاحظت ألوان النموذج كيف تصيبك بالإحباط ، وتشعر أن البرنامج عبارة عن محاولة وليس برنامج متكامل ، وذو فائدة ، إن تصفيف الأزره ورصها يحسن المظهر مما لا شك فيه ، ثم أنظر ألى زر ( خروج ) ما الداعي لهذا الزر وهناك علامة اكس في أعلى ا لنموذج كان من المفروض أن يلغي علامة اكس في اعلى النموذج ، أو ان يحذف زر ( خروج ) .. إن جمال النموذج ليس في لون النموذج نفسه أو لون الأزره فقط ، ولكن هي من اهم المظاهر فهناك حجم النموذج أي طوله من أعلى الى اسفل وعرض من اليمين الى ا لشمال ، و مكان ظهور النموذج كأن يكون في اسفل الشاشة أو في اعلى الشاشة .. كذلك طريقة ظهور النموذج .. في مشرعنا هذا حاولت أن تكون الالوان بسيطة ومتناسبة بقدر الامكان أرجو انزال المشروع وإبداء الرأي و لا تنسوننا من صالح دعائكم .. انتهى الدرس الثالث عشر – والأخير الاسم السري : xxx الرقم السري : 3 الملف المرفق http://file14.9q9q.net/Download/35251995/dress13.rar.html مع تحيات / علوش الحربي
  10. آمين و أياك ووالديك انه القادر على ذلك
  11. الاخ الكريم / الضياء2008 شكرا على مرورك على الموضوع وتقبل تحياتي الاخ الكريم / و أياك ووالديك إن شاء الله السلام عليكم ورحمة الله وبركاتهالدرس الثاني عشر : بسم الله وعلى بركة الله نبدأ درسنا الثاني عشر ، في درسنا هذا سوف نتكلم عن نموذج تعديل بيانات الطالب ، في الدرس الاول تكلمنا حول هذا النموذج وقلنا بأن المبرمج احيانا يضطر لأضافه نموذج باسم ( frmRepair ) والهدف من هذا النموذج تعديل بيانات الطالب أو اسم الطالب نفسه ، أي بيانات تعريف الكتله أو كتلة البيانات نفسها ، أما البيانات التراكمية لا يتم التعرض لها أو تعديلها ، تصور لو أن المستخدم ادخل اسم طالب وأخطأ في الصف بدل أن يكتب الصف الأول كتب الصف الثاني مثلا ، يتم معالجة الموضوع عن طريق هذا النموذج ، وهذا النموذج هو عبارة عن نموذج الادخال نفسه إلا انه يتميز بأن يعرض طالب محدد يتم التعديل على بياناته ، طبعا ننشئ نموذج يعتمد على جدول الطلاب ، ونضيف قائمة تحرير وسرد ليختار المستخدم الطالب المراد التعديل على بياناته ، كذلك مجموعة خيار ليحدد الصف .. يجب أن يكون نموذج التعديل مقلوب بمعنى البحث في الأعلى والتعديل بالأسفل ، ولا اعلم لماذا السبب ولكن المتعارف عليه بهذا الشكل ، وممكن أن تضيف كلمة بحث في قسم البحث وكلمة تعديل على قسم التعديل ، بعد تعديل الاسم أو الهواية مثلا يتم تخزين البيانات بطريقة عادية ، ولكن المشكلة تكمن في تغيير الصف لا تنسى أن للطالب مواد دراسية وعند نقله إلى صف مختلف سوف تنقل معه المواد ، وبما أن رابط جدول الطلاب مع جدول المواد هو رقم الطالب نفسه سوف تنتقل معه المواد بشكل طبيعي ، أضف لمعلوماتك أن كل بيانات تعريف الكتلة والكتلة البيانية قابلة للتغير ما عدى شيء واحد هو رقم تسلسل الكتلة أي رقم الطالب محاط بمربع احمر في الصورة ,, وتغيير رقم الطالب يمثل كارثة ، ومن المعلوم أنه لا يمكن تغيير الرقم لأنه رقم تسلسلي تلقائي ولكن فيما لو كان غير تلقائي .. دائما يكون الربط عن طريق الرقم التسلسلي التلقائي وهو الأفضل ... إذا اين المشكلة في تغيير الصف ، في الحقيقة تكمن المشكلة في قسم البحث ونفرض أنك حددت الطالب عبد الله العلي من الصف الأول ، بعد تغيير الصف ماذا يكون في قسم البحث ؟؟؟ أنا جعلت الصورة تختفي ، وجعلت قائمة التحرير والسرد لا تحدد شيء ، لأن الطالب انتقل لصف آخر .. وأنت ممكن أن تعدل كما تشاء .. الاسم السري : xxx الرقم السري : 3 انتهى الدرس الثاني عشر الملف المرفق http://file14.9q9q.net/Download/36763676/dress12.rar.html مع تحيات / علوش الحربي
  12. السلام عليكم ورحمة الله درسنا اليوم عن الصور ولكن قبل أن نبدأ درسنا سوف نكمل درسنا السابق حول الارقام السرية ، طبعا كما في الدرس السابق كان المستخدم يحدد اسمه أو يختار اسمه من قائمة التحرير والسرد ثم يدخل اسمه السري ورقمه السري وهذه الطريقة غريبة ونادرا ما تجدها في البرامج ، والطريقة الصحيحة أن يدخل اسمه السري ورقمه السري فقط ، و يتم معرفة اسمه الحقيقي وسوف يسجل اسمه الحقيقي في جدول حفظ الدخول اضافة إلى انه فيما لو اضاف طالب جديد سوف يضاف في جدول الطلاب بجانب اسم الطالب ليدل على أنه هو الذي اضاف هذا الطالب او قام بتسجيله ، وهذي الميزة وحسب علمي البسيط أنها مهمة عند المدارس .. في نموذج ادخال الرقم والاسم السري (frmPzzw ) وضعت تصفية في الاستعلام الخلفي للنموذج ، حسب الاسم السري الذي يدخله المستخدم ، ولماذا الاسم السري ، لأن الاسم السري غير قابل للتكرار كما هو الحال مع الاسم المستعار في هذا المنتدى ، طبعا سوف يعرض النموذج فقط المستخدم صاحب الاسم السري وعندما يدخل رقمه السري سوف تتم المقارنة بينه وبين الرقم السري بالنموذج ، أعتقد أن العملية بسيطة ولا تحتاج شرح مفصل , نزل البرنامج في المرفقات وفي البداية ادخل الاسم السري ( x ) والرقم السري ( 1 ) ولاحظ اسم الاستاذ في اعلى النموذج اغلق البرنامج ثم افتحه مرة اخرى وادخل في هذه المرة ( xx ) والرقم السري ( 2 ) ولاحظ اسم الاستاذ ، اغلق النموذج ثم افتحه وحاول في هذه المرة أن تكتب أي اسم سري خطأ مثلا ( yyy ) ولاحظ النتيجة ، ثم كرر المحاولات الخاطئة ثلاث مرات ولاحظ النتيجة .. الدرس الحادي عشر : في هذا الدرس سوف نتطرق لموضوع الصور صور الطلاب ، في الحقيقة أن صور الأشخاص أو الطلاب كما هو الحال في برنامجنا هذا ، توضع في مجلد خاص بها على الهارد دسك يكون داخل مجلد البرنامج ، والطريقة السليمة أن توضع الصورة برقم الشخص أو الطالب ، يعني الطالب خليفة صبحي رقمه في الجدول 5 إذا صورته في المجلد ( 5.gif ) وهكذا ، وهذا يسهل عملية صيانة البرنامج وتعديل الصور بكل سهولة ، وتصور لو أن عدد الطلاب في البرنامج 1700 وفقدت صورة طالب كيف يمكن معالجة المشكلة إذا لم تكن الصور مرقمة بأرقام الطلاب ، وهل ستكتشف أن الخطأ هو اسم الصورة تغير أو أن الصورة حذفت من المجلد أو أن رابط الصورة حذف من الجدول ، لكن اذا كانت الصور مرقمة بأرقام الطلاب سوف تنظر الى رقم الطالب ثم تفتح مجلد الصور وتبحث عن الصورة ذات الرقم نفسه ، وبكل بساطة تعرف الخطأ اين ، ولكن يعيب هذه الطريقة أنه يجب أن تكون كل الصور من نوع واحد ( gif ) مثلا أو ( jpg ) ويصعب استخدام النوعين ، الطريقة الثانية هي الطريقة المعتادة في البرامج يعني عند اضافة صورة تفتح نافذة حوار لتحدد الصورة من المجلد ايا كان المجلد ، ثم تنقر على موافق .. في مشروعنا هذا أنا استخدمت الطريقتين معا ، عند انزال البرنامج وفك الضغط لاحظ المجلد (Spic ) يحتوي على صور الطلاب مرقمة حسب رقم الطالب أو الطالبة وحتى لا يكون شرطا أن تكون صورة الطالب بنفس المجلد وبنفس الرقم ، فقد أضفت الميزة الثانية وهي البحث عن الصورة في أي مجلد أو حتى المجلد نفسه (Spic ) سوف اقوم بشرح الطريقة الأولى فقط لأن الطريقة الثانية اعتقد أنها لا تحتاج شرح فقط انقر على كلمة ( بحث عن صورة ) الطريقة الأولى : افتح البرنامج ثم ادخل الاسم السري ( xx ) والرقم السري ( 2 ) ثم افتح نموذج تسجيل طالب أكتب اسم الطالب وتاريخ الميلاد وحدد الهواية او اكتبها ، سوف يظهر لك رقم الطالب اترك البرنامج وافتح المجلد ( Spic ) وأضف صورة الطالب وغير اسمها حسب رقم الطالب يجب أن يكون امتداد الصورة ( gif ) ثم ارجع للبرنامج وأنقر على الصورة نفسها دبل كلك وليس كلمة ( بحث عن صورة ) سوف يضيفها البرنامج ويعطي رسالة بذلك ، وإذا كانت الصورة غير موجودة بالمجلد سوف يعطي رسالة بأن الصورة غير موجودة ,, في هذه الحالة استخدم الطريقة الثانية .. لا حظوا معي الكود التالي : Private Sub imgStudent_DblClick(Cancel As Integer) On Error GoTo Err Dim R As String SP = IDS spp = SP & ".gif" '-------------------------------------------------------- R = Application.CurrentProject.Path & "\Spic\" & spp imgStudent.Picture = R '========================================= MsgBox "Êã ÇÚÊãÇÏ ÕæÑÉ ÇáØÇáÈ/ÇáØÇáÈÉ ", vbInformation, "ÇÚÊãÇÏ ÇáÕæÑÉ" imgPath = spp Exit Sub Err: MsgBox SP & ".gif" & " áÇ ÊæÌÏ ÕæÑÉ ÇáØÇáÈ/ÇáØÇáÈÉ íÌÈ Ãä Êßæä ÇáÕæÑÉ ÈÇáÑÞã ", vbInformation, "ÇÚÊãÇÏ ÇáÕæÑÉ" R = Application.CurrentProject.Path & "\Spic\" & "NoPic.GIF" imgStudent.Picture = R imgPath = "NoPic.gif" End Sub لا حظوا معي الكود مرة أخرى بالصورة : هذا هو كود الدبل كلك على الصورة ، في البداية وفي السطر رقم 4 سوف ينسب رقم 5 للمتغير ( sp ) حيث ( IDS ) هو مربع النص على النموذج ويحمل الرقم 5 الآن لاحظ السطر التالي رقم 5 سوف يصبح المتغير ( spp ) هو اسم الصورة بالضبط يعني ( 5.gif ) في السطر الذي يليه 6 كل العبارة ( Application.CurrentProject.Path ) تعني عنوان مجلد البرنامج وبعدها مجلد الصور ثم اسم الصورة .. في السطر 7 سوف يعتمد رابط الصورة لإطار الصورة على النموذج .. في السطر 9 يتم حفظ الرابط في الحقل ( imgPath ) من جدول الطلاب وإذا لم يجد الصورة سوف يحصل خطأ ويتجه للسطر 10 في السطر 13 يتم اعتماد رابط الصورة ( NoPic.gif ) هذه الصورة يجب أن تكون دائما وأبدا في مجلد الصور ولو حذفت سوف يحصل خطأ في البرنامج .. طبعا السطر 14 مثل السطر 7 تماما لاعتماد الصورة الاعتيادية لإطار الصورة ( imgStudent ) على النموذج كذلك السطر 15 مثل السطر 9 إلا انه بدل حفظ الصورة ( 5.gif ) سوف يحفظ الصورة ( NoPic.gif ) الملف المرفق انتهى الدرس الحادي عشر مع تحيات / علوش الحربي
  13. السلام عليكم ورحمة الله درسنا اليوم حول الأرقام السرية ، لا ليس نظام آكسس لصلاحيات المستخدمين ، نعم نظام آكسس لصلاحيات المستخدمين هي الطريقة السليمة ولكن هذا النظام معقد ويصعب تنفيذه أو تركيبه أو استخدامه بشكل بسيط وسوف نخصص له درس إن شاء الله ، ولكن سوف نستخدم طريقة أخرى بسيطة ومفيدة ، في البداية ننشئ جدولين الأول ( tblPzzw ) والثاني ( tblPzzwSave ) والمقصود من الجدول الاول اسماء وأرقام المستخدمين أي عبارة عن ثلاث حقول حقل اسم المستخدم وحقل الاسم السري وحقل الرقم السري ولا تنسى أن نضيف حقل الرقم التلقائي ، والجدول الثاني لحفظ تاريخ دخول المستخدم و اسمه أي حقلين حقل اسم المستخدم وحقل التاريخ ولا تنسى حقل الرقم التلقائي .. بحيث عندما يدخل أي مستخدم يتم تسجيل اسمه وتاريخ دخوله بالجدول الثاني ، ملاحظة ( نستخدم Pzzw لتعريف الرقم السري بدلا من كلمة Password كزيادة في تعتيم البيانات ) بعد انشاء الجدولين ننشئ نموذج يعتمد على الجدول الأول ( tblPzzw ) وننشئ قائمة تحرير وسرد ، ليعرض أسماء المستخدمين من الجدول نفسه ، ونضع مربعين غير منظمين بداخل النموذج ، بحيث يحدد المستخدم اسمه من القائمة ومن ثم يدخل اسمه السري ورقمه السري . في مربعي النص غير المنضمين .. أولا : لو فرضنا أن أشرف عادل ، رقمه السري 123 واسمه السري zeed وعبد الرحمن محمد رقمه السري 123 وأسمه السري Feel يجب أن يكون هناك خطأ في الرقم السري أو بشكل ادق يجب أن يعرف البرنامج المقصود في اسم المستخدم ، هذا اولا ثانيا : لو فرضنا أن المستخدم أدخل اسمه بشكل صحيح ولكن الرقم السري خطأ في هذه الحالة يجب أن يحصل على رسالة تفيد بأن الرقم السري خطأ وليس الاسم . ثالثا : لو فرضنا أن المستخدم أدخل اسمه بشكل غير صحيح والرقم السري صحيح في هذه الحالة يجب أن يحصل على رسالة تفيد بأن اسمه غير صحيح وليس الرقم السري . رابعا : عندما يحدد المستخدم اسمه ويدخل اسمه السري ورقمه السري بشكل سليم يجب في هذه الحاله تسجيل دخوله في جدول حفظ الدخول ( tblPzzwSave ) خامسا : يجب أن يحتفظ البرنامج باسم المستخدم لعرضه في اعلى النموذج حتى يعلم بأن المستخدم هو الذي يقوم بتعديل البيانات .. الخطوة الأولى : يحدد المستخدم اسمه من القائمة ثم يدخل اسمه السري ورقمه السري ، طبعا لكل مستخدم في الجدول اسم سري ورقم سري خاص به ، وعند ادخال الاسم السري والرقم السري ، يجب أولا أن نتأكد من الرقم السري هل هو موجود بالفعل بالجدول ، بمعنى أننا سوف نضع كود يبحث عن الرقم السري بالجدول ( tblPzzw ) وإذا كان غير موجود يحصل المستخدم على رسالة نفيد بأن الرقم السري خطأ حتى لو كان الاسم السري صحيح ، بعد تعديل الرقم السري يتم النظر في الاسم السري والاسم السري حسب اختيار اسم المستخدم يعني الاسم المقابل لاسم المستخدم ، علما بأن الاسم السري غير قابل للتكرار .. الخطوة الثانية : بعد الدخول او بشكل ادق بعد قبول الرقم السري والاسم السري ، يجب تسجيل اسم المستخدم وتاريخ دخول المستخدم بجدول حفظ الدخول ( tblPzzwSave ) ثم فتح نموذج رصد الدرجات مثلا او أي نموذج والمفروض أن يفتح على نموذج خاص يسمى نموذج توزيع المهام ليختار المستخدم النموذج المطلوب .. Private Sub Pzzwfin_AfterUpdate() '---------------------------------- If (Eval("DLookUp(""[PZZ]"",""[tblPzzw]"",""[PZZ] =form![Pzzwfin]"") Is Null")) Then MsgBox " ÇáÑÞã ÇáÓÑí ÎØÃ", vbInformation, "ÇáÑÞã ÇáÓÑí" Me.Pzzwfin = Null Exit Sub Else If Me!UserNIC = txtUserIn Then '----------------------------------------------------- Pzzn = cmpUser.Column(1) DoCmd.RunSQL "Insert Into tblPzzwSave(User) Values(Forms![frmPzzw]![txtCN])" Dim stDocName As String Dim stLinkCriteria As String stDocName = "frmStudent" DoCmd.OpenForm stDocName, , , stLinkCriteria Me.Pzzwfin = Null Me!txtUserIn = Null '--------------------------------------------------------- Else MsgBox " ÇÓã ÇáãÓÊÎÏã ÎØÃ", vbInformation, "ÇÓã ÇáãÓÊÎÏã" Me!txtUserIn = Null End If End If End Sub هذا هو كود مربع النص الغير منظم الموجود على النموذج ، طبعا في حدث بعد التحديث يعني عندما يدخل المستخدم اسمه السري ورقمه السري ، الخطوة المهمة في هذا الكود والتي كثير ما نجد اسئلة حولها في المنتدي هي في السطر العاشر السطر الذي يبدأ ( DoCmd.RunSQL ) ومهمة هذا الكود هي حقن اسم المستخدم في الجدول ( tblPzzwSave ) كما هو واضح من الكود بالنسبة للسطر الثاني والذي يبدأ ( If ) مهمة هذا الكود هي البحث عن وجود الرقم السري بالجدول ( tblPzzw ) يبحث بكامل الجدول في البرنامج يوجد ثلاث مستخدمين هم عادل عبد الرحمن الاسم السري ( xxx1 ) والرقم السري 111 عبد الرحمن عادل الاسم السري ( xxx2 ) والرقم السري 222 خالد مخلوف الاسم السري ( xxx3 ) والرقم السري 333 الملف المرفق ملاحظة : إذا اردت أن نضيف صورة للطالب افتح نموذج تسجيل الطلاب ( frmStudentRec ) وانقر على الصورة دبل كلك ثم حدد الصورة من مجلد الصور انتهى الدرس العاشر مع تحيات / علوش الحربي
  14. الله يحفظك ويجزاك خير و يحفظك من كل مكروه ، نعم انا اعاني من موضوع تحميل الملفات و شكر الله سعيك وبارك الله فيك أنت والأخ الكريم محمد طاهر
  15. الاخ الكريم / nart lebzo شكرا على مرورك و قد استفدت ولله الحمد مما قلت وأحيي فيك هذه المعنوية ، والمشكلة أنني لم استطع ارفاق ملف الدرس التاسع وهذه الرسالة ( عملية إرفاق الملف فشلت, حجم الملف المراد إرفاقه أكبر من المسموح به. ) بالرغم أن الملف 1.2 MB ياليت تشوف هذه المشكلة السلام عليكم ورحمة الله وبركاته الدرس التاسع : بسم الله وعلى بركة الله نبدأ درسنا التاسع و في هذا الدرس سوف نتطرق لتنسيق النموذج ، والمقصود من تنسيق النموذج مظهرة وحجمه والكائنات التي بداخله ، ومن الطبيعي أن يظهر النموذج بمظهر لائق لأنه غالبا ما يكون في واجهة المستخدم ، وتنظيم وتصفيف كائنات النموذج تساعد على سرعة الإنجاز ، واقصد في التصفيف ان تكون البيانات المترابطة متقاربة ، يعني في برنامجنا هذا تكون المواد التي يدرسها الطالب متراصة وبجانب بعض ، كذلك من التنسيقات ألوان النموذج و ألوان الكائنات . دعنا نلقي نظرة على هذا النموذج لاحظ اسم الطالب المحاط بمربع أحمر اين مكانه في آخر قسم بيانات تعريف الكتلة ، لأن المدرس عندما يدخل الدرجات ( البيانات التراكمية ) يكون اسم الطالب قريب من عينه ، وهو مهم جدا في حالة رصد الدرجات ، أما العمر والهواية والجنس فليست مهمة لذلك وضعت في اعلى القسم .. كذلك من تنسيقات النموذج وضع صورة مضمنة كخلفية للنموذج ، بحيث ترسم صورة في أي برنامج رسم ثم تجعل هذه الصورة خلفية للنموذج . انا رسمت هذه الصور .. كذلك هذه الرسمة هذه صور رسمتها ببرنامج الفوتوشوب ، ثم وضعتها كخلفية للنموذج و نسقت الكائنات بحيث تتناسب مع الصورة ، من المفروض أن يضبط النموذج على جم معين لأنك فيما لو عملت تكبير للنموذج سوف تكون الصورة بجزء من الشاشة والكائنات بجزء آخر ، في مثل هذه الحالة يجب أن يضبط النموذج عند ارتفاع معين وعرض معين ولا يسمح للمستخدم بأن يغير في حجم النموذج وطريقة ضبط طول وعرض النموذج نضع هذا الكود في حدث بداية فتح النموذج Private Sub Form_Open(Cancel As Integer) DoCmd.MoveSize , , 11900, 10700 End Sub الرقم ( 10700 ) يعني طول النموذج البعد بين بداية النموذج من أعلى ونهاية النموذج من اسفل ، والرقم ( 11900 ) ويعني عرض النموذج بداية النموذج من اليمين حتى نهاية من الشمال ,, طبعا يجب ان نلغي ازرار التحجيم أنظر إلى شكل النموذج بعد تنسيق اللكائنات لاحظ أن النموذج ليس له ازرار تحجيم ، كان من المفروض أن تكون كل النماذج بنفس اللون تقريبا أو من مشتقات اللون من باب الجمال ليس إلا .. لكن انا وضعت النموذج الآخر من لون آخر للزيادة في التوضيح .. انتهى الدرس التاسع الملف المرفق http://file14.9q9q.net/Download/55439655/allosh9.rar.html مع تحيات / علوش الحربي </div>
  16. الاخ : nofal شكرا على الاطراء الجميل وعلى مرورك على الموضوع السلام عليكم ورحمة الله وبركاتهالدرس الثامن : بسم الله وعلى بركة الله نبدأ درسنا الثامن و في هذا الدرس سوف نتطرق لجدول ونموذج الغياب ، في البداية نضيف جدول جديد (tblCase ) وهو جدول الحالات ، و الحالات تعني 1 غائب 2 مريض 3 مستأذن وهكذا طبعا سوف تكون عدد الحقول أربعة الرقم التلقائي – الحالة – تاريخ الحالة – العلاقة أنظر الى الصورة التالية وتعرف على نوع البيانات لكل حقل .. ثم نربط هذا الجدول ( جدول الحالات ) بجدول الطلاب (tblStudent ) علاقة رأس بأطراف ، طبعا سوف يكون حقل الرأس ( IDS ) من جدول الطلاب ، وحقل الأطراف (ABSR ) من جدول الحالات بعد ذلك ننشئ نموذج (frmCase ) وهذا النموذج يعتبر نموذج رئيسي للحالات ، بمعني أنه سوف يستمد بياناته من جدول الطلاب ، وهو يشبه تماما نموذج الطلاب (frmStudent ) وممكن ان تنسخ نموذج الطلاب وتلصقه وتغير اسمه وتحذف النموذج الفرعي اللذي بداخله ، الآن سوف ننشئ النموذج الفرعي المسئول عن الحالات طبعا سوف يستمد بياناته من جدول الحالات (tblCase ) ، بعد انشاء النموذج الفرعي (frmSubCase ) ( لاحظ اسم النموذج الفرعي ) ، ندخله في النموذج الرئيسي للحالات وبهذه الطريقة نكون انتهينا من النموذج و الجدول ، الآن بدأنا بالمرحلة الصعبة .. السؤال الآن كيف سنحقن بجدول الحالات ( الحالات ) وكيف نجمع عدد ايام غياب كل طالب ، وكيف نمنع تكرار تحضير الطالب لأنك ممكن أن تحضر الطالب مرتين بنفس اليوم . اولا : في نموذج الحالات الفرعي (frmSubCase ) أضف مجموعة خيار وأجعل الخيارات ما تشاء من الشروط ( غائب – مريض – مستأذن – مشارك إلخ ) وأطلق على مجموعة الخيار (fraSlctCase ) اضف لمعلوماتك أن مجموعة الخيار تسند لكل شرط رقم مثلا ( غائب 1 ) و ( مريض 2 ) و ( مستأذن 3 ) وهكذا حسب ترتيب كتابة هذه الشروط وهذه الارقام هي التي سوف تحقن بالجدول ويحتفظ بها الجدول انظر إلى الصورة . عند تحديد طالب من النموذج الرئيسي للحالات ، تستطيع أن تختار ما تشاء من الحالات وبحكم العلاقة التي بين الجدولين يحتفظ جدول الحالات بالحالة المحددة أو بشكل أدق برقم الحالة حسب الطالب المختار في النموذج الرئيسي . لكن كيف يتم تخزين رقم الحالة بجدول الحالات ، هناك زر مضاف على النموذج الفرعي لحفظ الحالة يعني تحدد الحالة وتنقر على زر الحفظ فيحقن رقم الحالة بالجدول بحقل الحالات ونفس الشيء مع التاريخ ، ولكن أليس من الأفضل أن يكون في كود الزر تعليمة برمجية لتتأكد من تحضير الطالب ، أو سوف تغيب الطالب مرتين أو ثلاث مرات بنفس اليوم ما الذي يمنع ذلك ، ولتفادي هذا الخطأ نضيف استعلام (qryCase ) للحالات ومهمة هذا الاستعلام عرض كل حالات الطالب المحدد بالنموذج الرئيسي ، يعني لو حددت الطالب عمر سوف يسرد حالات الطالب عمر فقط ، ثم وضعت في كود زر الحفظ تعليمة تقارن بين تاريخ اليوم وتاريخ الاستعلام للطالب ( هل هذا الطالب سبق أن تم تحضيره في نفس التاريخ ) وبهذا لن تستطيع أن تضيف للطالب أي حالة من الحالات أيا كان نوعها ألا حالة واحدة فقط . وهذا هو الصحيح لأنه لن يكون الطالب غائب ومتأخر في نفس اليوم أو غائب وغائب أو مشارك ومريض . دعنا نلقي نظرة على كود المقارنة : من خلال الكود بالصورة أنظر إلى ناتج المقارنة ( SDC ) وتعني ( STUDENT DATE CASE ) إذا كان الطالب سبق أن تم تحضيره سوف يكون ناتج المقارنه قيمة وإذا لم يتم تحضيره سوف يكون ناتج المقارنة لا شيء .. ثانيا : كيف يتم التعرف على عدد الحالات لكل طالب ( عدد أيام الغياب وأيام التأخير وأيام المشاركات إلخ ) في الحقيقة انا استخدمت استعلام ، وهي الطريقة الأصعب والأمثل وقد اضفت استعلام وأسميته (qryCountCase ) وتفريعة في الوحدة النمطية وبها متغير ، بحيث انسب للمتغير قيمة ( رقم الحالة ) وتتم تصفية الاستعلام على اساس هذا المتغير ، ثم اضع الناتج في مربع خاص بالحالة بجانب الحالة يعني مربع نص بجانب حالة الغياب ومربع نص بجانب المشاركة وهكذا .. أنظر لهذه الصورة يمكن أن توضح الفكرة أكثر انتهى الدرس الثامن الملف المرفق مع تحيات / علوش الحربي ملاحظة : سوف يكون الدرس القادم إن شاء الله حول تنسيقات النماذج
  17. يكفيني مرورك على الموضوع .. وعلى العموم انا أقصد من وراء هذا العمل الاجر والثواب من الله وليس المرور والشكر ، وما أتمناه أن يكون هناك تفاعل من الزوار مع المشروع بحيث كل يدلي بدلوه وينتقد أو يطلب ميزة تضاف أو يذكر عيب وهكذا
  18. الاخ : Bluemind الاخ : dayslife شكرا على مروركم على الموضوع وتقبلوا تحياتي السلام عليكم ورحمة الله وبركاتهالدرس السابع : بسم الله وعلى بركة الله نبدأ درسنا السابع و في هذا الدرس سوف نتطرق لوظيفة عامة ، أو تفريعة ( Function ) تقوم بحساب عمر الطالب عند التسجيل آليا ، وعمر الطالب بعد ذلك تكلمنا في الدرس الثاني عن نموذج التسجيل وقلنا أن المستخدم يدخل عمر الطالب عند التسجيل ، ولكن هذه الطريقة غير مستحبة في الغالب ، لأنك لن تحصل على تاريخ ميلاد الطالب بسهولة ، وتاريخ الميلاد مهم جدا في عدة امور منها عمر الطالب عند التسجيل ، وعمر الطالب حاليا وعمر الطالب عند التخرج ، كذلك عند طباعة شهادة التخرج ، إذا الطريقة واضحة وهي أن يكتب المستخدم تاريخ الميلاد ويتم حساب العمر آليا ، ولكن كيف ذلك ، ننشئ وحدة نمطية (Module ) ونضع بداخله الكود التالي : Function Calcdate(vDate1 As Date, vdate2 As Date) Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths Mod 12 Calcdate = vYears & " &Oacute;&auml;&Eacute; &aelig;" & vMonths & " &Ocirc;&aring;&Ntilde;" '& vDays & "&iacute;&aelig;&atilde;" End Function و مهمة هذا الكود هي حساب الفرق بين تاريخين واستخراج الناتج على شكل سنه و شهر مثلا 12/03/2004 - 12/05/2009 = 5 سنه و 2 شهر أنا استبعدت اليوم وممكن أن تضيف اليوم فيما لو رغبت في ذلك .. وهذا الكود هو عبارة عن تفريعة ( Function ) ولها اسم ( Calcdate ) كما هو واضح من الكود ولها متغيرين الأول (vDate1 ) و المتغير الثاني (vdate2 ) وبكل بساطة نستدعي التفريعة مع تمرير متغيرين من أي مكان بالمشروع فيتم استنتاج الفرق ، على سبيل المثال Me.SAge = Calcdate(Me.borthDate, DateIn) borthDate = تاريخ الميلاد DateIn = تاريخ التسجيل كذلك في نموذج الطلاب ( نموذج رصد درجات الطلاب ) يتم حساب عمر الطالب الحالي بين تاريخ الميلاد و تاريخ اليوم ، من خلال الكود نفسه Me.txtAge = Calcdate(Me.borthDate, Me.txtDate) borthDate = تاريخ الميلاد txtDate = التاريخ الحالي الملف المرفق انتهى الدرس السابع مع تحيات / علوش الحربي ملاحظة : سوف يكون الدرس القادم إن شاء الله حول نموذج و جدول الغياب
  19. بسم الله الرحمن الرحيم الدرس السادس : في هذا الدرس سوف نتناول بعض عيوب وأخطاء البرنامج ، رجاء نزل الملف التالي ثم افتحه وتابع الدرس alloshone.rar عند فتح البرنامج لاحظ أن البرنامج يعرض اسم طالب ويعرض سجلات تراكمية لا تتعلق بأي طالب ، أنظر إلى الصورة . طبعا سوف يبدأ المستخدم بإدخال البيانات ، وهنا سوف تحصل كارثة خاصة إذا كان موظف جديد .. ما هو الحل ؟ كذلك انظر إلى نموذج البيانات التراكمية المرقمة على الصورة ( 1 2 ، 3 ، 4 ، 5 ، 6 ) وعددها 6 ، ما رأيك فيما لو أردنا إضافة مواد تراكمية أخرى مثل ( مطالعة ، جغرافيا ، انجليزي ، كمبيوتر .. الخ ) سوف تكون البيانات التراكمية محشورة في جزء بسيط من النموذج . ما هو الحل ؟ كذلك أنظر إلى بيان جنس الطالب ( المحاط بمربع احمر في الصورة ) يعرض الكلمتين ويضع علامة اختيار على جنس الطالب والمفروض أن يعرض جنس الطالب فقط بهذا الشكل ( ذكر ) فقط أو ( أنثى ) فقط ,, إذا ما هو الحل ؟ كذلك ما رأيك بصورة الطالب فيما لو طلب منك مدير المدرسة إضافة صورة للطالب ( لا تنسى أن صورة الطالب تابعة لبيانات تعريف الكتلة العمر ، الهواية ، الخ ) ما هو الحل ؟؟ كذلك أين تاريخ اليوم بالنموذج، وهو مهم جدا في حالة إدخال البيانات التراكمية المتعلقة بالفترة الزمنية ؟؟ أنظر إلى الصور التالية .. لاحظ فقرة تعريف الجنس كيف أصبحت محاطة بمربع احمر الملف بعد التعديل انتهى الدرس السادس مع تحيات / علوش الحربي ملاحظة : سوف تتوقف سلسلة الدروس لظروف السفر ثم نعاود إكمال المشروع إن شاء الله
  20. بسم الله الرحمن الرحيم : السلام عليكم ورحمة الله وبركاته ، في الحقيقة لم أجد تفاعل بالموضوع وهذا شيء استغربته ، وكنت اضن أن هناك من سيذكر عيب أو نقطة بالمشروع تحتاج تعديل ، أو يسأل عن ميزة مثلا ، وعلى هذا سوف اطرح هذا الدرس والدرس القادم إن شاء الله ، ثم أتوقف لفترة .. بسم ا لله وعلى بركة الله نبدأ درسنا الخامس .. الدرس الخامس : سوف نتكلم عن نقطتين مهمتين في النموذج الرئيسي ، إذا كنت قد نزلت البرنامج من المرفقات في الدرس السابق وفتحته ماذا تلاحظ ، هل لاحظت أن النموذج الرئيسي يسرد طلاب الصف الأول بمجرد تحديد الصف الأول ، و الصف الثاني والثالث والرابع .. إلخ ، كذلك عند تحديد طالب في مربع القائمة يتم عرض بيانات الطالب المحدد أي تصفية الطلاب والصف وهذه النقطتين سنتحدث عنها بشيء من الإيجاز .. في الحقيقة أن مهمة ا لتصفية تعتمد على كائنين تم إضافتهما للنموذج الأول مجموعة خيارات (selctLevel ) والثاني مربع قائمة ( findName ) . أنظر إلى الصورة أعلاه .. الكائن الأول أي مجموعة الخيارات ، حامل الصفوف ، طبعا أنا الذي كتبت الصفوف يدويا ليقوم المستخدم بتحديد الصف ، و هو كائن كبقية الكائنات على النموذج له خصائص وله ناتج وأحداث ، وعند تحديد الصف الأول مثلا يكون ناتج مجموعة الخيارات 1 و عند تحديد الصف الثاني 2 وعند تحديد الصف الثالث 3 .. وهكذا ، وبكل بساطة نضع باستعلام الكائن الثاني ( مربع القائمة ) ناتج الكائن الأول بحقل الصفوف لفلترة الطلاب أي لعرض طلاب الصف الواحد فقط ، لأن الصفوف تم تخزينها بالجدول على شكل أرقام ، ونضع بحدث ( عند النقر ) تحديث بيانات الكائن الثاني ( مربع القائمة ) . وبهذا يتم سرد الطلاب في مربع القائمة حسب الصف ، الكائن الثاني أي مربع القائمة وهو المسئول عن عرض سجلات الطالب التراكمية المراد تعديلها وكذلك التعريفية ، طبعا هذا الكائن أقصد مربع القائمة مصدر بياناته جدول الطلاب نفسه ، أي لم أكتب أنا أسماء الطلاب باليد مثل الكائن الأول ، ولا تنسى أن مصدر بيانات النموذج جدول الطلاب كذلك وهذا لا يهم ، و لكن المهم أن الكائن الثاني كبقية الكائنات على النموذج له خصائص وله ناتج وأحداث ، و ناتج الاختيار هو رقم الطالب أي الحقل ( IDS ) من جدول الطلاب ، وبهذا نضع باستعلام النموذج وفي حقل رقم الطالب ( IDS ) ناتج هذا الكائن ، وبهذا سوف يعرض النموذج طالب واحد فقط ، طبعا النموذج الفرعي مرتبط بعلاقة مع جدول الطلاب وبهذا سوف يسرد بيانات الطالب نفسه معتمدا على العلاقة .. أرجو أن تكون الصورة واضحة انتهى الدرس الخامس مع تحيات / علوش الحربي ملاحظة : سوف يكون الدرس القادم إن شاء الله حول عيوب النموذج وأخطاء البرنامج
  21. السلام عليكم ورحمة الله الدرس الرابع : هذا الدرس وكما ذكرت في نهاية الدرس السابق حول النماذج ، والنموذج هو عبارة عن كائن يتميز بالمرونة وتعدد الميزات وهو وسيط جيد بين الجداول أو الاستعلامات و المستخدم لإدخال البيانات أو عرضها .. كما أنه يعالج البيانات وينسقها والتنسيق من أهم ميزات النموذج وأنفعها ، في الدروس السابقة تطرقنا لأنواع البيانات ولكنك لم تدرك أهمية أنواع البيانات حتى الآن ، قبل أن نبدأ درسنا لهذا اليوم هات مسطرة وورقة وقلم ثم تخيل شكل النموذج وأرسمه ،، أنا تخيلته ورسمته بهذا الشكل : هذا هو شكل النموذج الذي تخيلته أنا ، طبعا ليس بالضرورة أن يكون دائما النموذج بهذا التقسيم ، ولك أن تخطط النموذج كيفما تشاء .. و لكن لابد أن تميز بين الأقسام بحيث يكون كل قسم يحمل نوع من أنواع البيانات ، وهذه إحدى الفوائد من معرفة أنواع البيانات ، والدور الذي تلعبه في تصميم النموذج ، القسم ( 1 ) هذا القسم خاص بتعريف الكتلة ( الصف ، الجنس ، تاريخ التسجيل .. إلخ ) وليس محرما أن تضع بداخلة بيانات محسوبة أو شيء من البيانات التراكمية مثل درجة آخر اختبار ، ولكن التنظيم في النماذج بسهل عمليات الصيانة والتعديل والإضافة والتغيير فيما بعد .. القسم ( 2 ) هذا القسم خاص بالكتلة البيانية ، طبعا في مشروعنا هذا الطالب وفي مشروع شئون الموظفين الموظف وفي مشروع المستودعات السلعة ..و في مشروع الصادر والوارد المعاملة .. و هكذا القسم ( 3 ) هذا القسم خاص بالبيانات التراكمية وفي مشروعنا هذا هي المواد ا لتي يدرسها الطالب ( الرياضيات ، القراءة ، .. إلخ وهذا القسم يعتمد علي جدول مستقل ويجب أن يكون على نموذج فرعي داخل النموذج الرئيسي القسم ( 4 ) هذا القسم خاص بالبيانات المحسوبة مثل مجموع الدرجات والمعدل .. الخ وهو جزء من النموذج الفرعي القسم ( 5 ) هذا القسم خاص بأزره النموذج مثل إغلاق النموذج أو طباعة تقرير .. الخ أولا ننشئ النموذج الفرعي : النموذج الفرعي ( frmData ) وهو نموذج مستمر و يعتمد على جدول البيانات التراكمية ( tblData ) و نضع كل الحقول ماعدا الرقم التسلسلي ( IDSR ) لأنه لا يعني شيء في البيانات التراكمية ، و ممكن أن يستبدل بمربع نص ذو أرقام تسلسلية محسوبة ( 1 – 2 – 3 ... إلخ ) طبعا تصفف الحقول وتنسق بشكل جيد ، بحيث يكون عنوان الحقل ( عنصر التراكم ) برأس النموذج والحقل ( قيمة التراكم ) في تفصيل النموذج ، والحقول المحسوبة ( البيانات المحسوبة ) في تذييل النموذج ، وفي مشروعنا هذا سوف نحسب مجموع الدرجات و المعدل و النسبة المئوية ، وأنت ممكن أن تضيف ما تشاء من البيانات المحسوبة .. أنظر إلى الصورة لابد أنك كنت تسأل نفسك فيما سبق عن الفائدة من تقسيم النموذج لرأس وتفصيل و تذييل ، و الآن ومن خلال معرفتك بالبيانات اتضحت لك الصورة ، أضف لمعلوماتك أن النماذج المستمرة مصممة للبيانات التراكمية بالذات ، و عادة ما يكون عنصر التراكم في الرأس ، والبيانات التراكمية في التفصيل ، والبيانات المحسوبة إما في التذييل ( و تسمى عمودية ) أو في التفصيل ( و تسمى أفقية ) سوف نتكلم قليلا ونشرح طريقة عمل حقول البيانات المحسوبة ، أولا الجمع أنظر إلى الصورة السابقة في المربع رقم 1 وهو لجمع درجات الرياضيات واسمه ( MathTotal ) ، كيف يجمع الدرجات ، من خصائص المربع وفي خانة مصدر عنصر التحكم في تبويبة بيانات اكتب الكود التالي ثانيا المعدل المربع رقم 2 وأسمه ( MathRate ) في الحقيقة أنا جعلت المعدل مجموع الدرجات على عدد الاختبارات ، وقد أكون مخطئ ولكن أنت عدل كما تراه مناسب ، والطريقة أن نقسم المجموع على عدد الصفوف طبعا المجموع موجود في المربع سابق الذكر ( MathTotal ) ثالثا النسبة المئوية المربع رقم 3 وأسمه ( MathAbrs ) في هذا المربع يتم حساب النسبة على اعتبار أن الدرجة الكاملة 80 درجة ، طبعا نقسم 80 على 100 ثم نظربها بالمجموع أنظر إلي الصورة التالية ثانيا ننشئ النموذج الرئيسي : طبعا سيكون اسمه (frmStudent ) و يعتمد بياناته من جدول الطلاب ومهمة هذا النموذج عرض و تحديد سجل الإدخال للطالب بمعنى أن هذا النموذج كدليل لإضافة بيانات تراكمية أو عرضها ، في القسم الثاني وهو قسم ألكتلة البيانية ( أول صورة في هذا الدرس ) نضيف مربع قائمة طبعا لا نكتب القيمة يدويا بل من جدول الطلاب نفسه والذي هو مصدر بيانات النموذج حتى يتم فلترة أو تحديد السجل من خلال الاختيار من مربع القائمة .. القسم الأول وهو تعريف الكتلة ( أول صورة في هذا الدرس ) سوف ننسق الحقول و نؤمنها حتى لا يكون هناك تغيير في تعريف الكتلة البيانية ( الطالب ) إنتهى الدرس الرابع مع تحيات / علوش الحربي ملاحظة : سوف يكون درسنا القادم أن شاء الله حول النموذج الرئيسي بشكل موسع allosh.rar
  22. السلام عليكم ورحمة الله الدرس الثالث : درسنا اليوم عن البيانات التراكمية وقلنا فيما سبق أن البيانات تنقسم إلى أربع أقسام قسم الكتلة البيانية وقسم تعريف الكتلة وقسم البيانات التراكمية و البيانات المحسوبة وقلنا أن الكتلة البيانية = اسم الطالب ( يجب أن تكون واحدة فقط ) و تعريف الكتلة = تاريخ التسجيل – العمر – الهواية ... إلخ البيانات التراكمية = هي البيانات التي تضاف بشكل دوري مثل درجات الطالب و الحضور والغياب و المشاركات .. إلخ البيانات المحسوبة = معدل الطالب ، نسبة الغياب ، عدد سنوات الدراسة .. إلخ ( عادة لا يكون لها جدول بقاعدة البيانات ) وقد تكون البيانات التراكمية أكثر من جدول ، وسوف نتكلم في هذا الدرس عن البيانات التراكمية بشكل أوسع لأنك عند تصميم برنامج لا بد أن تكون بارع في تصنيف البيانات ؟ والبيانات التراكمية تتكون من الفترة الزمنية و عنصر التراكم و القيمة التراكمية الفترة الزمنية : عبارة عن جزيء من الوقت ( شهر – يوم – ساعة – سنة ... الخ ) أو قيمة عددية ( 1 - 2 – 3 - 23 – 156 – 200 .. إلخ ) عنصر التراكم : هو صاحب الفعل أو المنسوب له العد مثل ( 70 درجة بالرياضيات ) العنصر الرياضيات أو ( بدأت إجازتي يوم السبت ) العنصر إجازتي أو ( ضرب خالد سعاد مرة واحدة ) العنصر هنا خالد وهكذا القيمة التراكمية : هي قيمة الفعل أو العد مثل ( 70 درجة بالرياضيات ) القيمة هنا 70 أو ( بدأت إجازتي يوم السبت ) القيمة هنا السبت أو ( ضرب خالد سعاد مرة واحدة ) القيمة مرة واحدة وسعاد هنا قيمة عددية وهكذا أنظر إلى هذه الصور و قد حاولت أن اطرح اكثر من نوع من أنواع القيم التراكمية لابد أنك بدأت تميز بين البيانات وتعرف كيفية تركيب البيانات وخاصة البيانات التراكمية لأن براعتك في جداول البيانات التراكمية هي براعتك في التصميم والدليل ( حاول أن تضيف جدول بيانات تراكمي ثاني للمشروع يتعلق بالحضور والغياب لن تستطيع ) ، الآن نعود إلى درسنا وهو الجدول الأول للبيانات التراكمية في مشروعنا (tblData ) ، وهو عبارة عن جدول بسيط عبارة عن حقل ترقيم تلقائي وحقل تاريخ لحفظ الفترة الزمنية وحقل الربط ( IDSR ) لتتمكن من ربط هذا الجدول مع جدول الطلاب (tblStudent ) ، ثم تأتي عناصر التراكم و هي هنا المواد التي سوف يدرسها الطالب ( الرياضيات – القراءة – الخط - المطالعة ... الخ ) انظر إلى الصورة ولاحظ نوع بيانات الحقول العلاقة بين الجدولين سوف تكون علاقة رأس بأطراف وطريقة إنشاء العلاقة بين الجدولين من نافذة العلاقات وبعد إضافة الجدولين ، اسحب الحقل ( IDS ) من جدول ( tblStudent ) إلى الحقل ( IDSR ) في جدول ( tblData ) حدد خيار فرض التكامل حتى لا يكون بجدول البيانات التراكمية سجل لا يتعلق بأي طالب ( سجل يتيم ) الآن انتهينا من عملية الربط أو العلاقة بين الجدولين ولكن ما هو السجل اليتيم ؟ أنظر إلى الصورة التالية : لاحظ في الصورة أن السجل التاسع في جدول البيانات التراكمية في حقل ( IDSR ) يحمل الرقم 2 ولا يوجد طالب بهذا الرقم وبهذا يكون هذا السجل يتيم ... و ممكن أن تسأل نفسك من الذي اخذ 10 درجات في الرياضيات ؟ و فرض التكامل يمنع تولد سجل بهذا الشكل أو سجل يتيم . بهذا نكون قد انتهينا من جدول البيانات التراكمية الأول وكذلك العلاقة حاول أن تصمم بنفسك نموذج عرض البيانات وتعديلها بشكل جيد يستقي بياناته من وإلى جدول البيانات التراكمية ( tblData ) حاول أن تضيف مثلا مجموع الدرجات و المعدل . إنتهى الدرس الثالث مع تحيات / علوش الحربي ملاحظة سوف يكون الدرس القادم إن شاء الله حول نموذج عرض البيانات التراكمية وتعديلها ونموذج عرض بيانات الطالب
  23. السلام عليكم ورحمة الله الدرس الثاني : في هذا الدرس سوف نتطرق لنموذج إدخال البيانات طبعا الحقول هي اسم الطالب العمر الهواية تاريخ التسجيل ... الخ قد يبدو لك من الوهلة الأولى أن الأمر بسيط يعني ننشئ نموذج يستقي بياناته من وإلى الجدول وننسق الحقول وانتهى الأمر ، لا ليس الأمر كذلك دعنا نتحدث عن حقل تاريخ التسجيل على سبيل المثال ، سوف تكون قيمته الافتراضية هي تاريخ اليوم ، و لكن لو فرض أن موظف التسجيل لديه 30 طالب سوف يضيفهم إلي قاعدة البيانات بتاريخ أمس ، معنى هذا أنه سوف يدخل تاريخ التسجيل كل مرة يضيف بها طالب . ولو كانوا كل الطلاب الثلاثين في الصف السادس والوضع الافتراضي لحقل الصف هو الصف الأول معنى هذا أنه سوف يختار من قائمة تحرير وسرد الصفوف ، الصف السادس في كل مرة يدخل بها طالب إضافة لاسم الطالب وعمرة و هوايته وجنسه ... الخ الخطوة الاولى : أنشئ نموذج إدخال بيانات يعتمد على الجدول السابق tblStudent وأطلق عليه frmStudentRec أضف الحقول التالية ( الرقم - الاسم - العمر - الهواية ) فقط بقية الحقول ستتلقى البيانات من النموذج من خلال زر الحفظ إذا الحقول الموجودة على النموذج هي الرقم والاسم والعمر والهواية أما تاريخ التسجيل والجنس والصف فغير موجودة . دعنا نتكلم أولا عن ألحقول الموجودة على النموذج الرقم التلقائي (IDS ) أو الرقم التسلسلي : مؤمن وغير قابل للتحرير و من الأفضل إضافة حقل خاص برقم الطالب يكتب يدويا إضافة إلى الرقم التلقائي . الاسم ( Name ) : سوف يكتبه المستخدم في مربع اسم الطالب و كذلك العمر (borth ) الهواية ( avocation ) :سوف ننشئ قائمة تحرير وسرد ونظيف بها الهوايات بدويا ما أمكن كرة القدم – كرة السلة - السباحة .. إلخ و نطلق عليها ( inAvocation ) إذا الهوايات الآن في قائمة تحرير وسرد ، و سوف تحقن بمربع نص الهواية ولكن كيف ذلك في حدث عند التغيير لقائمة التحرير والسرد نكتب الكود التالي : نجعل مربع نص الهواية ( avocation ) فوق قائمة التحرير والسرد تماما ( inAvocation ) بحيث تسمح للمستخدم إما أن يختار من القائمة أو أن يكتب في مربع النص المربوط بالجدول مباشرة . أنظر إلى الصورة من المفروض عندما يختار المستخدم الهواية ( السباحة ) مثلا أن لا تتغير هذه الهواية مع الطالب الآخر إلا إذا المستخدم غيرها ، كيف ذلك نجعل قيمة مربع الهواية الافتراضي ما تم اختياره من قائمة التحرير والسرد . انظر إلى الصورة ثانيا : الحقول الغير موجودة على النموذج : الصف (level ) : سوف ننشئ قائمة تحرير وسرد ونظيف بها الصفوف ( الصف الأول – الصف الثاني .. إلخ ونطلق عليها اسم (inLevel ) هذه الخطوة فيها شيء من التعقيد ، لا تنسى أن حقل الصف من نوع رقم بينما قائمة التحرير والسرد بها أسماء الصفوف نص هكذا ( الصف الأول – الصف الثاني – الصف الثالث .. الخ ) ما هو الحل ، الحل نظيف عمود آخر للقائمة وتضع أمام كل صف رقم الصف ، لأن الرقم هو الذي سوف يخزن بالجدول بحقل (level ) عن طريق زر الحفظ ( cmdSave ) أنظر إلى الصورة . تاريخ التسجيل (txtDate ) : وهو عبارة عن مربع غير منضم على النموذج وقيمته الافتراضية تاريخ اليوم و قناع الإدخال تاريخ و سوف يخزن بالجدول بحقل (DateIn ) عن طريق زر الحفظ ( cmdSave ) الجنس (pullet ) : سوف ننشئ مجموعة خيار على النموذج ونطلق عليها اسم (Insex ) ونربطها بحقل الجنس بحيث يكون حقل الجنس إما 1 وتعني ذكر أو 2 وتعني أنثى ، و من الممكن أن يكون العكس انظر إلى الصورة انتهى الدرس الثاني مع تحيات / علوش الحربي ملاحظة سوف يكون الدرس القادم إن شاء الله حول جدول البيانات التراكمية db8.rar
  24. في البداية السلام عليكم ورحمة الله وبركاته سوف نبدأ مع بعض بدروس منتظمة و من خلال هذه الدروس سوف نستفيد من خبرات بعض والطريقة ليست كالطريقة المعتاد بل هي طريقة تعليمية و بناءة وسوف نصمم برنامج احترافي وبالطريقة الصحيحة و السليمة .. وأرجو ممن لديه خيرة أو دراسة أو دراية أن لا يبخل على المحتاجين أمثالي بالمساعدة في الشرح وعلي الراغبين بتعلم الأكسس المشاركة و تنفيذ التمارين .. التمرين هو عبارة عن مدرسة ابتدائية سوف نتطرق لأمور تبدو للمبتدأ صعبة وهي على العكس من ذلك أو قد تكون صعبة بالفعل ومن خلال التمارين سوف تسهل عليه .. بسم الله نبدأ المقدمة : عند التفكير في برنامج مدرسة أو مخازن أو شئون موظفين في البداية هناك أساسيات لبناء البرنامج فمثلا في برنامجنا الحالي ( المدرسة ) هي عبارة عن فصول و طلاب و مواد دراسية ..الخ انظر إلى الصورة هل تخيلت البرنامج من خلال هذه الصورة ؟ بالطبع لا لأن كل البيانات التي في الصورة ثابتة أو بمعنى أخر ليس من الضروري تغييرها .. فمثلا الجنس سواء كان ذكر أو أنثى لا يمكن أن تغيره بأي حال من الأحوال كذلك الاسم و العمر وهو عمر الطالب عند التسجيل وعندما تتخيل البرنامج بهذه الطريقة في الحقيقة تصاب بالإحباط لأنه لا داعي لتصميم برنامج أصلا مع ثبات البيانات ويكفي رصدها بجدول . ولكن ومن خلال هذه البيانات يتبين لنا أن هناك بيانات سوف تتعلق بها والبيانات تنقسم إلى أربع أقسام قسم الكتلة البيانية وقسم تعريف الكتلة وقسم البيانات التراكمية و البيانات المحسوبة الكتلة البيانية = اسم الطالب ( يجب أن تكون واحدة فقط ) تعريف الكتلة = تاريخ التسجيل – العمر – الهواية ... إلخ ( لاحظ أنها تعرف الكتلة ) البيانات التراكمية = هي البيانات التي تضاف بشكل دوري مثل درجات الطالب و الحضور والغياب و المشاركات .. إلخ البيانات المحسوبة = معدل الطالب ، نسبة الغياب ، عدد سنوات الدراسة .. إلخ ( عادة لا يكون لها جدول بقاعدة البيانات ) الأنواع الثلاث ألأول من البيانات أنت ومستخدم البرنامج مسئول عنها أي خطأ في هذه الأنواع الثلاث أما أنت مخطئ في تصميم البرنامج أو المستخدم مخطئ في إدخال البيانات أما القسم الرابع فإن ميكروسوفت هي المسئولة عنها . عند استعراض بعض مشاركات الأعضاء في هذا المنتدى المعطاء ، تجد أسئلة غريبة لا تعلم لماذا يضيف حقل بجدول المبيعات يرصد بيانات محسوبة ولماذا يضيف قائمة تحرير وسرد لأشياء لا يمكن حصرها ، ولا تعرف ما هي الكتلة البيانية من البيانات المحسوبة في تصميمه ؟؟ نقطة حوار : علوش : برنامج الأكسس تكمن القائدة منه في البيانات المحسوبة والمرتبطة بتغير الزمن أو الكمية . ؟ المتدرب : هذي النقطة ما فهمتها يا ليت توضح أكثر علوش : ولا يهمك ،، طالب اخذ في مادة الرياضيات 20 درجة في الشهر الأول وفي الشهر الثاني 30 هنا ممكن أن يستخرج البرنامج النسبة المئوية أو المعدل أو حاصل الجمع أو .. أو .. إلخ المتدرب : طيب هذا بتغير الزمن عرفناها و النقطة الثانية . علوش : أي نقطة ثانية ؟ المتدرب : الكمية ؟ علوش : أها النقطة الثانية وهي الكمية أي تغير الكمية ومن أروع الأمثلة للكمية هي عند تسجيل الطلاب في المدرسة ونفرض أن استيعاب المدرسة 120 طالب عند تسجيل الطالب رقم 120 يتوقف البرنامج عن التسجيل ويغلق نموذج التسجيل ..وهناك قاعدة بيانات ضخمة بالصين يتم تسجيل المواليد بها و المتوفين ومن خلال هذه القاعدة يعرفون نسبة الزيادة السنوية أو الشهرية ..أو نسبة المواليد للوفيات .. إلخ هل عرفت الكمية الآن . المتدرب : والله روعة برنامج الأكسس .. -------------- في تصميم بعض البرامج يتورطون المبرمجين في تغيير الكتلة البيانية أو تعريف الكتلة ويضاف نموذج يطلق عليه ( frmRepair ) ومهمة هذا النموذج هي تغيير الكتلة البيانية أو تعريف الكتلة في الصورة السابقة هل تخيلت الجدول وكيف سننشئه وما هي الحقول المطلوبة انظر إلى هذه الصورة في الصورة لاحظ أن كل البيانات في جدول واحد لأنها الكتلة البيانية و تعريف الكتلة ، أما البيانات المحسوبة و البيانات التراكمية سوف نتطرق لها في الدروس القادمة إن شاء الله .. عند إنشاء جدول تجنب اللغة العربية في تسمية الحقول أو تسمية الجدول نفسه وإذا كانت اللغة الانجليزية تصعب عليك فحاول أن تسميها بطريقة ( انجلوعربية ) فمثلا حقل الاسم Isam وحقل العمر Omer وهكذا ، في تسمية الجداول يجب أن يبدأ الاسم بالأحرف tbl فمثلا جدول الطلاب tblStudent أو tblTollab ، أما النماذج تبدأ بالأحرف frm فمثلا نموذج التسجيل frmStudentRec والاستعلام qry وسوف نتطرق للفائدة من هذه التسمية الجدول الأول في مشروعنا هو tblStudent سوف ننشئ نموذج يستقي بياناته من هذا الجدول ماذا سيكون اسمه سوف يكون اسمه frmStudent كذلك عند إنشاء استعلام لفلترة الصفوف مثلا ماذا سيكون اسمه سوف يكون اسمه qryStudentLvl كذلك عند إنشاء نموذج تسجيل الطلاب سوف يكون اسمه frmStudentRec الآن بمجرد استعراضك للجداول والنماذج والاستعلامات سوف يسهل عليك معرفة الترابط إضافة إلى ذلك أنك تميز بين النموذج والجدول والاستعلام بسهولة تصور لو أن الجدول اسمه Retnag والنموذج ا سمه Ratnej كيف يمكنك التميز بين النموذج والجدول ، لا تنسى أننا بصدد إنشاء برنامج احترافي وعليك بالتقيد بالتعاليم ما أمكن ؟ ثم أنشئ نموذج frmStudentRec لحقن البيانات بالجدول ، حاول أن تخفف على المستخدم البيانات المدخلة من خلال النموذج يعني أضف قائمة تحرير وسرد ليختار منها المستخدم الصف كذلك اضف قائمة تحرير وسرد ليختار منها الهواية وإذا كانت الهواية غير موجودة بقائمة التحرير والسرد يكتبها بمربع النص ، اجعل تاريخ التسجيل الافتراضي هو تاريخ اليوم نفسه . و إلى إلقاء في الدرس القادم مع تحيات / علوش الحربي ملاحظة : سوف يكون الدرس القادم حول نموذج الإدخال
  25. إذا كنت تقصد بالادخال في الموذج الفرعي لا يمكن ان ينتقل المؤشر لزر الطباعة على النموذج الأساسي الا بواسطة الفأرة والحل هو نقل زر الطباعة للنموذج الفرعي .. إذا انقل زر الطباعة إلى النموذج الفرعي .. مع تحديد رقم التاب كما يجب وتقبل تحياتي
×
×
  • اضف...

Important Information