اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

أحمد الحربي

المشرفين السابقين
  • Posts

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

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

  • Days Won

    1

كل منشورات العضو أحمد الحربي

  1. أحسنت أخي الكريم وبارك الله فيك .. وزدنا أما أنا فإني أعتذر للإخوة الكرام عن توقف الدروس لمشاغل أرجو أن تنتهي قريباً بإذن الله تعالى وبعدها سنكثف الدروس بالتتابع
  2. الأخ الكريم سعيد الواحدي .. لو أرفقت الملف لكان أولى .. في الحقيقة لم توضح في أي شيء من البرنامج فشلت ؟ هل في فكرة البرنامج ؟ أم مشاكل برمجية اعترضتك ؟ أم في طريقة ؟ أم شيء آخر ؟ لو توضح لكان أفضل طريقة إرفاق الملف : اضغط على (تعقيب) ثم في قسم المرفقات اضغط على (prowse)
  3. ظلل الجداول ثم من قائمة جدول اختر تحويل ثم اختر جدول إلى نص
  4. من قائمة Tools ا---> References ثم أضف المرجع : Microsoft DAO 3.6 Object Liprary أو إي إصدار منها
  5. مخطط قاعدة البيانات Database Diagram =========== * ملاحظة : الحقول والأعمدة هي بمعنى واحد . * ملاحظة أخرى : لا يتم اعتماد أي تغيير أو إضافة للجداول حتى تقوم بحفظ المخطط .. ( لذا إذا كنت في شك من التعديلات التي قمت بها في المخطط فأغلق المخطط دون حفظه ) وعند الحفظ تظهر رسالة تطلب التأكيد * ملاحظة ثالثة : الجدول الذي يظهر في شريط عنوانه علامة النجمة يدل على أنه لم يتم حفظه بعد -------- تمكنك مخططات قواعد البيانات أو ( الرسم التخطيطي لقاعدة البيانات ) من إدارة جداول قاعدة البيانات بالكامل كما أنه يعطيك تصوراً رائعاً عن الهيكل العام لقاعدة البيانات فبنظرة فاحصة لمخطط عمله مصمم آخر غيرك ستعرف سير قاعدة البيانات وهيكلتها غير أن أهم أربعة إيجابياتها هي : 1- تعدد المخططات : فبإمكانك إنشاء عدداً من مخططات قاعدة البيانات . وهذا يتيح لك رؤية أوضح للجداول وعلاقاتها مع بعضها البعض . 2- التغيير في الجداول وإنشائها : 3- إنشاء العلاقات . 4- التعليقات الموضحة بنوعيها للمخطط ولخطوط العلاقات . يمكنك من خلال مخطط قاعدة البيانات عمل الآتي :· - إنشاء جدول جديد في قاعدة البيانات : ( انقر على مخطط ثم جدول جديد ) · حذف جدول من القاعدة : ( انقر بزر الماوس الأيمن على الجدول الذي تريد حذفه ثم اختر حذف الجدول من قاعدة البيانات ) انتبه : عند حذفك لجدول من مخطط سيتم حذفه من القاعدة ككل وبالتالي حذفه من جميع المخططات الموجود بها . · إضافة جدول موجود في القاعدة إلى المخطط : (( انقر بزر الماوس الأيمن في المكان الفارغ في المخطط ثم اختر إظهار جدول ثم وسع الجداول ثم اسحب الجدول المطلوب إلى المخطط ) · تغيير خصائص الجداول : ( انقر بزر الماوس الأيمن على الجدول ثم اختر خصائص الأعمدة ) وغير ما تريد انتبه : ستسري هذه التعديلات حيثما وجد الجدول · إضافة أو تعديل قيود التحقق من الصحة للجداول : (انقر بزر الماوس الأيمن على الجدول ثم اختر خصائص ثم اختر تبويب Tables ) · لإزالة جدول من المخطط قم بإخفائه ولا يعني هذا حذفه من قاعدة البيانات : (انقر بزر الماوس الأيمن على الجدول ثم اختر إخفاء الجدول ) · إضافة حقول إلى الجداول : ( من قائمة إدراج اختر صفوف ) · حذف حقول من الجدول : (انقر بزر الماوس الأيمن على الصف ثم اختر حذف صفوف ) · عرض الجداول من خلال خمسة طرق للعرض : 1- عرض خصائص الأعمدة وفيها تظهر الخصائص كاملة : (انقر بزر الماوس الأيمن على الجدول ثم اختر خصائص الأعمدة ) يفيد هذا في رؤية خصائص الجدول بوضوح 2- عرض أسماء الأعمدة وفيها يتم طي الجدول ويقتصر على أسماء الحقول فقط : (انقر بزر الماوس الأيمن على الجدول ثم اختر أسماء الأعمدة ) يفيد هذا إذا أردت معرفة أسماء الحقول لعدد أكبر من الجداول 3-عرض الاسم فقط وفيها يتم طي الجدول عن الخصائص والحقول ويقتصر على اسم الجدول فقط . يفيد هذا في رؤية أكبر قدر من الجداول وعلاقاتها مع بعضها 4- عرض مفاتيح وفيه يتم الاقتصار على المفاتيح الأساسية والخارجية : (انقر بزر الماوس الأيمن على الجدول ثم اختر مفاتيح ) يفيد هذا في رؤية المفاتيح الأساسية والخارجية لكل جدول لرؤية أفضل للعلاقات بين الجداول 5- عرض مخصص وفيه يتم الاقتصار على ثلاثة خصائص من خصائص الحقول وهي ( اسم الحقل ، ونوع الحقل ، ومطلوب(يقبل قيمة فارغ أم لا) . ويمكنك إضافة خصائص أخر ( من قائمة مخطط اختر تعديل العرض المخصص ثم حدد الخاصية في قسم Available Columns الأعمدة المتاحة ثم انقر السهم < لإضافتها إلى العرض المخصص . · للترتيب التلقائي للمخطط : ( انقر بزر الماوس الأيمن في المكان الفارغ في المخطط ثم اختر تخطيط المخطط ) · إضافة تعليق للمخطط لفهم عمل هذا المخطط : ( انقر بزر الماوس الأيمن في المكان الفارغ في المخطط ثم اختر تسمية جديدة ثم اسحبها إلى المكان المناسب في المخطط كأن تكون أعلى المخطط ) · إضافة تعليق لخط العلاقة لفهم عمل هذه العلاقة : ( من قائمة مخطط اختر إظهار تسميات العلاقة ثم انقر بزر الماوس الأيمن على التسمية واختر خصائص وفي تبويب Relationships العلاقات انقر داخل حقل اسم العلاقة Relationship name ثم ادخل تسمية مناسبة للعلاقة توضح عملها ) · لتكبير نافذة المخطط أو تقليصها لرؤية عدد أكثر من الجداول : (انقر بزر الماوس الأيمن في المكان الفارغ في المخطط ثم اختر تكبير/تصغير ثم اختر النسبة المئوية المناسبة ) · لتحديد مجموعة من جداول متفرقة داخل المخطط : ( احتفظ بالضغط على زر Ctrl ثم قم بالنقر على الجداول المراد تحديدها ) · لتحديد مجموعة من جداول متقاربة : ( انقر بالماوس في المكان الفارغ ثم احتفظ بزر الماوس مضغطوطاً واسحب بالمرور على الجداول المطلوبة ) · لتقديم عمود على عمود آخر في الترتيب : ( قص العمود ثم اذهب إلى المكان المناسب وألصقه ) · طباعة المخطط ( تأكد من الترتيب الصحيح للجداول داخل المخطط ثم قم بطباعته )
  6. أخي الكريم .. فتش في هذا الرابط فهو مفيد وإن شاء الله تجد طلبك من هنا
  7. لا شكر أخي مصلح فقد تعلمنا منك الكثير وصدقت فإنها تسلية جميلة التلاعب بالبيانات عن طريق الأكواد والشروط المتنوعة والمتعددة أما أن تكون أحد تلاميذي فهذه لا أقبلها ولكن قل نستفيد من بعض ونتبادل الخبرات فيما بيننا وبخصوص الجوانب التي ذكرتها فهي جوانب كبيرة وسنأتيها إن شاء الله إن كان في العمر متسع ولكني رتبت نفسي على التسلسل فقريباً سأضع درساً في التخطيط ثم العروض ثم نأتي سوياً إلى الإجراءات المخزنة وبخصوص الأمان فشيء عجيب في هذا البرنامج فبإمكانك إعطاء الصلاحيات لقاعدة محددة لشخص محدد وكذلك العروض والجداول والإجراءات المخزنة بل إن هناك نظم عمل تقوم به الإجراءات المخزنة بحيث تجعل إدخال البيانات عن طريقها مما يجعل الجداول في مأمن من التغيير .. أيضاً قاعدة بيانات آكسس بالإمكان حذفها من الجهاز أما ملفي قاعدة البيانات في السيرفر فلا يمكن حذفها ولا نسخها ما دام السيرفر في حالة التشغيل فلأجل نسخها لنقلها إلى سيرفر آخر ستضطر إلى إيقافه أولاً ثم نسخها .. عموماً الحديث يطول في هذا الجانب وعندما يحين وقته يكون لكل حادثة حديث
  8. حياك الله أخي مصلح وعليكم السلام ورحمة الله وبركاته وبعد : فبالنسبة للسؤال الأول وهو البحث ويدخل فيه ضمناً السؤال الثاني وهو التصفية فلا يمكن عمله بالعروض Views لأن العروض هي استعلامات تحديد فقط ولا تقبل الوسائط (البارامترات) .. إذاً ندع العروض جانباً لأن هذا ليس من عملها فعملها يكون بوضع شروط محددة أثناء التصميم فقط وأما في حال التشغيل فلا تقبل التغيير . لكن يمكن عمله بطريقين : 1- إما بجعل مصدر السجل عبارة SQL المعتادة بوسيطة حقل البحث ومن ثم عرض السجل المطلوب في النموذج وهذه تعتبر تصفية أو بحثاً في جانب العميل وليس في جانب الملقم MSDE .. معنى هذا أن الجدول سينتقل بكامله إلى إلى الكمبيوتر العميل ومن ثم يتم البحث فيه أو تصفية السجلات المطلوبة .. وهي طريقة غير محببة نسبياً لأن الـmsde سيرفر يعمل شبكياً وكوننا نرسل الجدول بأكمله إلى الكمبيوتر العميل (الواجهة) فإنا بهذا العمل نفقد أهم خصائصه وهو تخفيف العبء على الشبكة والحد من السجلات التي لا داعي لإحضارها . 2- وإما عن طريق الإجراءات المخزنة Stored Procedure وحينها سيكون البحث أو التصفية هناك في الملقم ويأتينا ناتج التصفية أو البحث فقط لا الجدول بأكمله .. ولها طريقان : الأول : بأن يكون مصدر النموذج إجراء مخزن بوسيط واحد أو أكثر حسب الشروط المطلوبة كالتالي : - ضع قيمة (نعم) لخاصية النموذج (السماح بعوامل التصفية) - ضع قيمة (لا) لخاصية النموذج (تصفية ملقم حسب النموذج) ثم نقوم بإنشاء إجراء مخزن كالإجراء التالي: Create Procedure strd1 @lngID int, @lngID2 int As SELECT IDNo, memoo, dt, cur, YeNO, Pic, Linkkk, upsize_ts, mm, no, firstName FROM dbo.tbl2 WHERE IDNo=@lngID or IDNo=@lngID2 ( لاحظ أن @lngID int و @lngID int هما وسيطان لحقل الشرط سيتم تمريرهما إلى هذا الإجراء ) - ضع في خاصية(معلمات الإدخال) قيم الوسائط الممرة إلى الإجراء المخزن السابق وهنا معنا حالتان : 1- أن ندخل وسائط مبيتة أثناء التصميم فلا تتغير فندخل في مثالنا هذا رقم 4,5 .. وحينئذٍ كلما فتحنا النموذج سيحضر لنا هذان السجلان فقط . 2- وإما أن ندخل عبارة بين قوسين معقوفين كما كنا نفعل في استعلامات آكسس مثلاً [ من فضل اختر رقم السجل] ليعطينا اختيار أوسع فنكتب رقم السجل الذي نريد .. الثاني : عن طريق الكود وهنا نستخدم ADO لتمرير البارامترات إلى الإجراء المخزن ثم نجير الناتج إلى متغير RecordSet والذي بدوره يكون مصدراً لسجلات النموذج . **** لي عودة فيما بعد بخصوص الإجراءات المخزنة وكيفية التعامل معها وهي تكاد تكون الشريان الرئيسي لـ Sql Server أو MSDE أما الآن فإني أجهز شرح التخطيط أو المخططات ثم يأتي بعده العروض وكلها بتفصيل إن شاء الله .. والله هو وحده لا غيره الموفق والمعين فنسأله المدد والعون والتوفيق
  9. أخي الكريم .. اعمل جدولين : 1- جدول به العمود الأول وهو (النوع) الحقول : TypeID : رقم النوع (مفتاح أساسي) TypeName : اسم النوع (نص) 2- جدول به العمود الثاني (التفاصيل) الحقول : LiknID : رقم (لربطه بجدول النوع) DitielName : اسم التفاصيل (وهو سيحوي الألوان والأرقام والحروف) اعمل علاقة بين حقلي TypeID و LiknID وستكون واحد لكثير الأن : أنشأ نموذجاً يتضمن نموذجاً فرعياً للإدخال ( النموذج الرئيسي مصدر بياناته الجدول الأول ، والفرعي مصدر بياناته الجدول الثاني ) - أنشأ نموذجاً من غير مصدر بيانات وضع فيه مربع قائمة تحرير وسرد ومربع قائمة - اجعل مصدر بيانات قائمة مربع التحرير والسرد هو الجدول الأول (النوع) - واجعل مصدر بيانات مربع القائمة هو عبارة sql كما هو موضح في المثال المرفق وقد عملت مثالاً على ذلك .. فتأمل المثال جيداً ونسأل الله لك التوفيق 2List.rar
  10. أهلاً بك أخي الكريم .. لابد قبل النقل من شرط مهم وهو : - أن تكون إعدادات السيرفر [MSDE] الثاني كالأول تماماً .. وهذا يعني أن تكون متذكراً كيف أعددت السيرفر [MSDE] الأول تماماً وإلا لن يتم النقل .. أعني حين قمت بتثبيت [MSDE] في الجهاز الأول . إذا تأكدت من هذا فإليك الطريقة : 1- أوقف السيرفر [MSDE] الأول الذي في جهازك ثم اذهب إلى دليل [MSDE] وهو MsSQL وفي مجلد Data تجد ملفين باسم قاعدة بياناتك بالامتدادين ldf و mdf قم بنسخهما . فهما يحتويان على معلومات عن قاعدة بياناتك 2- في السيرفر [MSDE] الثاني الذي تريد نقلهما إليه أنشأ قاعدة بيانات جديدة وسمها مثلاً MyDataBase 3- قم بإيقاف السيرفر وانتقل إلى مجلد [MSDE] ثم إلى مجلد Data ستجد القاعدة التي أنشأتها للتو في ملفين باسم MyDataBaseSQL.ldf و MyDataBaseSQL.mdf 4- قم بحذفهما 5- ثم انسخ ملفي القاعدة المنقولة إلى المجلد 6- ثم قم بتغيير اسم قاعدة بياناتك باسم القاعدة التي أنشأتها تماماً وفي مثالنا ستأخذ قاعدة بياناتك المنقولة اسم MyDataBaseSQL.ldf و MyDataBaseSQL.mdf ثم قم باختبار الاتصال كالتالي : 1- شغل السيرفر [MSDE] . 1- افتح واجهة قاعدتك . 2- من قائمة ملف اختر اتصال 3- اكتب اسم السيرفر الجديد واسم المستخدم sa من غير كلمة مرور 4- من قائمة select the database on the server اختر اسم القاعدة التي أنشأناها في السيرفر الجديد باسم MyDataBaseSQL 5- انقر زر Test Connection لاختبار الاتصال إذا نجح الاتصال سيعرض لك رسالة تفيد بنجاح الاتصال وإلا ستظهر رسالة خطأ إذا ظهرت رسالة خطأ فحاول أن تفعل الطريقة هذه مرة ثانية فإذا ظهرت رسالة خطأ مرة ثانية فهذا يعني أن إعدادت السيرفرين مختلفين لذا قم بإزالة تثبيت السيرفر الجديد وغير في الإعداد عند تثبيته مرة ثانية حتى تنجح
  11. وهذه أداة كنت قد عملتها لأحد الإخوة تقوم بإلحاق السجلات من قاعدة إلى قاعدة أخرى insert.rar
  12. هنا تقول لنا المقاطع بملء فمها : ( أنا هنا ) أفضل طريقة في هذه إنشاء مقاطع على عدد المستندات التي لديك وإعطاء كل مقطع الهوامش الخاصة بالمستند الذي سيحويه . الطريقة : لفرض أن لدينا أربع ملفات بالأسماء التالية : ملف1 ملف2 ملف3 ملف4 ونريد أن نضعها في ملف واحد باسم (ملف_الجميع) 1- افتح مستنداً جديداً وسمه (ملف_الجميع) وعين هوامشه نفس هوامش ملف1 ثم انسخ كامل ملف1 إليه . 2- انتقل إلى آخر ملف (ملف_الجميع) ومن قائمة إدراج --> فاصل .. ومن قسم ( أنواع الفواصل المقطعية ) اختر (الصفحة التالية) .. سيتم إنشاء مقطع جديد باسم مقطع2 انظر إلى الإسم في شريط الحالة في الأسفل . 3- تأكد من أنك في (مقطع2) ثم من قائمة ملف --> إعداد الصفحة غير الهوامش المتفقة مع ملف2 الذي تريد نسخه إليه انتبه : في (مربع حوار الصفحة) وفي الأسفل على اليسار تجد قائمة ( ينطبق على ) اختر (المقطع الحالي ) وهذا مهم جداً لأنك إن لم تحدد (المقطع الحالي) سوف يسري تغيير الهوامش على الملف بأكمله . كذلك غير حجم الصفحة إذا احتجت إلى ذلك ثم انسخ ملف2 إليه وكلما أردت نسخ ملف افعل كما سبق .. أنشأ مقطعاً .. وتأكد أنك داخل المقطع المطلوب .. وغير الهوامش .. وانتبه إلى أنه ينطبق على (المقطع الحالي) وبهذا لن يختلف التنسيق أبداً لأن الهوامش هي الهوامش وحجم الصفحة هو حجم الصفحة
  13. العلاقات وأنواعها وخصائصها : تنقسم العلاقات من حيث الأنواع إلى ثلاثة أقسام : 1- علاقة واحد لواحد (One To One) : وفيه يكون كلا الحقلين المرتبطين ببعضهما في الجدولين مفتاحين أساسيين . مما يعني أن لكل سجل في الجدول الأول سجل واحد وواحد فقط في الجدول الثاني والعكس كذلك فكل سجل في الجدول الثاني لا ينتمي إلا لسجل واحد فقط في الجدول الأول . وغالباً ما تجعل هذه العلاقة في جدول واحد يضم الجدولين ولكن لأسباب تعن لك قد ترى الفصل بين البيانات أفضل لأسباب أمنية .. مثال : العلاقة بين جدول بيانات الموظف وجدول بيانات الراتب : الحقول كالتالي : رقم الموظف ، اسم الموظف ، تاريخ التعيين ، تاريخ المباشرة ، الدورات التي حصل عليها ، المؤهل ، مقدر الراتب ، مقدار العلاوة السنوية .. الخ فهذه البيانات إذا لم يكن لك مغزى في التفريق بينها فيستحسن وضعها في جدول واحد .. لكن قد يكون لديك مدخلان للبيانات أحدهما يدخل البيانات الشخصية والآخر يدخل البيانات الوظيفية(مقدار الراتب .. الخ ) فتريد أن لا يعرف مدخل البيانات الشخصية مقدار راتب هذا الموظف .. كما تريد أن لا يعرف مدخل البيانات الوظيفية لمن هذا الراتب الضخم .. فتفصل بينهما لأجل ذلك . مثال آخر عن العلاقة واحد لواحد : العلاقة بين جدول السائقين وجدول رخصة القيادة فلا يمكن أن يعطى السائق أكثر من رخصة واحدة للقيادة كما أنه لا يمكن أن تكون رخصة واحدة لعدد من السائقين . 2- علاقة متعدد لمتعدد (Many To Many) : وتعني أن لكل سجل في الجدول الأول عدد من السجلات في الجدول الثاني .. وأيضاً العكس فكل سجل في الجدول الثاني عدد من السجلات في الجدول الأول .. فهنا أبوّة متبادلة فقد يكون لكل سجل في الجدول الأول عدة أبناء في جدول الأبناء .. كما أن لكل ابن في جدول الأبناء عدة آباء .. وفي مثل هذه العلاقة لا يمكن إقامة علاقة مباشرة مع بعضهما بل لابد من إنشاء جدول ثالث يسمى الموصل بين الجدول ثم يربط الجدولان به بعلاقة واحد لكثير .. واحد من جانب الجدولين الأول والثاني .. وكثير من جانب الجدول الثالث : مثال : العلاقة بين جدول المعلمين وجدول الفصول فكل معلم له عدة فصول يدخلها وكذلك كل فصل له عدة معلمين يدخلونه .. فنقوم بإنشاء جدول ثالث ونربط الجدولين به لتصبح الجداول الثلاثة كالتالي : جدول المعلمين يتضمن الحقول التالية : رقم المعلم(مفتاح أساسي) ، اسم المعلم . جدول الفصول يتضمن الحقول التالية : رقم الفصل (مفتاح أساسي) ، اسم الفصل . جدول الربط يتضمن الحقول التالية : رقم المعلم (مفتاح فرعي لجدول المعلمين ) ، رقم الفصل (مفتاح فرعي لجدول الفصول) لتكون البيانات كالتالي : اسم المعلم : محمد ورقمه 10 ، علي ورقمه 11 في جدول المعلمين اسم الفصل : الأول ورقمه 5 ، الثاني ورقمه 6 ، الثالث ورقمه 7 في جدول الفصول . وفي جدول الربط تكون البيانات كالتالي : رقم المعلم 10 ، رقم الفصل6 رقم المعلم 10 ، رقم الفصل7 رقم المعلم 11 ، رقم الفصل6 رقم المعلم 11 ، رقم الفصل5 3- علاقة واحد لمتعدد (One To Many) : وهذه هي الأكثر في مجال تصميم قواعد البيانات وتعني أن لكل سجل في الجدول الأول عدداً من السجلات في الجدول الثاني بينما لا يكون لكل سجل في الجدول الثاني إلا سجل واحد فقط في الجدول الأول .. وفيها يكون الجدول من جانب الواحد يحمل حقل المفتاح الأساسي بينما يحمل جدول الجانب المتعدد الحقل الفرعي المتعدد القيمة .. فيكون لكل سجل في الجدول الأول (الأب) عدداً من السجلات في الجدول الثاني(الابن) . مثال : العلاقة بين جدول الموظف وجدول الإجازات فكل موظف له عدد غير محدد من سجلات الإجازات بينما لا تكون إجازة ذات رقم معين لأكثر من موظف . أنواع العلاقات بين الجداول من حيث الربط : تنقسم إلى ثلاثة أقسام : 1- ربط داخلي : وفيه يتم إظهار سجلات الآباء المرتبطين بأبناء فقط أما الآباء الذين ليس لديهم أبناء فسيتم تجاهلهم ولن يظهروا في النتائج . تستخدم فيه العبارة INNER JOIN وعبارة SQL هنا هي : SELECT fields FROM tbl1 INNER JOIN tbl2 ON tbl1.ID=tbl2.No 2- ربط خارجي تام : وفيه يتم إظهار جميع السجلات من الجدولين بلا شروط بل سيحضر جميع السجلات من الجدول الأول وكذلك من الجدول الثاني وتستخدم فيه العبارة FULL OUTER JOIN وعبارة SQL هنا هي : SELECT fields FROM tbl1 FULL OUTER JOIN tbl2 ON tbl1.ID=tbl2.No 3- ربط خارجي أيمن : وفيه يتم إظهار سجلات الجدول الأيمن جميعها سواء ما كان له أبناء أم لا ولا يظهر من سجلات الجدول الأيسر إلا ما كان له موافق في سجلات الجدول الأيمن وتستخدم فيه العبارة RIGHT JOIN وعبارة SQL هنا هي : SELECT fields FROM tbl1 RIGHT JOIN tbl2 ON tbl1.ID=tbl2.No 4- ربط خارجي أيسر : وفيه يتم إظهار سجلات الجدول الأيسر جميعها سواء ما كان له أبناء أم لا ولا يظهر من سجلات الجدول الأيمن إلا ما كان له موافق في سجلات الجدول الأيسر وتستخدم فيه العبارة LEFT JOIN وعبارة SQL هنا هي : SELECT field1 FROM tbl1 LEFT JOIN tbl2 ON tbl1.ID=tbl2.No ملاحظة : الجدول الأيمن أي يمين العبارة RIGHT JOIN الجدول الأيسر أي يسار العبارة LEFT JOIN . العلاقات من حيث تعدد الجداول : تنقسم ربط الجداول من حيث تعددها إلى ثلاثة أقسام : (في الاستعلام) 1- ربط ثلاثة جداول فأكثر : وهنا يحصل الربط الطبقي الهرمي بمعنى يتم ربط الجدول الثالث بالثاني ثم ربط الثاني بالأول صعوداً هرمياً ... وهكذا لو كانت الجداول أكثر من ثلاثة . مثال : لنفترض أن لدينا ثلاثة جداول الأول : جدول بيانات الزبون الثاني : جدول الطلبات الثالث : جدول المنتجات وأردنا معرفة الزبائن الذين اشتروا سلعة معينة فنقوم بربط جدول المنتجات بالطلبات لأخذ اسم السلعة ومن ثم ربط الطلبات بالزبائن لمعرفة اسم الزبون 2- ربط جدولين : وهذا مر معنا وهو الأكثر . 3- ربط الجدول مع نفسه : ونحتاج هذا حين تتعدد مهام الجدول : مثال : جدول الموظفين يحتوي على جميع الموظفين في الشركة وهؤلاء الموظفون فيهم المدراء ورؤساء الأقسام والموظفون وكل هؤلاء يضمهم جدول واحد وهو جدول الموظفين .. فلو أردنا معرفة كل مدير ورؤساء الأقسام التابعين له وكذلك كل رئيس قسم والموظفين التابعين له فحينئذٍٍ لا من ربط الجدول مع نفسه يتكون الجدول من الحقول التالية : رقم الموظف(للجميع) اسم الموظف رقم المدير : وهذا الحقل يكون فارغاً في سجل المدراء ويأخذ قيمة رقم الموظف (المدير) بالنسبة لسجل رؤساء الأقسام رقم رئيس القسم : وهذا الحقل يكون فارغاً في سجل المدراء ورؤساء الأقسام ويأخذ قيمة رقم الموظف (رئيس القسم) بالنسبة لسجل الموظفين فلمعرفة المدير من رئيس القسم من الموظف كالتالي : إذا كان حقل رقم المدير فارغاً فهذا يعني أنه مدير وإذا كان حقل رقم المدير ورقم رئيس القسم فارغاً فهذا يعني أنه رئيس قسم وإذا لم يكن حقل رقم رئيس القسم فارغاً فهذا يعني أنه موظف ولمعرفة رؤساء الأقسام الذين ينتمون إلى مديرهم نقوم بربط الجدول مع نفسه بين حقلي رقم الموظف ورقم رئيس القسم ولمعرفة الموظفين الذين ينتمون إلى رئيس القسم نقوم بربط الجدول مع نفسه بين حقلي رقم الموظف ورئيس القسم
  14. اتفق دهاقنة مصممي قواعد البيانات وكبراؤها من أولهم إلى آخرهم إلى أن على مصمم قاعدة البيانات أن يبدأ بتصميم القاعدة على الورق أولاً وقبل أن يتجه إلى الحاسب .. فيأتي بالأفكار من هنا وهناك ويعرضها على عقله ويتأملها فيكتب ويشطب ويزيد وينقص ويضيف ويحذف ويخطط لقاعدة البيانات كما تخطط المدن حتى تكون القاعدة التي يريد إنشاءها واضحة لديه تماماً .. فعند بداية فكرة القاعدة تكون القاعدة في المخيلة كمدينة كثيرة الأحياء كثيرة الطرق متشعبة المداخل والمخارج فيجلس المصمم مدة كافية يخطط ويدرس حتى تكون المدينة في مخيلته كقرية صغيرة جداً يعرف مداخلها ومخارجها .. هذا أمر لابد منه قبل الانتقال إلى الحاسب الآلي لتجسيد ما كتب على الورق إلى واقع ملموس .. ومن لم يتبع هذه الطريقة التي اتفق عليها خبراء مصممي قواعد البيانات فسوف يلهث خلف سراب لن يدركه وسيصلى بحر التعب والإرهاق بلا فائدة . وهنا بعض من أسس بناء قواعد البيانات فمن خلالها نبني القاعدة على أساس سليم . (راجع في ذلك الكتب التي تتكلم عن بناء قواعد البيانات مثل كتاب (بناء قواعد البيانات تأليف (ألين تايلور) وهو مترجم) بالإضافة إلى ما كتبه الأستاذ الفاضل (إنترنت ماستر) من هنافي الفريق العربي للبرمجة ) .. وبإلماحة سريعة عن بناء قواعد البيانات فإن هناك مفاهيم ومصطلحات لابد من معرفتها : 1- الجدول الأب والجدول الابن : فالقاعدة من خلال هذا المصطلح تقول : كل ابن لابد أن يكون له أب .. هذه سنة الحياة .. وفي سنة قواعد البيانات : لابد أن يوجد لكل ابنٍ أبٌ ينتسب إليه الابن .. بمعنى : لتكامل قواعد البيانات لابد أن يكون لكل سجل في الجدول الفرعي (الابن) سجل في الجدول الرئيسي (الأب) .. فهذه قاعدة مهمة جداً لأنه من الخلل الكبير في بناء قواعد البيانات أن يوجد أبناء لا آباء لها فوجودها سيكون مربكاً للغاية وسوف تحمل قواعد البيانات عبأً هي في غنية عنه .. قد يوجد الأب بلا أبناء ولا يشكل خطراً على البيانات ولكن لا يمكن السماح بوجود أبناء بلا آباء . وتظهر فائدة هذه القاعدة في معرفة الجداول التي لابد من فرض التكامل المرجعي في علاقاتها مع بعض .. لأنه قد توجد علاقات جداول مع بعضها ولكن دون فرض التكامل المرجعي لأنه حينها لا يهمنا وجود الابن دون أب في هذا الوقت . مثال ذلك جدول بيانات صاحب الهاتف يعتبر أباً لجدول أرقام الهواتف فقد يوجد لشخص ما عدة أرقام .. فهنا قد يوجد أب لم يسجل له أرقام هواتف .. ولكن لن نسمح بوجود أرقام صالحة للاتصال دون صاحب لها . 2- الجدول التابع والجدول المتبوع(المستقل) : القاعدة هنا تقول : كل جدول يستند في وجوده (وجود سجلاته) إلى جدول آخر يسمى تابعاً .. وكل جدول لا يستند في وجوده (وجود سجلاته) إلى جدول آخر يسمى متبوعاً أي غيره يتبعه (مستقلاً) .. وتظهر فائدة هذه القاعدة في معرفة من هو الأب ومن هو الابن من الجدولين لنبني عليها العلاقات واحد لكثير . 3- توحيد الجداول : لابد من التخطيط الجيد وإعطاء نفسك مهلة كافية للتخطيط لقاعدة البيانات لكي تؤدي ما هو مطلوب منها بكل جدارة بالإضافة لإمكانية تطويرها وصيانتها فيما بعد فكما أن العقل السليم في الجسم السليم فكذلك هنا فإنا نقول القاعدة السليمة في البناء السليم .. فمن خلال البناء السليم نستطيع منع حدوث الكوارث والزحامات والبيانات المهدرة .. لذا يجب علينا توحيد الجداول بمعنى أنه يجب تحديد هدف كل جدول فعند انبثاق فكرة القاعدة تكون المعلومات كثيرة جداً يجمعها جدول واحد في الذهن فنقوم بتوحيدها وتفصيلها بوضع كل بيانات تخص موضوعاً معيناً في مجموعة واحدة (جدول واحد) .. مثال ذلك فكرة بناء قاعدة (مكتبة) فهناك البيانات التالية : بيانات الكتاب بيانات الناشرين بيانات المؤلفين .. الخ فنقوم بتفصيلها كالتالي : فجدول بيانات الكتاب يضم الحقول التالية : اسم الكتاب ، تاريخ الطبع ، عدد المجلدات ، سعر الشراء .. الخ وجدول بيانات الناشرين يضم الحقول التالية : اسم الناشر ، المدينة ، البلد ، الهاتف ، صندوق البريد .. الخ وجدول بيانات المؤلفين يضم الحقول التالية : اسم المؤلف ، كنيته .. الخ فنلاحظ أنا قمنا بتوحيد وتفصيل البيانات ووضع كل بيانات مترابطة في جدول واحد مما يعني أنه لن تضيع بيانات ولن تهدر مساحات من القرص . 4- المفتاح الأساسي والمفتاح الفرعي : كما مر معك فإن حقل المفتاح الأساسي لا يمكن أن تتكرر قيمه بينما يمكن أن تتكرر قيم حقل المفتاح الفرعي المرتبط به .. فالجدول الأب هو من سيكون لديه حقل المفتاح الأساسي أما الجدول الابن فهو الذي لديه المفتاح الفرعي . 5- التكامل المرجعي : يحتم فرض التكامل المرجعي على العلاقة بين جدولين على ضمان تطابق المعلومات في الجدولين ( الرئيسي والفرعي ).. فمن خلاله لن يسمح نظام قواعد البيانات بإدراج سجل في الجدول الفرعي (الابن) ما لم يكن له سجل سابق في الجدول الرئيسي (الأب) .. وحين إضافة ابن بلا أب ستخرج رسالة خطأ وتمنعك من إضافة السجل الابن . ويشتمل التكامل المرجعي على شيئين وهما : 1- تتالي التحديث : وتعني أنه عند تغيير قيمة المفتاح الأساسي في الجدول الأب فإن التغيير سيسري إلى أبناءه في الجدول الابن وسيأخذون القيمة الجديدة لضمان التحاقهم بأبيهم . 2- تتالي الحذف : وتعني أنه عند حذف أب من جدول الأب سيحذف معه أبناؤه في جدول الابن لكي لا يترك أبناء بلا أب لهم . لكن يمكنك حذف ابن من جدول الابن ما لم يكن هذا الابن له أبناء لأنه قد تتسلسل القاعدة إلى آباء وأبناء فقد يكون هناك أب له ابن وهذا الابن يكون أباً لأبناء .. وهكذا فلا يمكن حذف هذا الابن إلا بعد حذف أبناءه ولو اخترت تتالي الحذف في علاقاتها كله مع بعض سيتم حذف الأب والابن وأبناء الابن .. الخ . هناك توجيهات تخصك كمطور قواعد بيانات منها : 1- تجنب الحروف العربية في تسمية كائنات قاعدة البيانات واستخدم الحروف الإنجليزية عوضا ًعنها بدءاً من اسم القاعدة إلى أسماء الجداول وأسماء النماذج والتقارير والاستعلامات والماكروا والوحدات النمطية حتى تتجنب مشقة الكتابة في محرر فيجول بيسك عند كتابة الأكواد . 2- ابتعد عن تسمية الكائنات بأسماء محجوزة لدى نظام قاعدة البيانات فمثلاً لا تسم الجدول باسم Table أو Tables أو النماذج باسم Form أو Forms كذلك Report للتقارير ، User وكل الكلمات والعبارات المحجوزة من قبل نظام قواعد البيانات حتى لا تقع في مشاكل أنت في غنى عنها . 3- اختر الأسماء كما تفهمها أنت والتي تدل على ما يراد منها . 4- بعد أن تنجح في كتابة كود وتعتمده اكتب تعليقاً يوضح عمله . 5- احتفظ بنسخ من قاعدة البيانات حتى لا يذهب جهدك سدى . هذه بعضاً منها مما يحضرني الآن ولعل الإخوة الإكرام يثرون هذا الموضوع بخبراتهم وتجاربهم واطلاعاتهم .
  15. العزيز المهاجر : لا شكر على واجب وبارك الله فيك
  16. مرفق ملف به شرح عن الفهارس ، و أي استفسار أنا حاضر wordIndex.rar
  17. رائع جداً أستاذنا الكريم أبا سليمان بارك الله فيك ووفقك الله ..
  18. الأخت طيف .. وعليك السلام ورحمة الله وبركاته .. بالنسبة لي فلا علم لي بحل لهذه المشكلة لكن أطرحي سؤالك في منتدى الفريق العربي في قسم sql server وإن شاء الله لن يقصر الشباب هناك .. من هنا
  19. قيود التحقق من الصحة : --------------------------------- تهدف قيود التحقق من الصحة ـ أي من صحة البيانات ـ إلى سلامة البيانات من الناحية المنطقية كأن يمنع كتابة حروف في حقل بيانات أرقام الهاتف إذا كان نوع بياناته لم يكن رقماً . كما أن فائدة قيود التحقق من الصحة تظهر واضحة في بعض الحالات كالتالي : - تاريخ تعيين الموظف لا يجوز أن يكون أقل من تاريخ الولادة . - تاريخ تصدير المعاملة لا يجوز أن يكون أقل من تاريخ ورودها . - سعر البضاعة أو الكمية المباعة لا يجوز أن يكون صفراً أو قيمة سالبة . - عمر الإنسان لا يجوز أن يكون أكثر من ثلاثة أرقام . - اسم الشخص لا يجوز أن يحوي أرقاماً . وغيرها كثير وإنما هذه أمثلة فقط وفي كل قاعدة تقوم بعملها لابد أن يكون هناك واجبات حتمية كما أنه لابد أن يكون هناك ممنوعات . ملاحظات : 1- هذه القيود تعمل على سجل واحد بمفرده . بمعنى أنها تعمل إذا كان تاريخ الولادة وتاريخ التوظيف في جدول واحد مثلاً للمقارنة بينهما . أما إذا كان كل منهما في جدول فأنه لن يكون هناك مقارنة بينهما . فهي لا تنظر إلى السجل السابق أو التالي أو في جدول آخر 2- القيمة التي يسترجعها MSDE من القيد إما أن تكون صحيحة True أو خطأ False . لذا لا يهم أن يحتوي القيد على شرط واحد أو عدة شروط مدمجة . 3- استخدم المعاملات المنطقية عند إنشاء القيود كـ ( = ، <> ، < ، > ، =< ، => ) وكـ ( And , Or . Between , Like , Not Like ) . 4- القيم النصية ضعها بين علامتي اقتباس مفردة ' ' أما القيم الرقمية فبلا علامة . ========= طريقة إضافة قيد تحقق من الصحة : - افتح الجدول في عرض التصميم ، ثم اضغط Alt+Enter أو اختر خصائص من قائمة عرض لفتح مربع حوار الخصائص . - حدد تبويب Tables . - انقر الزر New . ملاحظة : لا يمكنك استخدام أي ممن مكونات هذه الصفحة (التبويب) ما لم تنقر على الزر New ثم تكتب في صندوق Constaint expression التعبير ، وإلا ستظهر لك رسالة تخيرك بين حذفه وبين الاستمرار ويتوضع مؤشر الإدخال في الصندوق . شرح المكونات : Selected Table (الجدول المنتقى) : يظهر الجدول الحالي . Table name (اسم الجدول) : يتيح لك تغيير اسم الجدول في القاعدة . Table File Group و Text File Group يختص بهما مدير قواعد البيانات وهما خاصان بحالة ما إذا تم توزيع الجدول في عدة ملفات . Selected Constaint (القيد المنتقى) : يحدد القيد الحالي والذي يظهر تعبيره في صندوق تعابير القيد . Constaint expression (تعبير القيد) : وفي هذا الصندوق نكتب القيد الذي نريد . Constaint name (اسم القيد) : يمكنك من هذا الحقل تغيير اسم القيد باسم يوضح القيد . Check existing data on creation (التحقق من صحة البيانات الموجودة) : فعل هذا الخيار إذا أردة من MSDE أن يقوم باختبار البيانات الموجودة . فإذا وجد البيانات تخالف القيد عرض لك رسالة ثم يمنعك من الحفظ . وعطل هذا الخيار إذا كان لا يهمك أن تكون البيانات الموجودة تخالف القيد . [Enable Constaint for INSERT and UPDATE (التحقق من صحة البيانات عند التغيير أو الإدراج) : فعّل هذا الخيار إذا أردت تطبيق القيد على ما يستجد من السجلات وعلى ما يتم تحديثه . وعطله إذا علمت أنه سيوضع في المستقبل في هذا الحقل بيانات تخالف القيد . Enable Constaint for replication (التحقق من صحة البيانات بالنسبة لجداول النسخ المتماثلة) : فعل هذا الخيار إذا أردت أن يطبق القيد على النسخ المتماثلة . وعطله إذا لم ترد ذلك . أمثلة : لجعل الحقل لا يقبل أقل من 3 خانات --> Len(الحقل) >=3 لجعل الحقل لا يقبل قيمة سالبة --> الحقل > 0 لجعل الحقل لا يقبل أقل من التاريخ الحالي --> الحقل > getdate() لجعل الحقل يبدأ بحرف معين الحقل Like 'أ%' لجعل الحقل لا يقبل إلا أحد الأرقام من 0 إلى 9 الحقل Like '[0-9]' لجعل الحقل لا يقبل إلا أربع خانات وأرقاماً فقط الحقل Like '[0-9] [0-9] [0-9] [0-9]' لجعل الحقل لا يقبل إلا أرقاماً دون الحروف الحقل >=0 and الحقل >=9 لجعل الحقل لا يقبل إلا حروفاً عربية الحقل >='أ' and الحقل >='ي' لجعل الحقل لا يقبل إلا حروفاً إنجليزية الحقل >='a' and الحقل >='z' لجعل حقل تاريخ الوظيفة لا يقبل تاريخ أقل من تاريخ الميلاد حقل الوظيفة > حقل الميلاد
  20. وجزاك أخي أبا يعلى .. وإن شاء الله أكون قريباً
  21. الترقيم التلقائي الترقيم التلقائي في adp يختلف عنه في mdb فيمتاز عنه بالآتي : 1- يمكنك اختيار رقم البداية للترقيم . فمثلاً يمكنك أن تجعل السجل الأول يبدأ من الرقم 200 وذلك عن طريق الخاصية (Identity Seed) . الافتراضي هو 1 2- يمكنك تحديد مقدار الزيادة بالعدد الذي تريد عن طريق الخاصية (Identity Increment) . فمثلاً يمكنك جعل الزيادة بمقدار رقمين فتجعل قيمتها 2 . الافتراضي هو 1 الطريقة : - اجعل حقل الخاصية (Allow Nulls)(مطلوب) بلا علامة . - اجعل حقل الخاصية (Identity) بالعلامة . - في الخاصية (Identity Seed) ضع رقم البداية للسجل الأول . - في الخاصية (Identity Increment) ضع رقم الزيادة عند إضافة سجل . ملاحظة : أنواع البيانات التي تصلح أن تكون ترقيماً تلقائياً محددة بالآتي : Int Smallint Tinyint Decimal Numeric
  22. حجم الملف كبير لذا قم بتقسيمه إلى قسمين وإن شاء الله يضبط fille1_1.rar
×
×
  • اضف...

Important Information