• 0
almohib_alsaghir

كيف استطيع التعامل مع اكثر من جدول في نفس الفورم ؟

سؤال

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

رمضان كريم , وبعد

اريد ان اتعامل مع اكثر من جدول في فورم واحد من فتح و تعديل وحذف وحفظ الـ.. خ من عمليات

بالكود اي عند فتح الفورم تفتح التكتس بوكس وتكون مربوطة مع جدولين مثلا وجاهذة لاستيعاب البيانات المدخلة و اجراء العمليت عليها وكـ.. امر "حفظ " مثلا عند الضغط عليه يقوم بالحفظ البيانات في الجدولين معا في نفس الوقت ...

ولكم مني جزيل الشكر و التقدير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

16 إجابة على هذا السؤال .

  • 0

عزيزي .... لك كل الشكر والتقدير للاهتمام وجزاك الله حيرا الرابط كانكويس جدا

بس ما اعطاني الانا عايزوه ,,, وهو كيف استطيع ان استدعي جدولين بالكود و التعامل مع "حفظ, مسح , ال خ " وياريت تكون بتقنية ado >

db.provider="microsotf.jet .oleddb.4.0;"

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

db.open app.path &"\db1.mdb"

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

rs.open"[ff]",db,adopenstatic,....

ياريت الفكرة بتاعت السؤال تكون وصلت

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

ولكم كل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي almohib_alsaghir

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

rs.open"[ff]",db,adopenstatic,....

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

Set rs = New ADODB.Recordset

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا Dena ............

بس ياريت مزيد من التوضيح في حالة عندي جدولين "t" ,"m" مثلا كيف اكتب كود الفتح و الحفظ للبيانات في الكودين ولكي كل الشكر

معليش بس مافهمتش كويس

و اجدد الشكر على الاهتمام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا أعتقد أنه يمكن فتح جدولين معا للتعديل في عبارة واحدة إلا أن يكون هناك علاقة ربط بين الجدولين

ولكن يمكنك حل المشكلة يدويا بحجز متحول لكل جدول ثم معالجة الأمر برمجيا بحيث عندما يصل في الاستعراض إلى نهاية الأول تنتقل إلى الجدول الثاني.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

عزيزى almohib_alsaghir بعد التحيه...

انا مع Dena فى قولها وسوف اقوم بعمل مثال وارفقه لك للتوضيح

مع خالص تحياتى...

شريف.

;) ;) :rolleyes:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الكريم هذا يعتمد على نوعية الجداول لديك فإن كان هناك ما يربط الجدولين كرقم الموظف مثلا فيجب أن يكون هذا الرقم في الجدولين أي أنه كالتي

في الجدول الاول الأول يوجد حقل اسمه ID

وفي الجدول الثاني يوجد حقل اسمه ID

راح تكون جملة الاسكيوال كالتالي :

Dim Rs as new Adodb.Recordset

Rs.Open "Select Table1.* ,Table2.* from Table1 Inner Join Table2 On Table1.ID = Table2.ID "

أما إذا كانت الجداول منفصلة فيمكنك عمل ريكورد ست لكل جدول على حدة

كالتالي

وتفتح الجدول الاول

Dim RS1 as New Adodb.Recordset 
Dim RS2 as New Adodb.Recordset

Rs1.OPen "[Table1]"
rs2.open "[table2]"

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مشكور يا omani و هذا مثال سريع على المطلوب لعل الله يوفقنا في ايجاد الحل الكامل باذن الله

و يا اخ / شــــــــــــــــريف عادل نحنو في الانتظار ما طول علينا

البرنامج.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ممكن اعرف ايه الفكرة فى فتح جدولين مع بعض ؟ (( خصوصا اذا لم يوجد بينهما علاقة ))

تم تعديل بواسطه VB6-Rocket
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

اخي المشرف قسم - الفجوال بيسك

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

اما سبب استعمال اكثر من جدول وفتحة في نفس الفورم ,,, لاني اريد ان اجرب ان ابني قاعدة بيانات كبيرة شوية لشؤون الموظفين مثلا ..

حيث يكون هناك جدول اسجل فيه "رقم - اسم - تاريخ ميلاد " الموظف وجدول اسجل فيه " المؤهل العلمي - تاريخ الحصول عليه - الدرجة الوظيفية" و جدول للــ " جهة التعين - رقم قرار التعين - تاريخ التعين " وهكذا فساحتاج الى ان اتعامل مع بيانات اكثر من جدول في نفس الوقت للحفظ و التعديل و الحذف و البحث

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

