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

كيف أقوم فى قاعدة بيانات بعمل علاقة بين جدولين

بدأه islambase@yahoo.com في 18 يوليو 2007 · 15 رد · 1,730 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف أقوم فى قاعدة بيانات بعمل علاقة بين جدولين

بحيث تكون قيمة أحد حقول الجدول الأول TB1 تتغير تلقائيآ تبعآ لتغير قيمة أحد حقول الجدول الثانىTB2

مثلآ بحيث تكون قيمة الحقل sending فى الجدول TB1 تتغير تلقائيآ تبعآ لتغير قيمة الحقل total فى الجدول TB2(أى تكون مساوية لها دائمآ)

فاذا وضع المستخدم عند عمل RUN القيم المطلوبة منه فى ال TEXT المتصلة بالجدول الثانىTB2

وقام البرنامج طبقآ لكود هذه ال FORM بحساب قيمة الحقل total فكانت مثلآ 2600 فان قيمة الحقل sending فى الجدول TB1 تصبح تلقائيآ هى الأخرى 2600

هل يكون ذلك بعمل RELATION SHEP فى قاعدة البيانات نفسها؟

أم يكون بكتابة كود معين فى البرنامج؟

وفى كلتا الحالتين فكيف ذلك؟

أرجوكم ساعدونى ولكم جزيل الشكر

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#2

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

Dim con As ADODB.Connection
'OPen con & other work

con.BeginTrans
'save TO table1

con.Execute "update table2 set  sending =" & text1	 & "  where ....."

con.CommitTrans
Exit Sub
herr:
con.RollbackTrans
MsgBox err.Description
#3
اقتباس
عمل علاقة تنفع اذا كان الحقل عبارة عن مفتاح اساسي مثل رقم فاتورة او موظف لكن في مثل حالتك يجب ان تكون من خلال الكود

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#4

اخوانى الأعزاء

لكم ألف شكر على اجابتكم . ولكن أرجو منكم

أولآ:- نسيت أن أوضح لكم أن أداة البيانات التى أتعامل معها هى ال datPrimaryRS فأرجو منكم اعادة

كتابة هذا الكود على هذا الأساس

ثانيآ:- بالنسبة لحالة أن حقل الجدول الثانى TB2عبارة عن مفتاح اساسي

فكيف يكون عمل العلاقة بحيث تكون قيمة الحقل sending فى الجدول TB1 تتغير تلقائيآ تبعآ لتغير قيمة

حقل المفتاح الأساسي num فى الجدول TB2(أى تكون مساوية لها دائمآ)

و لكم ألف شكر

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#6

استاذى الحبيب TAREQ-VB

لكم ألف شكر على اجابتكم . ولكن أرجو منكم

أولآ:- وماذا لو أن أداة البيانات التى أتعامل معها هى ال Data1

ثانيآ:- بالنسبة لحالة أن حقل الجدول الثانى TB2عبارة عن مفتاح اساسي كما ذكرت لى

فكيف يكون عمل العلاقة بحيث تكون قيمة الحقل sending فى الجدول TB1 تتغير تلقائيآ تبعآ لتغير قيمة

حقل المفتاح الأساسي num فى الجدول TB2(أى تكون مساوية لها دائمآ)

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#7

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

' BeginTrans

Data1.Database.Execute "update table2 set  sending =" & text1	 & "  where ....."

' CommitTrans
'Exit Sub
'herr:
' RollbackTrans
'MsgBox Err.Description

وبالنسبة لتنفيذ تعديل تلقائي في قاعدة البيانات (وكما ذكرت سابقا لمثل رقم موظف او رقم حركة وليس لمبلغ او علامة ) يتم ذلك عند عمل العلاقة حيث يوجد خيار

enforce referential integrity

ثم خيار

cascade update related field

#8

يبدو أن طلبى غير مفهوم يا أستااااااااااااااذى الحبييييييييييييييب

وانت طبعآ بالتأكيد عارف لماذا أنت أستااااااااااااااذى الحبييييييييييييييب

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

الجدول الأول هو جدول الموظفين وحقوله كالآتى

المسلسل

الاسم

الوظيفة

رقم المصيف

والجدول الثانى هو جدول المصايف وحقوله كالآتى

4 3 2 1 المسلسل

رأس البر جمصة مطروح الأسكندرية المكان

11 / 8 24 / 7 5 / 7 16 / 6 تاريخ السفر

