الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن انشاء علاقة بين جدولين ولكن عن طريق الكود

مغلقمُجاب
بدأه MOHAMED ARAFA في 18 فبراير 2013 · 12 رد · 2,539 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل يمكن انشاء وحذف العلاقات بين الجداول ولكن عن طريق الكود

في المثال يوجد جدولين متصلين بجدولين اخرين بعلاقة واحد الى متعدد

والسؤال هو

هل يمكن من النموذج الرئيسى ان احذف اى علاقة عن طريق زر واستعيدها مرة اخرى عن طريق زر آخر

وان احذف جميع العلاقات مرة واحدة عن طريق زر واستعيدها جميعا عن طريق زر آخر

اى حذف واستعادة العلاقات ولكن برمجيا

شكرا لكم

Relationship.rar

تم تعديل هذه المشاركة بواسطة MOHAMED ARAFA في 18 فبراير 2013 في 05:13

#2

السلام عليكم

هذا رابط لهدية من هدايا الاستاذة ام عهود حفظها الله

 

من هنا

حسابي على الفيسبوك

 

حسابي على التويتـــر

 

صفحتي الشخصية في منتدى أوفيسنا

 

اعذروني ففي الفترة القادمة سيكون تواجدي في المنتدى ضيق جداً وذلك للانشغال في دورة لمدة 6 شهور بعد الدوام

#3

بارك الله بك اخ عبدالله وبارك الله للاخت زهرة جزاها الله كل خير وان امكن التطبيق على المثال المرفق لو سمحت اكون شاكر لك

شكرا جزيلا

#4

بارك الله بك اخي الكريم : عبدالله

 

 

اخي الفاضل : محمد عرفه

 

اليك التطبيق الفعلي الكامل على انشاء وحذف واستعادة العلاقات بين الجداول

 

 فقط اضغط وتمتع   :rolleyes:

 

post-15367-0-63885100-1361169135_thumb.g

 

 

اذا تمت الإجابه على السؤال فلا تنسى الضغط على ( أفضل إجابة )

za-Relationship-UP.rar

اذا تمت الإجابه على السؤال فلا تنسى الضغط على ( أفضل إجابة )

 

 

 

بالتوفيق

#5

ما شاء الله عمل مميز وابداع كبير من استاذة متميزة بشكل دائم  

حسابي على الفيسبوك

 

حسابي على التويتـــر

 

صفحتي الشخصية في منتدى أوفيسنا

 

اعذروني ففي الفترة القادمة سيكون تواجدي في المنتدى ضيق جداً وذلك للانشغال في دورة لمدة 6 شهور بعد الدوام

#6

الف الف شكر اخت زهرة على هذا المجهود الكبير والعمل الرائع وان امكن بعد اذنك ان تكون العلاقه كاملة عند الاستعاده من حيث التحديث والحذف

كما في الصورة

Untitled-1-1_zps6865d05a.jpg

 

بارك الله فيكى

#7

تفضل اخي الكريم

تم تعديل الأكواد البرمجية بناء على طلبك وتعمل كما طلبت انت بإضافة  ( ON UPDATE CASCADE   |  ON DELETE CASCADE )

 

 

 

اذا تمت الإجابه على السؤال فلا تنسى الضغط على ( أفضل إجابة )

za-Relationship-LAST.rar

اذا تمت الإجابه على السؤال فلا تنسى الضغط على ( أفضل إجابة )

 

 

 

بالتوفيق

#8

بارك الله فيكى اخت زهرة وجعله في ميزان حسناتك ان شاء الله

ولكن يا اختى العزيزه حدث شىء معى اثناء التنفيذ

 

عند وضع انشاء العلاقات وعند الضغط على الزر ظهرت رسالة الخطأ هذه

Run-Time error '3289':o

syntax error in CONSTRAINT clause.

 

وعند البحث لمعرفة سبب هذا الخطأ وجدت ان احد الحلول هو تفعيل هذه الخاصية

 

 

Untitled-1-1_zps6bca0390.jpg

 

 

وعندما حاولت تفعيلها ظهرت لى هذه الرسالة

 

Untitled-2_zps51d647bc.jpg

 

 

التى احس انها رسالة تحذير خطرة فهو يحذر بان الاستعلامات لن تعمل بشكل جيد أو شىء من هذا القبيل ويحذر من اشياء أخرى

وعلى سبيل التجربه عند تخطى الرسالة بالموافقة تم عمل خاصية انشاء العلاقات بشكل ممتاز

فأرجو منكى التوضيح اخت زهرة عن معنى هذه الرسالة التحذيرية قبل تنفيذها في المشروع حتى لا يؤثر ذلك على كامل المشروع او اذا كان عندك بدائل اخرى بدلا من هذه الرسالة اذا كانت هناك خطورة بالتأثير ولو بجزء صغير على المشروع ككل

وهل عند تفعيل هذه الخاصية سوف يتم التفعيل في المشروع نفسه عند وضعه في اى جهاز آخر ام سوف يحدث مشكلة في الاجهزه الاخرى 

شكرا جزيلا لكى

تم تعديل هذه المشاركة بواسطة MOHAMED ARAFA في 19 فبراير 2013 في 06:13

#9

اخي الفاضل : محمد عرفه

 

بناء على طلبك بأنك تريد اضافة التأشير برمجيا في تحرير العلاقات على ( تتالي تحديث الحقول المرتبطة و تتالي حذف السجلات المرتبطة ) قمنا بتنفيذ طلبك .

 

خاصيتي : ( ON UPDATE CASCADE   |  ON DELETE CASCADE ) غير مدعومه في قاعدة البيانات اكسيس من خلال الكود البرمجي لأنه يجب ان وضعها يدويا من خلال الواجهه لأن قاعدة البيانات اكسيس تعمل بالمواصفة ANSI-89 في بناء جملة Jet SQL التقليدي و هذا الوضع يتوافق كثيراً مع مواصفات ANSI-89 المستوى الأول .

 

