الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
صفحة 1 من اصل 1 • شاطر
الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
بسم الله الرحمن الرحيم
أخوانى الكرام أهلا وسهلا بكم فى الجزء الثالث من دورس قواعد البيانات من دورة منتدى مصر التقنى لأحتراف الفجوال بيسك 6 ...تحدثنا فى الدرس السابق وهو الجزء الثانى من دروس قواعد البيانات عن الاداة Data Control و كيفية ربط قاعدة بيانات أكسس بها ...و قد قلنا أن هذه الاداة لا تقبل الا تنسيق 97 من نوع قاعدة بيانات أكسس ....
فى هذه الدرس أن شاء الله تعالى سنتحدث عن كيفية ربط قاعدة بيانات أكسس بأستخدام مكتبة (DAO) أو Microsoft DAO 3.6 object Library .. وطبعا تتميز هذه المكتبة أنك تستطيع أن تربطها بقاعدة بيانات أكسس من تنسيق 97 حتى 2005 بدون أى تحويل أو مشاكل ...وذلك عكس الاداة Data control التى لا تقبل الا تنسيق 97 و بالتالى فأن أى أحد يمتلك أكسس 2000 أو 2002 أو 2003 كان يجب علية أولا تحويل قاعدة البيانات الى تنسيق 97 حتى يتمكن من ربطا بالاداة .....
لكن مكتبة (DAO) تستطيع أن تربطها بقاعدة بيانات من تنسيق 97 حتى 2005 بدون تحويل قاعدة البيانات ...لكن السؤال الذى يطرح نفسة :
هل يمكن أستخدام قاعدة بيانات 2007 وربطها بالفجوال بيسك 6 ؟
الاجابة : نعم ويمكنك فعل ذلك بأحد الطريقتين الاتيتين :
الطريقة الاولى : هو أن تقوم بأنشاء قاعدة بيانات أكسس 2007 ثم بعد ذلك تحويلها الى تنسيق 2000 أو 2003 كما فى الصورة التالية :
أما الطريقة الثانية :وهى أستخدام قاعدة بيانات 2007 مباشرة دون تحويل و ربطها بالفجوال بيسك 6 عن طريق مكتبة (DAO) ...وسيتم شرح تلك الطريقة لكن بعد التعرف على تلك المكتبة بالتفصيل
المهم _ قم بأنشاء قاعدة بيانات من نوع أكسس سواء بنسخة 2007 ثم تحويلها الى تنسيق 2000 أو 2003 وليكن أسمها (db1)بها جدول واحد وهو جدول customer به أربع صفوف أو سجلات وهم على التوالى :رقم العميل (no),أسم العميل(name) , التليفون (tel), العنوان(adrs)....
ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
بعد ما قمنا بتصميم و أنشاء قاعدة بيانات العملاء نقوم بفتح الفجوال بيسك 6 كمعتاد و أختيار مشروع قياسى ...ثم ضع على الفورم عدد 8 زر وعدد 4 أدادة عنوان label وعدد 4 صندوق نص textbox ثم قم بضط الخصائص كما فى الشكل التالى :
بعد ذلك سنقوم بربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library و يتم ذلك عبر الخطوات التالية :
الخطوة الاولى : أستدعاء مكتبة Microsoft DAO 3.6 object Library
لبدء التعامل مع DAO لا بد من اضافة المكتبة الخاصة بالداو إلى المشروع الذي قمنا بانشاءه ، وذلك من قائمة Project اختر Refrence واختر المكتبة : Microsoft Dao 3.6 Object Library أو أي اصدار اقدم ، إلا أن 3.6 هو الاصدار المفضل ....كما فى الشكل التالى :
ثم أختر المكتبة ثم أضغط أوكية كما فى الشكل التالى :
الخطوة الثانية :كتابة الاكواد البرمجية
_ اولاً سنقوم بتعريف متغيرين ليقوم الأول بحمل قاعدة البيانات لكى نتصل بها من خلاله والاخر ليحمل الجدول لى نتصل به من خلاله ايضاً والمتغيرين على التوالى هما Db و Rs .
اذهب الى قسم التصريحات العامة (General) واكتب الكود التالى :
- الكود:
Dim Db As Database
Dim Rs As Recordset
وبذلك قمنها بتعريف المتغيرين ليحمل Db القاعدة ويحمل Rs الجدول
خد بالك !
ليس بمجرد اننا عرفنا المتغير انه اتصل بالقاعدة ولكن الان هو يفهم ان وظيفته او نوعه DataBase اى قاعدة بيانات والاخر RecordSet اى جدول ولكن لا يعرف المتغير حتى الان مصدره ولا حتى مع من سيتصل
والان سنقوم بربط المتغيرين بالقاعدة والجدول :أكتب الكود التالى فى حدث Form_Load للفورم :
- الكود:
Set Db = DBEngine.OpenDatabase(App.Path & "\db1.mdb")
Set Rs = Db.OpenRecordset("T1", 1)
شرح الكود السابق :
السطر الاول : أول جملة في الاجراء هي جملة الاسناد ولقد بدأناها بأمر الاسناد المعروف Set ثم وضعنا القيمة التي سنسند فيها و هيDb التي عرّفناها و قلنا سنسند فيها القاعدة الاصلية لكي لاتتغير قيمها اثناء المعالجة المؤقتة ثم كتبنا كلمة DBEngine و هي عبارة عن نوع قاعدة البيانات التي ستستخدمها و هذا هو محرك قاعدة البيانات من نوع Access ، بعد ذلك و ضعنا الامر الذي سيقوم بفتح قاعدة البيانات لكي تستطيع الوصول الى محتواها Opendatabase ، بعد ذلك وضعنا مسار قاعدة البيانات و لكي تتجنب مشكلة تغير المسار من جهاز لاخرنستخدم الدالة App.path اي مسار المحلد الذي يحتوي البرنامج و لاستخدام هذه الطريقة يجب ان تكون قاعدة البيانات في نفس مجلد البرنامج، ثم كتبنا اسم القاعدة و امتدادها
السطر الثانى :وضعنا جملة الربط للجدول و بدأنا بأمر الاسناد المعروف Set ثم اسم القيمة التي سنسند قيم الجدول فيها و هي التي عرفناها فيما قبل باسم Rs بعد ذلك نكتب اسم القاعدة المستعار الذي اسندنا القاعدة الاصلية فيه و هوDb ثم نكتب الامر الذي سيفتح لنا الجدول لكي نستطيع الوصول الى محتواه و هو Openrecordset بعد ذلك نكتب اسم الجدول الحقيقي بين علامتي تنصيص و نكتب نوع الرط وهو dbopentable ويمكنك التعبير عنه برقم (1)استخدم هذه الطريقة فقط و لا تسأل لماذا لانها من الاوامر الثابته و من انواع الربط و ستستطيع التفريق بين انواع الربط في المستقبل مع كثرة التمارين فلا تستعجل ، هكذا تكون قد قمت بربط قاعدة البيانات و الجدول بواسطة الكود ،،،، مبروك
ثانيا : أظهار البيانات الموجودة فى قاعدة البيانات
الان سنتعرف على كيفية اظهار بيانات قاعدة البيانات للمستخدم ...ولفعل ذلك سنقوم بعمل أجراء و ذلك من خلال الكود التالى :
- الكود:
If Rs.RecordCount < 1 Then Exit Sub
Text1.Text = Rs!ID
Text2.Text = Rs!Name
Text3.Text = Rs!TEL
Text4.Text = Rs!ADRS
الان دعنا نلقي نظرة على اجراء اظهار البيانات بدأنا اولا بالتأكد اذا كان الجدول يحتوي على بيانات ام لا فإذا كان لا يحتوي فنخرج من الاجراء لكي لا يحدث مشاكل اثناء العرض
بعد ذلك نقوم بإظهار قيمة ما في الحقول في مربعات النص ، و لاحظ أننا استخدمنا علامة التعجب ! لكي تفصل بين اسم الجدول المستعار و اسم الحقل ، يجب أن تفرق بين اسم الدول او القاعدة المستعار و الاصلي و متى نستخدم كل منهما
و الان يجب أن نضيف امر استدعاء لإجراء العرض عند تحميل البرنامج فسيكون الامر في حدث التحميل هكذا :
- الكود:
Private Sub Form_Load()
Set Db = DBEngine.OpenDatabase(App.Path & "\g1.mdb")
Set Rs = Db.OpenRecordset("T1", 1)
Call showdata
End Sub
ثالثا : العمليات الرئسية على سجلات قاعدة البيانات
في هذا الجزء الثالث و الاخير من هذا الدرس سوف نتعلم كيفية التنقل بين السجلات و كيفية الحفظ و التعديل و الاضافة و الحذف وذلك النحو التالى :
1_3 : أوامر الاضافة و التعديل و الحذف :
- أضافة سجل جديد
- الكود:
Rs.AddNew
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
هذا الامر يقوم بأضافة سجل جديد ثم نقوم بمسح ما في مربعات النص لتهيئتها للإضافة و هي خطوة لتعطي طابع الاحتراف فقط
- تعديل السجل الحالى ...
- الكود:
Rs.Edit
- حفظ البيانات فى قاعدة البيانات
- الكود:
Rs!ID = Text1.Text
Rs!Name = Text2.Text
Rs!TEL = Text3.Text
Rs!ADRS = Text4.Text
Rs.Update
لتحفظ سجل يجب عليك أن تقوم بوضع القيم التي في مربعات النص في الحقول التي توازيها في الجدول ، و لاحظ أنه سوف يعطيك رسالة خطأ عندما تقوم بالحفظ دون ان تقوم باختيار تعديل سجل او اضافة سجل لذلك يفترض بك ان تجعل زر الحفظ في حالة التمكين فقط عندما يضيف المستخدم سجلا او يختار تعديل سجل، ، و ايضا يجب عليك ان تقوم بتحديث الجدول بعد عملية الحفظ لتكمل العملية بسلام و هذا هو الكود المطلوب:
- حذف سجل ...
عملية حذف السجل سهلة ، و لكن ماذا بعد ان تحذف السجل ؟ بالطبع يجب ان تعرض السجل التالي ، و ايضا يجب ان تراعي المشاكل التي تواجهك عند انتقالك للسجل التالي فقد لا يكون هناك سجل تالي وقد شرحنا كيف تتفادى هذه المشكلة في هذا الدرس ، و هذا هو الكود اللازم :
- الكود:
Rs.Delete
Rs.MoveNext
If Rs.EOF Then Rs.MoveLast
2_3 : أوامر التنقل بين السجلات
- الانتقال للسجل الاول ...
- الكود:
Rs.MoveFirst
Call showdata
- الانتقال للسجل الاخير ...
- الكود:
Rs.MoveLast
Call showdata
- الانتقال للسجل التالى ...
- الكود:
Rs.MoveNext
Call showdata
- الانتقال للسجل السابق ...
- الكود:
Rs.MovePrevious
Call showdata
هذه كل اوامر التنقل التي تحتاجها ، لكن لم ننتهي بعد فستواجهك مشكلة ، فمثلا عندما تريد أن تنتقل للسجل التالي و انت في السجل الاخير طبعا لا يوجد سجل تالي لذلك سيتوقف البرنامج ، و نفس الشيء عند الانتقال للسجل السابق و انت في السجل الاول فلا يوجد سجل سابق فسيتوقف البرنامج ، لذلك سنقوم بإضافة جملة شرطية للتأكد اذا كان السجل الأخير او الاول حسب الحاله ثم نقوم بوضع امر Movefirst او movelast حيث ان هذين الامرين لا يتأثران سواء كان هناك سجل او لا و طريقة استخدامهم هكذا :
ملاحظة
نستخدم الدالة EOF لمعرفة اخر سجل في الجدول ، و نستخدم الدالة BOF لمعرفة اول سجل في الجدول
سنضع الجملة الشرطية التالية في زر الانتقال للتالي فإذا كان هذا اخر سجل اذا انتقل للسجل التالي
If Rs.EOF Then Rs.MoveLast
و كذلك في زر الانتقال للسابق نضع شرط اذا كان هذا اول سجل اذا انتقل للسجل الاول
If Rs.BOF Then Rs.MoveFirst
لذلك سنضيف الجملتين السابقتين لكود الانتقال للتالي و الانتقال للسابق فييصبح كود الانتقال للتالي هكذا :
Private Sub cmd6_Click()
Rs.MoveNext
If Rs.EOF Then Rs.MoveLast
Call showdata
End Sub
وكود الانتقال للسابق هكذا :
Private Sub cmd7_Click()
Rs.MovePrevious
If Rs.BOF Then Rs.MoveFirst
Call showdata
End Sub
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
ما شاء الله وبارك الله فيكم
eng_saba- .
- تاريخ التسجيل : 02/10/2012
المساهمات : 2
النقاط : 2
التقيم : 0
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
الصور غير صالحة ....اتمنى ان يتم تلقيح الدرس بصور جديدة ؟
مدونة وليدوف التطويرية- ...
- تاريخ التسجيل : 22/11/2011
المساهمات : 32
النقاط : 48
التقيم : 4
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
تسلم ايديك اخى اقسم بالله انت افدتنى لابعد حد جزاك الله عنى وعن كل الشباب الف خير
tonde- .
- تاريخ التسجيل : 10/12/2013
المساهمات : 4
النقاط : 4
التقيم : 0
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
انا مبتدئى اخى واتمنى تفيدنا بدروسك ومساهماتك
tonde- .
- تاريخ التسجيل : 10/12/2013
المساهمات : 4
النقاط : 4
التقيم : 0
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
شكرا اخي
هل تسمح لي بتوضيح اللبس اللي عندي
انا متابعك درس وراء الثاني ولكني هنا فهمت ان اسم الجدول بالاكسس customer
ولكن عند ربطه بقاعدة البيانات بطريقة مكتبة DAO ارى انه ربط باسم |T1
هل يمكن توضيح ذلك ... مع فائق احترامي وتقديري لمجهودكم العظيم
هل تسمح لي بتوضيح اللبس اللي عندي
انا متابعك درس وراء الثاني ولكني هنا فهمت ان اسم الجدول بالاكسس customer
ولكن عند ربطه بقاعدة البيانات بطريقة مكتبة DAO ارى انه ربط باسم |T1
هل يمكن توضيح ذلك ... مع فائق احترامي وتقديري لمجهودكم العظيم
salamfaraj2002- ....
- تاريخ التسجيل : 18/04/2015
المساهمات : 57
النقاط : 75
التقيم : 0
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
عذرا ... ولكن من شدة متابعتي لاحظت تغيير في رقم العميل
ففي المثال نرمز له no
وفي الكود لاحظته ID
فقط من باب استفادتي من دروسكم اخي احمد المناع، جزاكم الله خيرا
ففي المثال نرمز له no
وفي الكود لاحظته ID
فقط من باب استفادتي من دروسكم اخي احمد المناع، جزاكم الله خيرا
salamfaraj2002- ....
- تاريخ التسجيل : 18/04/2015
المساهمات : 57
النقاط : 75
التقيم : 0
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
أما ان الدرس صعب
أو ان البرنامج السابق به اخطاء
أو ان البرنامج السابق به اخطاء
salamfaraj2002- ....
- تاريخ التسجيل : 18/04/2015
المساهمات : 57
النقاط : 75
التقيم : 0
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
وأخيرا اكتشفت الخطأ
وقمت بإصلاحه والحمد لله
أخي أحمد مناع : أشكرك على هذه الدروس القيمة
كنت اتمنى لو وضعت كود لعدد السجلات
شكرا وفي انتظارك
وقمت بإصلاحه والحمد لله
أخي أحمد مناع : أشكرك على هذه الدروس القيمة
كنت اتمنى لو وضعت كود لعدد السجلات
شكرا وفي انتظارك
salamfaraj2002- ....
- تاريخ التسجيل : 18/04/2015
المساهمات : 57
النقاط : 75
التقيم : 0
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
عذرا على المداخلة من جديد
لا أعرف كيف ارفق مشروعي
إني بحاجة الى كود حفظ combo box الذي وكذلك list box
باستخدام المكتبة Dao
Thanks
لا أعرف كيف ارفق مشروعي
إني بحاجة الى كود حفظ combo box الذي وكذلك list box
باستخدام المكتبة Dao
Thanks
salamfaraj2002- ....
- تاريخ التسجيل : 18/04/2015
المساهمات : 57
النقاط : 75
التقيم : 0
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
وكذلك أريد نقل بيانات سجل موطف إلى فورم اخر / كيف؟
salamfaraj2002- ....
- تاريخ التسجيل : 18/04/2015
المساهمات : 57
النقاط : 75
التقيم : 0
الدولة :
الجنس :
رد: الدرس التاسع عشر ...قواعد البيانات / الجزء الثالث :ربط قاعدة بيانات أكسس بأستخدام مكتبة Microsoft DAO 3.6 object Library
شرح رائع ومبسط جدا
سلمت يداك
سلمت يداك
Ahmad Mohasseb- .
- تاريخ التسجيل : 29/01/2022
المساهمات : 2
النقاط : 2
التقيم : 0
الدولة :
الجنس :
| |
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد