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

تعلم أسس برمجة قواعد البيانات في الفيجوال بيسك واي

مغلق
بدأه fadealhafar في 2 أغسطس 2004 · 8 رد · 1,540 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تقديم : الاستاذ محمد الحفار

مستوى الدرس : للمتوسط و المتقدم

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"

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

أضغط بزر الايمن ومن ثم اختار حفظ الهدف باسم

الدرس السابع

لغة الاستفسارات البنيوية

ويمكن تحميل هذا الدرس من خلال هذا الرابط

أضغط بزر الايمن ومن ثم اختار حفظ الهدف باسم

وبهذا يكون قد انتهى الموضوع

#2

السلام عليكم ..

الاخ الكريم الاستاذ محمد الحفار

لا اعرف كيف يمكن التعليق على هذا الجهد الكبير بكلمات بسيطة ، فقط اقول لك جزاك الله كل الخير و جعله في ميزان حسناتك و خالصاً لوجهه الكريم :)

بنت اليمن ,,

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#3

شكر هذا من ذوقك

#4

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

تم تعديل هذه المشاركة بواسطة مزهلة في 16 أغسطس 2004 في 18:10

#5

up

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#6

-09

الاستاذ : حفار

اعتقد ان الاسم ليس جديد على و لكن لا اعلم من اين

و على العموم مجهود ممتاز

مشكور

ارجوا مساعدتى للعمل كمبرمج اوراكل باى شركة خبرتى 1 سنه و ربنا الموفق

خبرى 6 سنوات فى فيجوال بيزك 6و ASP

#7

مجهود ممتاز فعلاً ،، والأستاذ محمد الحفار أحد المشرفين المميزين في منتدى في بي زوووم ..

ani.gif
#8

الله يبارك فيك ويقويك

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

فأرجو مساعدتي

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#9

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

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

جزاك الله خيرًا أخي

سبحان الله وبحمده ... سبحان الله العظيم

هذا الموضوع مغلق.

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