لذا نجد انه عند استخدام تتالي التحديث وتتالي الحذف برمجيا تظهر لنا رسالة خطأ لعدم مقدرة قاعدة البيانات اكسيس على فهم هذا الأسلوب والتي يتطلب منا ان ننتقل الى مستوى اعلى وهو مستوى المواصفة ANSI-92 والتي تعمل مع SQL Server  حيث تختلف هذه المواصفة عن المواصفة السابقة .

 

لماذا استخدام ANSI-92 SQL؟
قد تحتاج إلى استخدام ANSI-92 SQL للأسباب التالية:
تتوقع زيادة حجم التطبيق في المستقبل لمشروع Access وترغب في إنشاء استعلامات سيتم تشغيلها بأقل التغييرات في قاعدة بيانات Microsoft SQL Server. 
ترغب في الاستفادة من الميزات الجديدة غير الموجودة في ANSI-89 SQL، مثل: 
تغيير إعدادات الأمان بواسطة استخدام عبارتيGRANT و REVOKE SQL 
استخدام DISTINCT في مرجع دالة تجميع، على سبيل المثال SUM(DISTINCT Price). ينطبق ذلك فقط على مشروعات Access (.adp). ولا ينطبق على ملفات قاعدة بيانات Access (.mdb). باستخدام جملة LIMIT TO nn ROWS للحد من عدد الصفوف التي يتم إرجاعها من قبل الاستعلام 
 
لماذا يجب تجنب خلط الاستعلامات التي يتم إنشاؤها تحت وضعي استعلام ANSI SQL
وضعا استعلام ANSI SQL، ANSI-89 و ANSI-92 غير متطابقين. عند إنشاء قاعدة بيانات Microsoft Access، تحتاج تقرير وضع الاستعلام الذي ستقوم باستخدامه، حيث أن خلط الاستعلامات التي تم إنشاؤها بوضعي الاستعلام قد ينتج عنه حدوث أخطاء أثناء التشغيل أو الحصول على نتائج غير متوقعة. يختلف نطاق أنواع البيانات، الكلمات المحجوزة، وأحرف البدل في أي من أوضاع الاستعلام.
 
مثال لاستعلام يستخدم أحرف البدل.
يمكن أن ينشئ الاستعلام الذي يستخدم أحرف بدل في تعبير بمعايير نتائج مختلفة باستخدام كل وضع استعلام مختلف. على سبيل المثال، إذا قمت بتشغيل:
استعلام ANSI-89 SQL في قاعدة بيانات معينة إلى وضع استعلام ANSI-92 مثل: 
SELECT * FROM Customers WHERE Country Like 'U*'

تم تعديل هذه المشاركة بواسطة zahrah في 19 فبراير 2013 في 07:28

1
#10

اذن انت تفضلين عدم تفعيل هذه الخاصية؟؟؟

 

عند استعمال الطريقة الاخرى وهى تفعيل زر  اظهار مخطط العلاقات لكى افعل الخاصية يدويا بدلا من برمجيا لم تعمل معى

علما باننى اخفيت اطارات الاكسس وسوف يتم تحويل المشروع الى mde

فهل لا تعمل خاصية اظهار مخطط العلاقات اذا تم اخفاء اطارات الاكسس ام ان المشكلة من عندى وهل اذا كانت لا تظهر اذا تم اخفاء اطارات الاكسس فهل يوجد اى حل آخر لكى يتم تفعيلها

شكرا لكى اخت زهرة على سعة صدرك وجزاكى الله كل خير

#11

بارك الله فيك أستاذتنا الكريمة زهرة .. زادك الله علماً

اللهم لك الحمد كما ينبغى لجلال وجهك وعظيم سلطانك .. لا إله إلا أنت سبحانك أنى كنت من الظالمين

#12 أفضل إجابة
MOHAMED ARAFA كتب:

اذن انت تفضلين عدم تفعيل هذه الخاصية؟؟؟

 

عند استعمال الطريقة الاخرى وهى تفعيل زر  اظهار مخطط العلاقات لكى افعل الخاصية يدويا بدلا من برمجيا لم تعمل معى

علما باننى اخفيت اطارات الاكسس وسوف يتم تحويل المشروع الى mde

فهل لا تعمل خاصية اظهار مخطط العلاقات اذا تم اخفاء اطارات الاكسس ام ان المشكلة من عندى وهل اذا كانت لا تظهر اذا تم اخفاء اطارات الاكسس فهل يوجد اى حل آخر لكى يتم تفعيلها

شكرا لكى اخت زهرة على سعة صدرك وجزاكى الله كل خير

 

 

جزاك الله كل خير اخي الفاضل : عمر

 

 

حسنا اخي الكريم : محمد عرفه

طالما انك لا تريد استخدام الطريقة السابقة فإليك الطريقة الجديده لأنشاء العلاقات واختيار ( تتالي تحديث الحقول المرتبطة و تتالي حذف السجلات المرتبطة ) وحذفها بواسطة الكود البرمجي بدون ان تقوم بتفعيل خاصية  ANSI-92  في الأكسيس

 

جرب البرنامج الآن فهو يعمل بشكل ممتاز جدا

 

اذا تمت الإجابه على السؤال فلا تنسى الضغط على ( أفضل إجابة )

za-Relationships-END2.rar

 

بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 20 فبراير 2013 في 09:43

1
#13

بارك الله فيكى اخت زهرة وهذا هو عهدنا بكى دائما وتم العمل الآن بنجاح باهر

شكرا جزيلا لكى

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…