وشكرا على السؤال مع رجائي بالمشاركة ,,,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

اجدد شكري لعماني و دينا وكل المشاركين بالموضوع و اطلب منهم الاستمرار في العمل معي لاني توصلت الى حذء من الحل لكن اريد ان ارى افكاركم النيرة ,,,,,, و مازلت انتظر الرد من الاخ / شريف عادل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وينكم شباب ,,,, هل استسلم الجميع ام ان الموضع غير مشجع للمشاركة ,,,, ارجوكم مازلت انتظر الجواب ياخبراء

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

و لماذا لا تستخدم PersonID للربط بين هذه الجداول فهذا افضل كتصميم لقاعدة البيانات و يمكنك الاستعلام من الثلاث جداول كما ذكر الاخ Omani

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الكريم على مافهمت من الموضوع :

انه لديك نافذة تحتوي على اكثر من جدول تريد ان تحفض كل بيانات جدول في الجدول الخاص به يعني الموضفين والأقسام الخ . قد تحتاج لعمل الدوال :

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

ثم دالة اخرى تستقبل مصفوفة إستعلامات لتقوم بتمرير الإستعلام واحد تلوا الأخر إلى الدالة السابقة

حتى لا تضطر لتكرار الكود .

تتمثل الفكرة في توليد إستعلامات على عدد الجداول في النافذة مثلا لو كنت اتعامل مع 3 جداول

عند الإدخال قم بعمل التالي :

ولد إستعلام لإدخال البيانات الى جدول الموضفين هذا أولا

نفذ الإستعلام هذا ثم قم بعمل إستعلام أخر لجلب رقم الموضف الذي تم دخالة حاليا من القاعدة هذا إذا كنت تستخدم الإكمال التلقائي مع اني افضل أن تعمل خوارزمية توليد رقم تلقائي انت بنفسك إذا كنت خبير وإلا فلغي الفكرة لأنها متعبة قليل .

يمكنك جلب رقم الموضف الحالي الذي تم إدخالة بالحصول على اكبر رقم في رقم حقل جدول الموضفين عن طريق الدالة Max هذا حل ولك الحرية في الحصول علية .

الجزء الثاني بعد عملية إضافة الإسم وبيناته يبقى المؤهلات وهذا الجدول يأخذ رقم الموضف ثم المؤهل

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

وما بقى من الجداول بنفس الفكرة .

لكن هنا ملاحضة مهمة :

لو حدث مشكلة ما في تنفيذ الإستعلام الثاني وما يلية من إنقطاع الكهرباء إو غيرة من المشاكل

لذلك أنصحك باستخدام rollback وفي حال انتهيت من الجميع استخدم امر Commit في الـ Ado

بالتوفيق B)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عن طريق جملة Sqlيمكن فتح أكثر من جدول والتعامل معها حيث يمكن كتابة اسم الجدول ثم نقطة يكتب بعدها اسم الحقل ثم فاصلة ويكتب اسم الجدول ثم نقطة ثم اسم الحقل ......... وهكذا حتى تنتهي جميع الجداول والحقول التي يراد التعامل معها مع ملاحظة أن يكون بينها علاقات

مثال بعد الاعلان عن Sql : يكتب هكذا :

Sql = "SELECT addaen.addaen_name, almadeen.almadeen_name " & _

"FROM (alaqd INNER JOIN addaen ON alaqd.addaen_no = addaen.addaen_no) INNER JOIN almadeen ON alaqd.almadeen_no = almadeen.almadeen_no " & _

تم تعديل بواسطه abosaad54
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

كود كوماند الاضافة

Private Sub Command1_Click()

With Data1.Recordset

If Text1.TabIndex Then

If Text2.TabIndex Then

.AddNew

End If

End If

End With

With Data2.Recordset

If Text3.TabIndex Then

.AddNew

End If

If Text4.TabIndex Then

.AddNew

End If

End With

End Sub

كود فى كوماند التعديل

Private Sub Command2_Click()

With Data1.Recordset

If Text1.TabIndex Then

If Text2.TabIndex Then

.Edit

.Update

End If

End If

End With

With Data2.Recordset

If Text3.TabIndex Then

.Edit

End If

If Text4.TabIndex Then

.Edit

.Update

End If

End With

End Sub

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .