الدرس الثانى و العشرون ...قواعد البيانات / الجزء السادس : الاتصال بقاعدة بيانات أكسس بأستخدام مكتبة Activex Data Objects

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

الدرس الثانى و العشرون ...قواعد البيانات / الجزء السادس : الاتصال بقاعدة بيانات أكسس بأستخدام مكتبة Activex Data Objects

مُساهمة من طرف أحمد مناع في الأحد يناير 08, 2012 9:38 am

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



أخوانى الكرام أهلا وسهلا بكم فى الجزء السادس من دروس قواعد البيانات فى الفجوال بيسك 6 ...فى هذا الدرس أن شاء الله تعالى سنتعلم سويا أهم و أحدث تقنية الاتصال بقواعد البيانات فى الفجوال بيسك 6 ألا وهى مكتبة ADO وهى أختصار لجملة Microsoft ActiveX Data Objects ....فهيا بنا


أولا : أستدعاء المكتبة Microsoft ActiveX Data Objects



لكي تضيف مكتبة ADO الى برنامجك فيمكنك ذلك باتباع الخطوات التالية :
1- بعد فتح مشروع جديد من الفيجوال بيسك تختار من قائمة Project الخيار References
2- سوف تفتح نافذة تحتوي على الادواة المستخدمة مع لغة فيجوال بيسك
3- فتقوم باختيار الاداة Microsoft Activex Data Objects والتي تحتوي من الاصدار 2.0 الى الاصدار 2.8 حيث يمكنك اختيار اخر اصدار لديك ثم النقر على زر موافق ....كما فى الشكل التالى :






بهذه الطريقة فانت ربطت مكتبة ال ADO ببرنامجك


ثانيا : كتابة التعليمات البرمجية الخاصة بالاتصال بقاعدة البيانات و الجدوال التى بها



- يتم في البداية تكوين متغيرين أحدهما يعبر عن قاعدة البيانات وليكن B و الثانى يعبر عن جدول البيانات وليكن مثلا R ويتم ذلك بكتابة الكود التالى فى قسم التصريحات :

الرمز:
Dim B As New Connection
Dim R As New Recordset





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



الرمز:


B.Provider = "Microsoft.JET.OLEDB.4.0;"
B.Open App.Path & "\g1.mdb"

R.Open "[t1]", B, adOpenStatic, adLockReadOnly

 




شرح الكود السابق :



السطر الاول : B.Provider = "Microsoft.JET.OLEDB.4.0;"


والاستفادة من هذا السطر هو تحديد المزود الذي سنتصل من خلاله بقاعدة البيانات إن كانت اكسيس آو آس كيول وغيرها.هو ا لخاص بقواعد بيانات اكسيس . Microsoft.JET.OLEDB.4.0 فالمزود



السطر الثانى :B.Open App.Path & "\db1.mdb "


والغرض منه تحديد مسار قاعدة البيانات ... db1.mdb هو اسم قاعدة البيانات.وبالخطوات السابقة انتهينا من عملية الاتصال مع قواعد بيانات اكسيس.



السطر الثالث :R.Open "[t1]", B, adOpenStatic, adLockReadOnly


حيث الجدول هنا هو T1 و B تحدد الجدول الموجود في قاعدة البيانات .وقد تلاحظون هناك خاصيتين بعد فتح قاعدة البيانات B

adOpenStatic, adLockReadOnly


و هما عبارة عن مؤشر وقفل ....

تستخدم خاصية Cursor Type او ( المؤشرات) للدلالة على نوع مجموعة من البيانات او المعطيات التي ستعاد من قبل الموزود وهي مهمه جدا لجعل الاتصال اكثر مرونه مع قواعد البيانات وهناك اربع انواع هيـ :




AdOpenForwordOnly

وهي مجموعة من السجلات من نمط ForwordOnly أي يمكن فقط التنقل عبر السجلات في المجموعة نحو الامام فقط .

ويكون شكلها كمل يلي


R.Open "[T1]", B, AdOpenForwordOnly, adLockReadOnly


AdOpenKeyset

يقدم هذا النوع مجموعة من السجلات المتغيرة فأي تحرير او تعديل في البيانات من قبل مستخدم اّخر يكون مرئياً هنا .
والسجلات المحذوفة من قبل المستخدمين الاخرين تصبح ملغاة بالنسبة لك ولا يمكنك الوصول اليها , اما السجلات المضافة من قبل مستخدمين اخرين فهي غير مرئية بالنسبة لك .


R.Open "[T1]", B, AdOpenKeyset, adLockReadOnly



AdOpenDynamic

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


R.Open "[T1]", B, AdOpenDynamic, adLockReadOnly

AdOpenStatic

هذا المؤشر الاستاتيكي هو نسخة جامدة او يقدم نسخة جامدة من السجلات يمكن إستخدامها لايجاد البيانات , او التحرك نحو الامام فقط والخلف وهكذا .ولكن أي إضافة او تغيير او تعديل او حذف من قبل المستخدمين الاخرين لايصبح مرئياً هنا.

R.Open "[T1]", B, AdOpenStatic, adLockReadOnly



انواع القفل :

تستخدم الخاصية Lock Types للدلالة على الطريقة التي تريد قفل البيانات فيها او طريقة إدارة البيانات فيها أي عمليات الاقفال خلال العمل مع مجموعة السجلات لديك وهناك اربع قيم أيضا منها وهيـ كالتالي





AdLockReadOnly

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


R.Open "[T1]", B, AdOpenStatic, adLockReadOnly

AdLockPessimistic

