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

اريد كود لتعديل جدول مرتبط

بدأه H_O_A في 22 نوفمبر 2009 · 6 رد · 1,067 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الاخوة الكرام :

لدي قاعدتين بيانات الاول 1 والثانية 2

قاعدة البيانات 2 موجود بها جداول فقط لاغير --- هذه الجدوال مرطبته في قاعدة البيانات 1

اريد كود بحيث اسطتيع من قاعدة بيانات 1 تعديل خصائص جدول موجود في قاعدة بيانات 2

مثال : اريد اضافة عمود جديد اسمه التاريخ نوعه تاريخ او وقت في قاعدة بيانات 2 من خلال كود موجود في قاعدة بيانات 1 .....

او مثلا : اقوم بتغير نوع البيان في الحقل رقم الفاتورة من حقل نصي الي حقل رقمي .....

هل ممكن ذلك ؟

ارجو ان يكون السؤال واضح

شكرا مقدما

#2

اخي الفاضل H_O_A

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

نعم يكمن عمل ذلك في برنامج الأكسيس ولا يوجد صعوبة إن شاء الله

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

مع مراعاة اخبارنا هل القاعدتين تكون في مجلد واحد ثابت ( مكان واحد ) او ان القاعدتين في أمكان مختلفه

لأنه في الحالة الأولى سيتم وضع مسار ثابت للقاعدة الثانية بواسطة الكود اما في الحالة الثانية سيتم استخدام تصفح القاعدة على جهاز الكمبيوتر بواسطة الـ Browse File

#3

والله منورة المنتدي اختنا زهرة

الاخ صاحب المشاركة يمكنك التعديل فى تصميم جدول باستخدام Alter Table

يعني المثال التالي

ALTER TABLE table1 ADD COLUMN Notes TEXT(25)

يقوم باضافة حقل اسمه Notes فى جدول table1

والمثال التالي

ALTER TABLE table1 ALTER COLUMN Namex TEXT(50)

يقوم بتعديل الحقل namex فى جدول table1 الي النوع نص وطوله 50 حرف - حيث ان اطول الاصلي 10 حرف

يبقي شيئ واحد وهو سيناريو التعديل بالقاعدة اللي فيها الجداول ؟؟؟؟؟

اذا كان الجدول المطلوب التعديل فيه غير مرتبط بجداول اخري

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

مع الحرص الشديد عن استخدام DeleteObject يعني لازم نختبر منطقية الخطوات اولا حتي لا نفقد اي بيانات

DoCmd.DeleteObject acTable, "Table1"
	DoCmd.TransferDatabase acImport, "Microsoft Access", "c:\ZA_link\2.mdb", acTable, "table1", "table1", False
	DoCmd.RunSQL "ALTER TABLE table1 ADD COLUMN Notes TEXT(25);", -1
	DoCmd.RunSQL "ALTER TABLE table1 ALTER COLUMN Namex TEXT(50)", -1
	DoCmd.TransferDatabase acExport, "Microsoft Access", "c:\ZA_link\2.mdb", acTable, "table1", "table1", False
	DoCmd.DeleteObject acTable, "Table1"
	DoCmd.TransferDatabase acLink, "Microsoft Access", "c:\ZA_link\2.mdb", acTable, "table1", "table1", False

السطر 1 : يقوم بحذف الربط بين الجدولين

السطر 2 : يقوم باستيراد الجدول بالكامل الي القاعدة الحالية

السطر 3و4 : التعديل بتصميم الجدول

السطر 5 : اعادة تصدير الجدول للقاعدة 2

السطر 6 : حذف الجدول من القاعدة الحالية

السطر 7 : اعادة ربط الجدول

مرفق مثال مبسط جدا

المجلد يتم فكه علي الـ C مباشرة ليكون C:\ZA_link

وبداخله 1.mdb و 2.mdb

اولا قم بفتح كل من القاعدتين والتعرف علي محتوايتهما