تاريخ العودة

تكلفة الرحلة

وكان جدول المصايف مرتبآ حسب تارخ السفر (عن طريق أى كود)

فاذا اضاف المستخدم عند عمل RUN مصيف جديد بتاريخ 27 / 6 مثلآ وقام البرنامج طبقآ للكود باعادة التسلسل فتغير تسلسل بعض المصايف فصار الجدول كالآتى

5 4 3 2 1 المسلسل

رأس البر جمصة مطروح العريش الأسكندرية المكان

11 / 8 24 / 7 5 / 7 27 / 6 16 / 6 تاريخ السفر

تاريخ العودة

تكلفة الرحلة

وأريد عمل علاقة بين الجدولين بحيث اذا حدث ذلك فان قيمة الحقل (رقم المصيف) فى جدول الموظفين تتغير تلقائيآ حسب هذا التغيير

فمثلآ الموظف الذى كان مصيفه الى جمصة (أى كان قيمة حقل (رقم المصيف) فى سجله = 3)

تتغير تلقائيآ فتصبح 4

أى أريد أن تكون قيمة الحقل (رقم المصيف) فى جدول الموظفين تكون مساوية دائمآ لقيمة حقل المسلسل فى جدول المصايف

أرجوكم ساعدونى ولكم جزيل الشكر

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#9

أين عمالقة المنتدى؟ أين حريفو البرمجة؟

أوضح سؤالى بأسلوب أفضل

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

الجدول الأول هو جدول الموظفين وحقوله كالآتى

المسلسل : 1 - 2 - 3 - 4 - 5 - 6 - 7

الاسم : اسماعيل - محمد - صالح - ابراهيم - خالد - كمال - محسن

الوظيفة : مهندس - كاتب - محاسب - كهربائى - كاتب - خراط - محاسب

رقم المصيف : 3 - 4 - 2 - 2 - 1 - 3 - 4

والجدول الثانى هو جدول المصايف وحقوله كالآتى

المسلسل : 1 - 2 - 3 - 4

المكان : الأسكندرية - مطروح - جمصة - رأس البر

تاريخ السفر : 6 / 16 - 7 / 5 - 7 / 24 - 8 / 11

وكان جدول المصايف مرتبآ حسب تارخ السفر (عن طريق أى كود)

فاذا اضاف المستخدم عند عمل RUN مصيف جديد بتاريخ 27 / 6 مثلآ وقام البرنامج طبقآ للكود باعادة التسلسل فتغير تسلسل بعض المصايف فصار الجدول كالآتى

المسلسل : 1 - 2 - 3 - 4 - 5

المكان : الأسكندرية - العريش - مطروح - جمصة - رأس البر

تاريخ السفر : 6 / 16 - 6 / 27 - 7 / 5 - 7 / 24 - 8 / 11

وأريد عمل علاقة بين الجدولين بحيث اذا حدث ذلك فان قيمة الحقل (رقم المصيف) فى جدول فى الموظفين تتغير تلقائيآ حسب هذا التغيير

فمثلآ الموظف الذى كان مصيفه الى جمصة (أى كان قيمة حقل (رقم المصيف) فى سجله = 3)

تتغير تلقائيآ فتصبح 4

أى أريد أن يصبح جدول الموظفين كالآتى

المسلسل : 1 - 2 - 3 - 4 - 5 - 6 - 7

الاسم : اسماعيل - محمد - صالح - ابراهيم - خالد - كمال - محسن

الوظيفة : مهندس - كاتب - محاسب - كهربائى - كاتب - خراط - محاسب

رقم المصيف : 4 - 5 - 3 - 3 - 1 - 4 - 5

أرجوكم ساعدونى ولكم جزيل الشكر

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#10

أرجوكم ردو على سؤالى

وان كان أاحد له أى استفسار عن أى شئ يستفسر لأوضح له ما يريد

ولكم جزيل الشكر

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#11

عزيزي

ارفق مثال بسيط يوضح المطلوب وان شاء الله ستجد الحل

#12

كلما حاولت ارفاق قاعد البيانات التى أتحدث عنها فى سؤالى أو ارفاق برنامجى يالvb (الform والproject )

تظهر لى من المنتدى هذه الرسالة

فشل رفع المرفق , ليس مسموح من قبل الإدارة برفع هذا النوع من المرفقات

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#13

ألف شكر

و هذه هى المرفقات

frm________.zip