هذا الخاصية تقوم بعملية اقفال قاعدة البيانات خلال التحرير (التعديل ) فقط .

R.Open "[T1]", B, AdOpenStatic, adLockPessimistic



AdLockOptimistic

هذا الخاصية تقوم بعملية اقفال قاعدة البيانات خلال تحديث السجلات فقط . وهي الافضل استخداما دائما

R.Open "[T1]", B, AdOpenStatic, AdLockOptimistic



AdLockBatchOptimistic :


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

على مجموعة السجلات

R.Open "[T1]", B, AdOpenStatic, AdLockBatchOptimistic




ثالثا :أظهار البيانات الموجودة فى قاعدة البيانات

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

If R.RecordCount < 1 Then Exit Sub
Text1.Text = R!ID
Text2.Text = R!Name
Text3.Text = R!TEL
Text4.Text = R!ADRS




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


رابعا :العمليات الرئيسية على سجلات قاعدة البيانات



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

وسنبدأ بعملية الإضافة :

طبعة للوصول إلى هذه النقطة نقطة إضافة البيانات يجب توفير :

- اتصال مع قواعد البيانات.
- فتح الجدول بالطريقة المعتادة ولكن مع إعطاء صلاحية الإضافة أو صلاحيات المعالجة .

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



الرمز:


R.Open "[t1]", B, adOpenStatic, adLockPessimistic




  • أضافة سجل جديد ....
    الرمز:
    R.AddNew
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
    Text4.Text = ""
  • حفظ السجل الحالى ...
    الرمز:
    R!ID = Text1.Text
     R!Name = Text2.Text
     R!TEL = Text3.Text
     R!ADRS = Text4.Text
     
     R.Update

لتحفظ سجل يجب عليك أن تقوم بوضع القيم التي في مربعات النص في الحقول التي توازيها في الجدول ، و لاحظ أنه سوف يعطيك رسالة خطأ عندما تقوم بالحفظ دون ان تقوم باختيار تعديل سجل او اضافة سجل لذلك يفترض بك ان تجعل زر الحفظ في حالة التمكين فقط عندما يضيف المستخدم سجلا او يختار تعديل سجل، ، و ايضا يجب عليك ان تقوم بتحديث الجدول بعد عملية الحفظ لتكمل العملية بسلام


  • حذف السجل الحالى ...
    الرمز:
    R.Delete
    R.Requery
    If R.EOF Then R.MoveLast


ال Requery هي بمثابة Refresh في DAO حيث تقوم بتحديث للبيانات



-أوامر التنقل بين السجلات




  • الانتقال للسجل الاول ...
    الرمز:
    R.MoveFirst
    Call SHO

  • الانتقال للتالى ....
    الرمز:
    R.MoveNext
    Call SHO

  • الانتقال للسابق ...
    الرمز:
    R.MovePrevious
    Call SHO

  • الانتقال للاخير ...
    الرمز:
    R.MoveLast
    Call SHO


ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: الدرس الثانى و العشرون ...قواعد البيانات / الجزء السادس : الاتصال بقاعدة بيانات أكسس بأستخدام مكتبة Activex Data Objects

مُساهمة من طرف زهراء في الإثنين مارس 19, 2012 8:41 am

مشكور أخى أحمد ,,,,,

زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: الدرس الثانى و العشرون ...قواعد البيانات / الجزء السادس : الاتصال بقاعدة بيانات أكسس بأستخدام مكتبة Activex Data Objects

مُساهمة من طرف عمر بشر في الخميس يونيو 11, 2015 10:38 am

يقى الأثر وتبقى فينا مشكورا ...... جزاك الله  خيرا

عمر بشر
.
.

تاريخ التسجيل : 01/06/2015
المساهمات : 3
النقاط : 3
التقيم : 0
الدولة : ليبيا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: الدرس الثانى و العشرون ...قواعد البيانات / الجزء السادس : الاتصال بقاعدة بيانات أكسس بأستخدام مكتبة Activex Data Objects

مُساهمة من طرف salamfaraj2002 في الخميس نوفمبر 05, 2015 7:53 am

مشكور اخي احمد
ربطت قاعدة البيانات بشكل صحيح
ولكن التنقل بين السجلات يظهر في خطأ عند جملة 
call sho
and
call show
ارجو التوضيح

salamfaraj2002
....
....

تاريخ التسجيل : 18/04/2015
المساهمات : 54
النقاط : 68
التقيم : 0
الدولة : ليبيا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: الدرس الثانى و العشرون ...قواعد البيانات / الجزء السادس : الاتصال بقاعدة بيانات أكسس بأستخدام مكتبة Activex Data Objects

مُساهمة من طرف أحمد مناع في الجمعة نوفمبر 06, 2015 8:00 pm

salamfaraj2002 كتب:مشكور اخي احمد
ربطت قاعدة البيانات بشكل صحيح
ولكن التنقل بين السجلات يظهر في خطأ عند جملة 
call sho
and
call show
ارجو التوضيح

اتمنى ان ترف صورة لهذا الحطأ وايضا كتابة الشفرة لتحديد و لمعرفة السبب

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: الدرس الثانى و العشرون ...قواعد البيانات / الجزء السادس : الاتصال بقاعدة بيانات أكسس بأستخدام مكتبة Activex Data Objects

مُساهمة من طرف salamfaraj2002 في الجمعة ديسمبر 04, 2015 7:00 am

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


مبرمج جديد

salamfaraj2002
....
....

تاريخ التسجيل : 18/04/2015
المساهمات : 54
النقاط : 68
التقيم : 0
الدولة : ليبيا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى