تقديم : الاستاذ محمد الحفار
مستوى الدرس : للمتوسط و المتقدم
e:mail
vovesleep@hotmail.com
web-site
www.hafar2004.com
mobile
0096394653388
اما بالنسبة للمبتدئين فبامكانهم تحميل هذا الملف
لأضغط بزر الايمن ومن ثم اختار حفظ الهدف باسم
http://www.geocities.com/vovew/gdatabase.zip
كما ارجو من الجميع اي سؤال في قواعد البيانات سواء داخل الموضوع او خارجه ارجوا بان لا يتردد فانا وفرت جميع الطرق السؤال سواء على الجوال او على موقعي او بريد او في نفس هذا الموضوع على شكل رد
الدرس الاول
كائن الوصول الى المعطيات DAO 3.52
اولا : ابدأ مشروع جديد ومن ثم قم بأضافة كائن الوصول الى المعطيات من خلال القائمة PROJECT-------REFERNCE ومن ثم اختار microsoft DAO 3.52 object library
ومن ثم موافق
ثانيا
لانشاء كائن قاعدة البينات وكائن مجموعة السجلات قم بكتابة الكود في حدث تحميل الفورم
dim db as database
dim rs as recordset
ثالثا : انشاء اتصال نع قاعدة البينات وتحديد الجدوال
قم بكتابة الكود التالي ايضا في حدث تحميل الفورم
Set db = dbengine.OpenDatabase(App.Path + "\" + "test.mdb")
Set rs = db.OpenRecordset("test", dbOpenDynaset)
لاحظ ان كائن قاعدة البيانت قد احدث باستخدام منهج opendatabase للكائن DBENGINE
الذي سوف اقوم بشرحه لاحقا يمكنك الان استخدام كائن المعطيات لتمثيل قاعدة البيانات في شفرات الفيجوال اما في السطر الثاني فهو لانشاء مجموعة السجلات من نمط مجموعة الديناميكية للجدول تيست
اما بالنسبة لاضافة والبحث والتعديل اعتقد انها اصبحت سهلة فقط عليك استخدام الكائن RS
E.G
RS.ADDNEW
الدرس الثاني
الاتصال مع قاعدة بيانات باستخدام العنصر DATA الموجود في صندوق الاداوت
قم بادراجه على الفورم ومن ثم قم بالاتصال نع قاعدة البيانات وتحديد الجداول من خلال الخاصيتيم
DATABASENAME وتتخدم لتحديد مسار قاعدة البيانات
RECORDSOUREC وتستخدم لتحديد الجداول
الطرق والمناهج
يحتوى ال Data Control على مجموعه كبيره من الأوامر والإجرآت ولكن تكون هذه الأوامر تحت
مجموعه أوامر تختص بالمعامله مع السجلات .. وكل هذه الأوامر تكون موجوده فى ال Recordset
فمثلا .. عند كتابتك للكود التالى تجد مجموعه كبيره من الأوامر يمكن الإستفاده منها ..
Data1.Recordset
وهذه الأومر تنقسم إلى مجموعات من حيث الإستخدام.. ونحن هنا سنشرح أهمها ..
** مجموعه أوامر متخصصه فى التنقل داخل الجدول من سجل إلى آخر..
1-الأمر MoveNext وهو يمكننا من الإنتقال من السجل الحالى إلى السجل الذى يليه فى الترتيب .. ومثلاً يمكن تنفيذ الأمر بكتابه الكود التلى ..
code:Data1.Recordset.MoveNext
2- الأمر MovePreviousوهو يمكننا من الإنتقال من السجل الحالى إلى السجل السابق فى التربيب..
ومثلا...
code:Data1.Recordset.MovePrevious
3-الأمر MoveFirst وهو يمكننا من الإنتقال إلى أول سجل فى الجدول .. ومثلاً ..
code:Data1.Recordset.MoveFirst
4 – الأمر MoveLastوهو يمكننا من الإنتقال إلى آخر سجل فى الجدول .. ومثلا ..
Data1.Recordset.MoveLast
** وهنالك مجموعه من ال Function و التى ترجع قيم تفيد فى البرمجه وتفحص حالت معينه ... ونها.
5 – الإقتران EOFوهو يعنى فحص قيمه ال End of Table أى إذا كان مأشر السجلات يقف الأن على نهايه الجدول .. وهذا ال function يرجع قيمه true أو false وتكون القيمه المرجعه True إذا كنا نقف على آخر سجل فى الجدول .. ومثال على كيفيه الإستخدام..
code:If Data1.Recordset.EOF Then
'تقوم بالعمل والإجراء الذى تبريده
End If
6 – الإقتران BOF وهو مثلا الإقتران EOF سوا أنه يفحص إذا كنا موجودين على السجل الأول ...
7 - الإقتران RecordCount وهذا الإقتران يقوم بإرجاع قيمه تمثلا عدد السجللات فى الجدول ..ويمكن الإستفاده من هذه الداله فى عرض عدد السجالت أو فى أمور أخرى سننافشها فى دروس لاحقه ..
ومثال على إستخدامه ..
code:Dim NumberOrRecord As Integer
Data1.Recordset.RecordCount
8- الداله AbsolutePosition وهى ترجع رقم السجل الذى نكون واقفين عليه ( أى يكون المأشر واقف عليه ) ويبدء الترقيم للسجلات من الصفر .. ويمكن إستخدام الداله فى أمور كثييره ومثلا على كيفيه الإستخدام..
code:Dim PosLoc As Integer
PosLoc = Data1.Recordset.AbsolutePosition
** وايضا توجد هنالك مجموعه من الأوامر التى تهتم بالسجالت من الحيث الأضافه و التعديل والحذف.. وغيرها..
9- الأمر AddNewوهو يقوم بإضافه سجل جديجد و فارغ إلى الجدول .. وهو يمثل إضافه إلى جدول..ومثال عليه ..
code:data1.Recordset.AddNew
10- الأمر Deleteوهو يقوم بحذف السجل الذى نقف عليه حالياً .. ومثال عليه..
code:data1.Recordset.Delete
11- الأمر .Update وهو يقوم بحفظ التعديلات على القاعده فعلياً عل القرص الصلب ..ويكون ذلك بعد إضافه سجل أو التعديل على بيانت سجل .. فيجب حفظ التعديلات فعلياً.. ولا يمكن إستخدامه بعد أى منها .. وإلا يتسبب خطأ..
code:data1.Recordset.Update
12 – الأمر CancelUpdateويمكن إستخدامه فى حالة أننا أردنا التراجع عن عمل قمنا بهه على القاعده ..
فمثلاً لو قمنا بإضافه سجل جديد ولكن أردنا أن نتراجع فإننا ننفد هذا الأمر .. أو إذا أردنا بعد عمليه تعديل على السجل أن نتراجع فيمكن ذلك.. ولكن عند تنفيذ الأمر Update فإننا لن نسنفيد من الإمر..
ومثال على إستخدامه..
code:data1.Recordset.CancelUpdate
** وأيضاً توجد هنالك مجموعه أوامر تمكننا من البحث فى داخل القعده .. وذلك فى حاله أن المبرمج لا يعلم لغه ال SQL أو لا يريد إستخدامها.. وهى ..
13- الأمر "FindFirst "the condition as String وهذا الأمر يعنى إريد أن أبحث من أول الجدول وذلك حسب الشرط الموضوع على شكل String ... ويمكن أن يكون هذا الشرط عباره عن إسم مثلاً محمد ويعبر عنها بما يلى ..
code:Data1.Recordset.FindFirst "name='mohmmed'"
ويجب أن يكون قيمه الشرط إذا كان String أن يوضع بين حاصره علويه واحده مثلا 'moammed'
وإذا كان الشرط عباره عن مقارنه قيمه رقميه فإنه يكون مثلا ..
""ID=3 أى أنه قيمه الحقل الذى إسمه ID أن تكون ثلاثه..
14- الأمر FindLast " the condition as String " وهذا الأمر يكون مثلا ال FindFirst من حيث الشروط .. لكنه يبدء البحث من أسفل الجدول ...
15- الأمر FindNext يقوم مثلا الأمر FindFirst وذلك حسب شروط البحث ..
ولكنه يبدء البحث من الموقع التالى وبالإتجاه لآخر الجدول للموقع الحالى..
16- الأمر FindPrevioust يقوم مثلا الأمر FindFirst وذلك حسب شروط البحث ..
ولكنه يبدء البحث من الموقع السابق وبالإتجاه لأول الجدول للموقع الحالى..
** وأيضاً يوجد هنالك أمر مهم ليس تابع لمجموعه الأومامر فى ال RecordSet وهو ..
17- الأمر Refresh له إستخدامان رإيسيان..
الأول فتح قاعدت البيانت فى بدانيه البرنامج أو فى بدايه تحميل الفورم ... وذلك لإجراء بعض العمليات عند بدايه التحميل .. كأن يعرض عدد العناصر فى الجدول ..
ومثال عليه ..
code:
Private Sub Form_Load()
' هنا يتم فتح قاعدة البيانت
Data1.Refresh
End Sub
و الإستخدام الثانى هو بعد إسناد جمل SQL إلى الخاصيه .. RecordSource وليتم تحميل السجلات التى
تطابق الطلب.. يجب أن نقوم بإستدعاء الأمر ليتم العمل .. أى كأننا نقوم بإعدت فتحه وفق الشرط الجديد..
ومثلا على ذلك المثال التالى ..
code:
' إسناد جملت طلب
Data1.RecordSource = "select * from employee"
' طلب تحديث البيانات المحمله فى ال
' datatControl
Data1.Refresh
اما بالنسبة للبحث وهي الجزء الاهم سوف اقوم بشرحه الان
يستخدم للبحث الغرض FIND ولهذا الغرض اربعة منهاج وهم
FINDFIRST ويستخدم للبحث اعتبارا من السجل الاول
FINDLAST --------------------------------------------------الاخير
FINDNEXT -------------------------------------------------الحالي والى الامام
FINDPREVIOUS ---------------------------------------------------------الخلف
مثال
Data1.Recordset.FindFirst "AMOUNT>100"
Data1.Recordset.FindLast "NAME='HAFAR'"
في السطر الاول قمنا بالبحث على الصفوف التي تحتوى على عدد اصغر من 100
اما في السطلر الثاني فقمنا بالبحث على الموظف الذي اسمه HAFAR
الدرس الثالث
وفي هذا الدرس سوف نتعرف على ADO
قم بتحميل هذا الدرس من خلال هذا الرابط
أضغط بزر الايمن ومن ثم اختار حفظ الهدف باسم
الدرس الرابع
الكائن dbengine
ويمكن من خلال هذا الكائن الاتصال نع قواعد البيانات كما في الدرس الاول واصلاحها وضغطها ويحتوى على ستة مناهج
rapairdatabase
ويستخدم لاصلاح قاعدة البيانات
compactdatabase
ويستخدم لضغط قاعدة البيانات
registerdatabase
ويستخدم لبناء روابط بين مصدر المعطيات خارجي وقاعدة بيانات
setoption
ويستخدم لتغيير قيمة او اكثر من قيم المنهاج السابق
createworkspace
ويستخدم لبناء فضاء العمل بهدف الوصول الى قاعدة بيانات او اكثر
أستخدام منهاج ضغط قاعدة البيانات
DBEngine.CompactDatabase "c:\test.mdb", "d:\test.mdb", dbLangGeneral, dbEncrypt
البارمترات
الاول
ويسستخدم لتحديد قاعدة البيانات المراد ضغطها
الثاني
ويستخد لحفظ قاعدة البيانات المضغوطة
الثالث
لغة قاعدة البيانات المستخدمة
الرابع
لتشفير قاعدة لبيانات
استخدام منهاج registerdatabase
يقوم هذا المنهج بتسجيل مصدر معطيات لاستخدام مع قاعدة البيانات وتشجع وثائق المبرمج على الاعتماد على خدمات الاعدادات odbc في لوحة تحكم ويندوز بدلا من استخدام هذا المنهاج ولكن اذا اردت معالجة تسجيل odbc ضمن الفيجوال بيسك فانه بامكانك استخدام هذا المنهج
وله البارامترات التالية
sourcename
وهو الاسم الذي سوف يعطى لقاعدة البينات في منهاج opendatabse
drivername
اسم موجه odbc المثبت والمتوفر في محطة العمل
silentflag
اذا اخذ هذا البارمتر القيمة فولس فانه يجبر الويندوز على اظهار صندوق حوار التسجيل اما اذا اخذ القيمة ترو فان ويندوز سوف يحاول القيام بتسجيل دون اظهار صتدوق حوار التسجيل
attributelist
ويمكن ان تتضمن اسم المخدم واسم قاعدة البينات او اي بارمتر مطلوب
مثال
dbengine.registerdatabse "dsnname","sql server",false,"server=mca&char(0)&database=pubs&char(0)"
استخدام منها اصلاح قاعدة البيانات
مثال
DBEngine.RepairDatabase "c:\test.mdb"
الدرس الخامس
أستخدام البيانيات فيب أظهار المعطيات
تتعلم في ه1ا الدرس اضافة الاظهارات البيانية لمعطياتك في برامج قواعد البيانات باستخدام
microsoft chart control 6.0
وهو اختصار لي m.c.c
اضافة عنصر تحكم البياني الى المشروع
يمكنك اضافة عنصر التحكم البياني باختيار الامر project-----component
ومن ثم اختيار العنصر
microsoft chart control 6.0
تحديد نمط البيانيات؟
يتم تحديد نمط البيانيات عن طريق الخاصية charttype
بحيث تظهر مخططا ثلاثي البعد من نمط line او أعمدة او مخططات او على شكل قرص
كيف ينظم عنصر التحكم البياني معكطياتك؟
قبل أظهار المعطيات يجب تحميلها في عنصر التحكم البياني ولكن قبل تحميلها لا بد من معرفة كيف ينتظر او يتوقع عنصر التحكم ان يرى هذه المعطيات وان عنصر التحكم البياني يتطلب ان يتم تنظيم المعطيات على شكل مجموعات سطور واعمدة وهو يحتاج لمعرفة عدد النقاط في كل ؤسطر وعمود تود أظهارها بشكل بياني وعداة يكون لديك عمود واحد يتضمن عدة سطور على سبيل المثال
اذا اردت اظهار مبيعات الشركة خلال 12 سنة سيكون لديك عمود واحد مع 12 سطر سطر عن كل شهر
واذا اردت بناء مخطط بياني يبين مقارنة بين المبيعات الشهرية الحالية مع الموازنة االشهرية لاشهر الاثنى عشر الاخيرة فسيكون لديك عمودين من المعطيات المبيعات الحاليةوالسابقة وكل عمود فيه 12 سطر سطر لكل شهر
يمكنك استخاد الخاصيتين rowcount,columncount لاعلام عنصر التحكم البياني عن كيفية تنظيم المعطيات
اضافة المعطيات الى العنصر البياني؟
يمكنك تضافة المعطيات الى العنصر البياني من خلال DataEnvironment
اذا لم تعرف ان تستخدمDataEnvironment فقم بتحميل هذا الدرس
اما أضغط بزر الايمن ومن ثم اختار حفظ باسم
قم بانشاء اتصال مع قاعدة البيانات من خلال DataEnvironment
ومن ثم حدد الخاصية datasource على DataEnvironment1
وdatamember على command1
الدرس السادساستخدام مايكرو سوفت اكسس كمخدم لطباعة التقارير انطلاقا من تطبيق فيجوال بيسك
أهمية التطبيق
يتم غالبا انشاء قاعدة بيانات مع جميع كائناتها خلال المرحلة الاولى من تطبيق الفيجوال بيسك
في قواعد البيانات وعند وجود تقارير مبنية في بيئة مايكروسوفت اكسس من المفضل استثمارها لاحقا من خلال التطبيق النهائي وباعتبارا ان جميع محطات العمل مزودة برنامج اكسس يصبح من الممكن استدعائها هذه التقارير من خلال الفيجوال بيسك
فكيف يتم ذلك
أنشئ مشروعا جديدا وتأكد من أختيار ole automation
و
microsoft access object library في قائمة project---references
ومن ثم قم بادخال الشيفرة التالية تحت حدث النقر بالزر
Dim strdbname As String
Dim objaccess As Object
On Error GoTo loaderror
strdbname = App.Path + "\mydb.mdb"
Set objaccess = CreateObject("Access.application")
With objaccess
.OpenCurrentDatabase filepath:=strdbname
.DoCmd.openerport reportname:="myreport", view:=Access.acPreview
End With
loaderror:
MsgBox "error"
قم بتحميل هذا الكودات المفيدة في قواعد البينانات
أضغط بزر الايمن ومن ثم اختار حفظ الهدف باسم
الدرس السابع
لغة الاستفسارات البنيوية
ويمكن تحميل هذا الدرس من خلال هذا الرابط
أضغط بزر الايمن ومن ثم اختار حفظ الهدف باسم
وبهذا يكون قد انتهى الموضوع