frm_________.zip

_______acces.zip

_______acces.zip

_______project.zip

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#14

عفوآ يا اخوانى

يبدو أنى اخترت عنوانآ خاطئآ للموضوع(عمل علاقة بين جدولين)

كل من يقرأ هذا العنوان يقول ان الموضوع قديم وفيه دروس كثيرة

أنا ما أريده كما شرحت لكم سابقآ هو أن تكون قيمة أحد حقول الجدول الأول تتغير تلقائيآ تبعآ لتغير قيمة أحد حقول الجدول الثانى

وأود من أى منكم أن يقوم بعمل Run للبرنامج وسيجد فى فورم المصايف 4 مصايف مرتبة حسب تاريخ السفر

فاذا اضاف أى منكم مصيف جديد بتاريخ 27 / 6 مثلآ وقام البرنامج طبقآ للكود باعادة التسلسل فتغير تسلسل بعض المصايف فصار الجدول كالآتى

5 4 3 2 1 المسلسل(resortno)

رأس البر جمصة مطروح العريش اسكندرية المكان(place)

11 / 8 24 / 7 5 / 7 27 / 6 16 / 6 تاريخ السفر(date)

فانى أريد ان قيمة الحقل (resortno) فى جدول الموظفين تتغير تلقائيآ حسب هذا التغيير

فمثلآ الموظف الذى كان مصيفه الى جمصة (أى كان قيمة حقل (resortno) فى سجله = 3)

تتغير تلقائيآ فتصبح= 4 بحيث يظل مصيفه الى جمصة كما هو

فكيف يتم عمل ذلك؟

ولكم ألف شكر

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#15

لماذا لاأحد يرد على سؤالى؟

أولآ : هل وصلتكم مرفقاتى أم أنى لم أستطع ارفاقها ؟

ثانيآ : هل سؤالى مفهوم أم غير مفهوم؟

ثالثآ : ان لم يكن موجود فى لغة الVB مايحقق لى طلبى فأخبرونى بأنه لا يوجد

ولكم ألف شكر

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#16

أليس لهذه المشكلة حل مطلقآ

لعل المثال المرفق يوضح سؤالى

فنجد مثلآ فى المثال المرفق

قاعدة بيانات للمصايف بالشركة تحتوى على جدولين الجدول الأول هو جدول الموظفين وحقوله كالآتى

المسلسل الاسم الوظيفة رقم المصيف(resortno)

والجدول الثانى هو جدول المصايف وحقوله كالآتى

المسلسل(resortno) المكان(place) تاريخ السفر(date) تكلفة الرحلة (PRICE)

وأود من أى منكم أن يقوم بعمل Run للبرنامج وسيجد فى فورم المصايف 4 مصايف مرتبة حسب تاريخ السفر

(عن طريق كود فى ال FORM ACTIVATE)كالآتى

4 3 2 1 المسلسل

رأس البر جمصة مطروح الأسكندرية المكان

8 / 11 7 / 24 7 / 5 6 /16 التاريخ

تكلفة الرحلة

فاذااضاف أى منكم مصيف جديد بتاريخ 27 / 6 مثلآ وقام البرنامج طبقآ للكود باعادةالتسلسل

فتغير تسلسل بعض المصايف فصار الجدول كالآتى

5 4 3 2 1 المسلسل(resortno)

رأس البر جمصة مطروح العريش اسكندرية المكان (place)

8 / 11 7 / 24 7 / 5 6 / 27 6/ 16 التاريخ (date)

فانى أريد ان قيمة الحقل (resortno) فى جدول الموظفين تتغير تلقائيآ حسب هذا التغييرفمثلآ الموظف الذىكان مصيفه الى جمصة (أى كان قيمة حقل (resortno) فى سجله = 3)تتغير تلقائيآفتصبح= 4 بحيث يظل مصيفه الى جمصة كما هوأى أريد أن تكون قيمة الحقل (رقم المصيف) فى جدول الموظفين تكون مساوية دائمآلقيمة حقل المسلسل فى جدول المصايف

فكيف يتم عمل ذلك؟

هل يكون ذلك بعمل RELATION SHEP فى قاعدة البيانات نفسها؟

أم يكون بكتابة كود معين فىالبرنامج؟

وفى كلتا الحالتين فكيف ذلك؟

أرجوكم ساعدونى ولكم جزيل الشكر

________________.rar

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

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

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

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

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

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