الجدول بالقاعدة 2 يحتوي علي حقلين Id وهو AutoNumber والثاني namex وطولة 10 وهو text

بعد تشغيل الملف 1 قم بالضغط علي زر الامر فسيتم تغيير طول Namex الي 50 حرف واضافة حقل جديد اسمه notes

طبعا الترتيب المنطقي للكود مهم جدا

كذلك مرفق ماكرو يقوم بنفس العمل

اخوك فى الله

ZA_link.rar

تم تعديل هذه المشاركة بواسطة ahamied في 22 نوفمبر 2009 في 15:34

Microsoft Certified DataBase Administrator MCDBA

#4

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

الاستاذ الفاضل / ahamied

شكرا لتعاونك ؛ انا جبت المثال اللي حضرتك رفعه بس يظهر في مشكلة ؛ انه في النهاية بيكون الجدول علي شكل استيراد وليس ربط .

علي اي حال شكرا جزيلا ؛ انا فهمت الفكرة خلاص .... وتقريبا وصللت للنقطة اللي انا عايزاها

اكرر شكري مرة اخري .....

ام عهود .... مش ممكن طبعا حسيبك تعدي علي الموضوع كده من غير ما ناخد ابداع من الابدعات :D

معلومة : قاعدة البيانات ثابته في مكان معين .

النقطة التانيه : هي استفسار وليس طلب ؛ وان امكن تنفيذه فيكون لكي كل الشكر وان لم يمكن فلكي ايضا كل الشكر ؛ هل يمكن عمل التعديل من خلال قوائم منسدلة ؟

يعني مثلا : انا عايز اضيف علي جدول معين حقل جديد من نوع نص

اقوم بفتح شاشة اجد بها قائمة منسدلة بها اسماء الجدوال المرتبطة

وقائمة اخري بجانبها بها انواع الحقول نص تاريخ مذكرة ..... الخ

وحقل ثالث خالي اكتب به اسم الحقل المراد اضافته في الجدول ؟

انا اعلم ان ما اقوله صعب جدا ؛ ولكن ام عهود عودتنا ان تكون الاسئله الموجه اليها علي قد علمها

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

مرفق قاعدة بيانات بناء علي طلب ام عهود ؛ فضلا : قم بفك قاعدة البيانات في \:C

arabteam.rar

تم تعديل هذه المشاركة بواسطة H_O_A في 22 نوفمبر 2009 في 17:39

#5
اقتباس
شكرا لتعاونك ؛ انا جبت المثال اللي حضرتك رفعه بس يظهر في مشكلة ؛ انه في النهاية بيكون الجدول علي شكل استيراد وليس ربط .
اقتباس
DoCmd.TransferDatabase acLink, "Microsoft Access", "c:\ZA_link\2.mdb", acTable, "table1", "table1", False

اخي الكريم

اود ان اعرف كيف يكون الناتج استيراد جدول..... هذا مستحيل :blink:

قم بتحميل المرفق مرة اخري وفك ضغطه فى مكانه الصحيح...فقط

وان شاء الله ام عهود هتتحفنا بتحفة فنية كما عهدناها :wub:

اخوكم فى الله

تم تعديل هذه المشاركة بواسطة ahamied في 22 نوفمبر 2009 في 20:46

Microsoft Certified DataBase Administrator MCDBA

#6

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

الاخ الفاضل : ahamied

بعد تجربة مرة اخري وبتاني وجدت ان فكرتك رائعه جدا

شكرا عليها

ولكن اسمح لي بطلب اخر ؛ اذا كانت قاعدة البيانات بكلمة مرور ؟؟؟؟؟؟ كيف يمكن عمل ذلك ؟

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

شكرا مقدما

#7

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

رفق ملف بصيغة xps يمكنك تشغيله مع الاكسبلورر

يحتوي علي شرح كامل للامر doCmd.TransfereDatabase

أخوكم في الله

arabteam.rar

Microsoft Certified DataBase Administrator MCDBA

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

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

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

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

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