قواعد البيانات : ( هذه المقدمه من دروس الاستاذ Internet Master) فى قسم قواعد البيانات
قواعد البيانات !!! لاحظ كلمة البيانات، والبيانات هي مجموعة لا معنى لنا من الأرقام والكلمات... البيانات أي شىء مثل كلمة "ربح" كلمة "خسارة" رقم "2000" وهكذا...
البيانات لا تعني شيئا هذه أول خاصية من كلمة بيانات أنها لا تعني أي شىء، والبيانات لا يستفاد منها إطلاقا !!
الخاصية الثانية لكلمة بيانات هي الحجم، حيث أن البيانات دائما تعني الكثرة والضخامة من حيث العدد !!
وهذا يضع كلمة بيانات في موقع سىء حيث أنها ضخمة وكثيرة ومتشعبة وفي نفس الوقت لا معنى لها.
كلمة قاعدة تعني تنظيم الشىء على أسس، وهذا ما يتم في قواعد البيانات، هو تنظيمها ومن ثم تحليلها.
مكونات قاعده البيانات : (بدايه الدرس)
كما ترى فقاعده البيانات تتكون من Tables وكل Table تتكون من صفوف واعمده , فالصفوف تسمى Records
ونقطه تقاطع الصف مع العمود يسمى Field .
ربط قواعد البيانات بالفيجول بيزيك :
وبالتالى عندما توجد عندنا قاعده بيانات تحتوى على الكثير من المعلومات ونحتاج التعامل معها
بالاضافه , تعديل او حتى حذف..استخراج تقارير معرفه معلومات سريعه عمل احصاء والكثير من العمليات.
فنحتاج لربطها بالبرنامج اللى بنصممه وفى حالتنا ديه البيزيك , ومش شرط المصمم ممكن لمستخدم يحتاج للتعامل مع قاعده البيانات
ومش ممكن نشترط انه يجيد التعامل معها..
Data Control
وتعتبر من ابسط وسائل ربط قواعد البيانات بالفيجول ومع انها لها عيوب - ستذكر فيما بعض - لكنها تعتبر الافضل للمبتدئين وفى حالات المشاريع الصغيره
عندما لاتوجد جداول كثيره لربطها او نماذج كثيره نحتاج ان تتصل بقاعده البيانات .
وتترتبط الData Control بقاعده بيانات واحد و Table واحده..
تعريفات :
DataBaseName : اسم قاعده البيانات اللى حتتربط بالداتا كنترول.
ملاحظه:
1- الاسم يكون منتهى بالامتداد , فمثلا : Student.mdb
2- تحدث كثير من اخطاء وقت التشغيل بسبب ترك اسم قاعد البيانات بالمسار وعندة عمل النسخه التنفيذيه
لايجدها فى المسار خاصه اذا نقل لجهاز اخر , والافضل ترك قيمه الخاصيه ديه اسم القاعده ولامتداد وحفظها فى نفس مجلد الملف التنفيذى.
RecordSource: وديه اسم الTable اللى حترتبط بيها الداتا كنترول.
ملاحظه:
1- ولو عاوز تربط اكثر من Table فستضطر الى وضع داتا كنترول اخرى,
ربط قاعده الداتا كنترول بقاعده البيانات
مرفق مع الدرس قاعده بيانات بتيجى مع الفيجول , نزلها ويلا نربطهم مع بعض...
1- نرسم الاداه على الفورم كما فى الصوره السابقه
2- نظبط خاصيه الDataBaseName و الRecordSource كما فى الصوره:
ملاحظه :
.............
من فتره كان لازم تحول قاعده البيانات لاصدار97 من الاكسيس علشان الداتا كنترول تعرف تتعامل معاها.
وكذالك مكتبه الDAO وحاجات كتير..ولكن فى تحديث للVisual Studio وهو SP6 يعنى Service Pack 6
وان شاء الله ساضيف اللينك بتاعه فى اخر المشاركه .
كده الداتا كنترول مرتبطه بقاعده البيانات بتاعتنا....دلوقتى احنا عاوزين نعرض البيانات فى برنامجنا.
عرض بيانات قاعده البيانات فى ادوات التحكم
1- الTextBox
1- اول حاجه نظبط خاصيه الDataSource للتيكست بوكس ومنها نختار الDataControl بتاعتنا..
2- بعد كده نظبط خاصيه الDataField ونختار الColum اللى احنا عاوزانيه ..
3- كده الTextBox مربوط بالداتا كنترول ومربوط بالعمود اللى عاوزينه جرب تتنقل Next وPerviouse من الداتا كنترول
حتلاقى البيانات اللى فى الTextBox اتغيرت..
2- الListBox والComboBox
مش حنستخدم الList العاديه ولكن حنضيف DBList وديه خاصه لقواعد البيانات, ,;وكمان الComboBox مش حنستخدمه وحنستخدم DBCombo ونضيفهم من Component زى ما فى الصوره:
1- بعد ما تضيفهم حيظهرو مع ادوات التحكم .. فاختارها وارسمها على الفورم ..
2- لربطها بقاعده البيانات اللى متوصله بالداتا كنترول بتاعتنا نظبط الخاصيتين : RowSource وال ListFiled
حيث نختار الداتا كنترول بتاعتناة من خاصيه الRowSource ونختار العمود فى خاصيه الListField ....
وطبعا لاحظت انهم لايتنقلوا مع حركه الDataControl بل هما يعرضان كل محتويات العمود..ولهم فوائد كثيره ,
مثلا.. اختيار عرض سجلات العملاء الموجودين فقط فى قاعده البيانات لتقليل الخطا من المستخدم..
كده انتا تقدر تربط قااعده البيانات بمحتويات البرنامج بل والتنقل بين السجلات..ومرفق المشروع كما توقفنا ,
وتدرب عليه جيداا , لان الدروس القادمه - ان شاء الله - سنتعلم كيف الاضافه والتعديل والحذف ولاستعلامات , وبعض الادوات الاخرى.
السلام عليكم
فى المره السابقه شوفنا ازاى نربط قاعده البيانات بتاعتنا بالبرنامج عن طريق الداتا كنترول .
ونعرض المعلومات اللى فيها باستخدام ادواتنا.
النهارده - ان شاء الله - حتعلم ازاى نعدل بالاضافه والتعديل والحذف لقاعده البيانات ,
والمره الجايه حندخل -باذن الله - فى الاستعلامات والبحث.
افتح المشروع بتاع المره اللى فاتت , وافتح الفورمه بتاعتنا , واضف فيها 3 CommandButton وهما اضافه , تعديل , حذف .
وفى زر الاضافه سنكتب الكود:
Private Sub Command1_Click() If Command1.Caption = "اضافه" Then Data1.Recordset.AddNew: txtid.SetFocus Command1.Caption = "حفظ" Else 'شروطك للتحقق من صحه المدخلات او التاكد من ادخال حقول معينه Data1.Recordset.Update Command1.Caption = "اضافه" End If End Sub
شرح الكود:
انا عملت زر اسمه اضافه لما المستخدم يضرب عليه يخلى الداتا كنترول تقول لقاعده البيانات استعدى للسجل فتتنتظر القاعده فى مكان فارغ منها ,
وتنتظر المعلومات .. والدليل على كده ان كل الادوات اللى مربوطه بيها حتديك فراغ معناه ان الموشر بتاعها واقف فى حته فاضيه.
وبعد متدخل المعلومات بتاعتك , اسم الزر حيكون اسمه حفظ لما تضرب عليه , حيحفظ المعلومات الجديده فى قاعده البيانات
ده تصورى للعمليه لكن مش شرط انك تعمل كده , ممكن تعمل كل واحد فى زر لوحده ,او اى حاجه تانيه..
تعالى نحلل الكود ونشوف فين الاوامر بتاعت الاضافه والحفظ:
امر الاضافه:
Data1.Recordset.AddNew
وهوه بيقول ياداتا كنترول قولى لقاعده البيانات تستعد لاضافه سجل جديد...فيقف موشر القاعده عند سجل فارغ .
امر الحفظ:
Data1.Recordset.Update
. مش احنا ربطنا الادوات اللى على الفورم مع الداتا كنترول اللى مربوطه مع قاعد البيانات ..صح؟
ولما قولنا اضافه وقف موشر قاعده البيانات فى مكان فارغ منها... صح؟
فلما تكتب البيانات فى ادوات التحكم اللى مربوطه بقاعده البيانات وتعمل تحديث فستحفظ البيانات فى المكان الفارغ الى هيا واقفه فيه.
...........................................................................
زر الحذف:
Private Sub Command2_Click() Data1.Recordset.Delete Data1.Refresh End Sub
شرح الكود
كما هو واضح ان امر الحذف هو: Data1.Recordset.Delete
ونعمل لقاعده البيانات Refresh علشان تنتقل ملف اخر .
......................................................................
زر تعديل :
Private Sub Command3_Click() Data1.Recordset.Edit End Sub
والكود مش محتج شرح , بس خلى بالك مع التعديل مش بنعمل Update علشان الامر ده بيعمله لوحده ,
ويكفى انك تنتقل للسجل التالى علشان يتحفظ.
وكده انتا عارفت الاساسيات والبرنامج لسه ناقصه حاجات كتير...وحبقى سعيد لو انك كملت المشروع واضفت عليه وبعتهولى ..
وحكون اسعد بالاجابه على استفساراتك , وحاول ان تتمكن فى الجزء ده علشان لسه فى الاستعلامات ونبقى قطعنا شوط كبير...


