أخواني امل مساعدتي في توضيح فائدة الربط بين الجداول وماهي أهم شروط الربط بين حقل في جدول وحقول اخرى في جدول أخر من نوع واحد ألى متعدد وهل لابد أن يكون الحقل موجودا في الجدولين لكي يتم الربط لأنها لم تنجح معي بعد عدة محاولات .
استفسار خاص بالجداول والعلاقات
الربط بين الجداول هو ميزة قواعد البيانات العلائقية وأهمية الأساسية عدم تكرار البيانات عند إدخال كل سجل جديد مثال ذلك ، لو كان لدينا مبيعات نحتاج فيها الى تسجيل بيانات العملاء الشخصية كأسمه وهاتفه وعنوانه وشركته وغير ذلك ونحتاج الى تسجيل المبيعات لهذا العميل فلو جعلنا الجميع في جدول واحد سنظطر الى تكرار البيانات الشخصية كلما سجلنا له عملية بيع جديدة ارجو أن يكون المثال قد وضح لك .
ومن شروط الربط تمثل نوعي الحقل وحجمه فلايصح ربط نص برقم ولا رقم بايت بعدد صحيح أما الاسم فغير مهم ولكن الأفضل أن يكون الاسم نفس في كل الجدولين في مثالنا السابق نضع حقل رقم العميل في جدول البيانات الشخصية من نوع ترقيم تلقائي ورقم العملي في المبيعات من نوع صحيح طويل .
واي استفسارات أخرى ؟
ولك تحياتي
يفيد الربط بين الجداول في الأتي:
1 _ يكون الجدول في قاعدة البيانات صغيراً لأنه يحتوي على حقول قليلة ترتبط بمجموعة واحدة من المعلومات0
1_زيادة كفاءة تنظيم البيانات وإظهار البيانات بأشكال مختلفة
3_زيادة كفاءة إدارة البيانات لأنه يمكن التعامل مع البيانات لأن الجداول تكون حقولها قليلة وبالتالي يسهل التعامل معها بعكس الجداول التي تحتوي على كل المعلومات فتكون البيانات فيها كبيرة جداً ومعقدة0
4_ منع تكرار البيانات التي لا داعي لتكرارها ويكفي ورودها مرة واحدة0
أنواع الجداول في العلاقات نوعان:
النوع الأول :الجدول الرئيسي وهو الذي يكون المفتاح الأساسي فيه مفهرس وبدون تكرار والسجل الواحد يقابله أكثر من سجل في الجدول المرتبط0
النوع الثاني: الجدول المرتبط فيه يقابل مجموعة سجلات سجل واحد في الجدول الرئيسي0
أما الشروط التي أعرفها فهي:
1_ لابد أن يكون نوع بيانات الحقول متساوية أما أن تكون كلها من نوع رقم أو ترقيم تلقائي أو نص ويفضل دائماً أن تكون حقول الربط أرقام ولكن ذلك ليس إلزاماً0
2_ لابد أن يكون حقل الربط مفتاح اساسي خاصة في الجدول الرئيسي ومفهر بدون تكرار
* ولا بد أن يكون حقل الربط موجود في جميع الجداول فعندما تريد البحث عن موظف وعرض أجازاته ودوراته وكل معلومات في جدول منفرد كيف يعرض الكمبيوتر أو البر نامج أجازات ودورات هذا الموظف الكمبيوتر آلة ولا يستطيع التعرف على الأشياء وربطها ببعض إلا بواسطة شيء يدل عليه0
هذا ما استطعت أن أفيدك به _____ السؤال قصير ولكن الإجابة عليه طويلة جداً وليس لدي الأن الوقت الكافي في الإيضاح والإجابة بشكل دقيق وقد أكون نسية شيئا إنما الرجاء الرجوع إلى الكتب الخاصة بأكسيس ففيها تجد شرح مفصل وحاول اتباع الأمثله حتى تتمكن من ذلك0
وأرجو لك التوفيق من الله0
مشكور ياخوان ولكن ارجو أن يكون هناك مثال فا لأمثلة افضل في الإستفادة والتوضيح وتقبلوا تحياتي
اعطيك مثال بسيط اخي الهيثم
لو فرضا ان ملف فواتير المبيعات يحتوي على رقم الفاتورة - تاريخها - العميل
وحقل تفاصيل الفاتورة يحتوي على
رقم الفاتورة - رقم الصنف - اسم الصنف - الكمية - سعر البيع
ولكن لو نظرت جيدا تجد ان اسم الصنف ممكن ان يتكرر اكثر من مرة في ملف تفاصيل الفاتورة
وكذلك ممكن تكون للعميل اكثر من فاتورة
يعني اسمه راح يتكرر اكثر من مرة وكذلك الصنف
ولو قمت بتعديل في بيانات اي من العميل او الصنف راح يقوم برنامجك بالبحث عن جميع هذا الصنف او العميل ويقوم بعملية التعديل اكثر من مرة
وكذلك لا ننسى موضوع اخر ومهم وهو المساحة التخزينية
فرضا لو كان في تفاصيل الفاتورة 10 الاف صنف ، وطوبل حقل اسم الصنف 50 راح تكون هناك اهدار للمساحة التخزينية ولكن يمكن تفادي هذه المشاكل بالاتي
هو ان نقوم بربط علاقة بين ملف تفاصيل الفاتورة بملف الاصناف
وملف الفاتورة بملف العملاء
وبدلك يكتب اسم الصنف مرة واحدة فقط ونفس الشي للعميل
ويتم الربط بين الحقلين ب رقم
وهذا ما يعرف بعلاقة راس باطراف
ارجو ان اكون قد اوضحت
لك تحياتي
لا يتعلم العلم كل مستحي او مستكبر
الأخ 5060
بالنسبة لـ "أنواع الجداول في العلاقات نوعان: " وجعلتهما جدول رئيس وجدول مرتبط وقد وضحت أن الأول هو الذي يكون فيه المفتاح الأساسي ، وفي رأيي أن هذا التعريف خاص بالعلاقة رأس مع أطراف فقط ولاينطبق على كل الجدول في كل العلاقات فالجدول في العلاقة رأس برأس وكذلك الجدول في العلاقة أطراف مع أطراف لاينطبق عليه هذا التقسيم فالأول يوجد في كلاهما مفتاح رئيس والثاني لايوجد في كلاهما مفتاح رئيس .
في الشروط "لابد أن يكون حقل الربط مفتاح اساسي خاصة في الجدول الرئيسي ومفهرس بدون تكرار " يلزم ذلك في حالة الرأس مع الأطراف .
وهذه أسطر كتبتها في أحد المواضيع لزيادة الإيضاح :
العلاقات ثلاثة أنواع :
1- رأس مع رأس وفيها كل سجل في جدول (أ) لايمكن أن يقابله أكثر من سجل في جدول (ب) وكذلك سجل (ب) لايمكن أن يقابل أكثر من سجل في (أ) .
2- رأس مع أطراف : كل سجل في جدول (أ) يمكن أن يقابله عدة سجلات في جدول (ب) وكل سجل في (ب) يمكن أن يطابقه سجل واحد فقط في (أ) .
3- أطراف مع أطراف : كل سجل في (أ) يمكن أن يقابله عدة سجلات في (ب) وكل سجل في (ب) يمكن أن يقابله عدة سجلات في (أ)
وللجميع التحية
بارك الله فيك أخي الفاضل/ ابو حمود ما قدمته صحيح وشكراً لك على متابعة ردودي وتصحيح الأخطاء وإنما كان شرحي رداً على سؤال الأخ الذي يقول فيه "وماهي أهم شروط الربط بين حقل في جدول وحقول اخرى في جدول أخر من نوع واحد إلى متعدد" يعني رأس بأطراف ولم أتطرق لكل العلاقات رأس برأس ورأس بأطراف وأطراف بأطراف وكان ردي محصوراً على السؤال فقط0
لك شكري وتقدير استاذي الفاضل0
لم انتبه لما السائل في سؤاله جيداً فعذراً على التعجل .
وفقك الله وأعانك .
ولك تحياتي وشكري
لك الحق في ذلك فعلاً لقد أخطأت في استخدام العبارة "أنواع الجداول في العلاقات نوعان" وكان يجب علي استخدام عبارة أوضح مثل : انواع الجداول من حيث العلاقة رأس بأطراف ولا استخدم عبارات التعميم في محل التخصيص حتى يفهم المقصود0
وفقنا الله جميعاً وسدد خطانا0
يظل السوال في راسي نفسه هو كيف يمكن تثبيت المفتاح الرئيسي والمفاتيح التي تسمى الغريبة او المساعدة على ما أظن وكيف عمل قاعدة بيانات في مثال مبسط, لاني اعمل على نسخة من الاكسس انكليزية ارجو التوضيح أن أمكن..وشكرا
الحقيقة انا عندي امتحان يوم الاثنين بهذا الموضوع وكيفية تنفيذه بالربط مع تصميم صفحات الانترنت ولذلك ولحساسية ولقصر الفترة الزمنية ولتجنب الازعاج لباقي المجموعة ولكوني من النوع الذي اذا شرح له مباشرة وبالتسلسل القط المعلومة على السريع لذلك لا حبذا لو تبرع احد الاخوة الاتصال المباشر معي على احد هذين البرنامجين للمساعدة المباشرة ليجازيه الله خيرا ويوفقه وهما : الام اس ان وعنواني هو alhakeem2001@hotmail.com
او الياهو مسنجر ID هو: alhakeem2001
الأخوة الأفاضل :
جزاكم الله خيرآ على هذا الشرح الجميل
عندي سؤال في الموضوع أريد الكود الذي يظهر لي عبارة تنبيه و ذلك
عندما أقوم بحذف سجل من جدول الرأس و أنا موجود على نموذج يظهر به سجلات الجدول الرأس فقط وسجل الأطراف غير ظاهر بالنموذج أريد رسالة تنبيه عن ان السجل المطلوب حذفه مرتبط بسجلات في جدول الأطراف وأنا أعرف أن الأكسيس يظهر ذلك التنبيه و لكنني أريد التنبيه بواسطة Msgbox أضعه أنا بحيث يناسب محتوى الجدوالين الذين أعمل عليهما
وضح هذه العبارة أكثر أخي محسن "و لكنني أريد التنبيه بواسطة Msgbox أضعه أنا بحيث يناسب محتوى الجدوالين الذين أعمل عليهما" مامعنى يناسب محتوى الجدولين ؟
ولك تحياتي
أعتقد أن الأخ محسن يقصد أن تكون عبارة التنبيه مناسبة لنوعية البيانات المحذوفة ، وأنا لهذا أستخدم الكود التالي في حدث عند النقر لزر :
If MsgBox("أنت على وشك حذف هذه الفضية وما يرتبط بها من بيانات كالتوريد والأحكام والجلسات " & vbCrLf & vbCrLf _
& "هل ترغب في حذف هذه القضية وما يرتبط بها من بيانات بالتأكيد؟؟ " & vbCrLf & vbCrLf _
& "انقر نعم للحذف .. انقر لا للتراجع .", vbYesNo, "تأكيد الحذف") = vbYes Then
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
End If
هذا الموضوع مغلق.