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

سلسلة دروس فى قواعد البيانات

رائج
بدأه شريف عادل في 14 أغسطس 2005 · 66 رد · 41,421 مشاهدة · في قسم قواعد البيانات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

بعض المعلومات عن قاعدة البيانات:

قاعدة البيانات هي ملف مصمم ليتم تخزين المعلومات بداخله بطريقه منظمه

لهذا تعتبر قواعد البيانات طريقه سهله لتجميع البيانات والمعلومات بصوره مرتبه ومنظمه

وفى الغالب يحتوى ملف قاعدة البيانات على

1-جدول أو مجموعة جداول (Tables)

2-سجلات (Records)

3-حقول (Fields)

ولنبدأ الآن

-----------------------------------------------------------------------------

الدرس الأول

كيف تقوم بإنشاء قاعدة بيانات جديدة؟

نقوم بفتح برنامج Microsoft Access

ومن قائمة ملف تختار جديد ثم نختار قاعدة بيانات فارغة

14_08_05_12_43_10_11240053901.jpg

نقوم بحفظ هذه القاعدة فى مسار المستندات باسم DB.mdb هكذا

14_08_05_12_44_22_1124005462_.jpg

ثم نقوم بفتح الجدول فى طريقة عرض التصميم بالنقر على "إنشاء جدول فى طريقة عرض التصميم" ثم نضغط على "تصميم" هكذا

14_08_05_12_45_55_11240055553.jpg

سوف تظهر لنا نافذة بها جدول مقسم الى ثلاث خانات وهى

1-اسم الحقل

2-نوع البيانات

3-الوصف

14_08_05_12_46_51_11240056114.jpg

نقوم بكتابة أسماء الحقول التي نريدها كالتالي:

اسم الحقل نوع البيان

الرقم رقم

الاسم نص

العنوان نص

تاريخ الميلاد تاريخ/وقت

رقم التليفون رقم

14_08_05_12_47_46_11240056665.jpg

ثم بعد ذلك نقوم بعمل مفتاح أساسي للجدول وذلك بالضغط بزر الماوس الأيمن على يمين اسم الحقل الأول واختيار "مفتاح أساسي" هكذا

14_08_05_12_48_42_11240057226.jpg

ثم نقوم بعد ذلك بإغلاق النافذة حتى نقوم بحفظ هذه الحقول بداخل الجدول

1
#2

14_08_05_12_49_46_11240057867.jpg

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

14_08_05_12_50_35_11240058358.jpg

ومن هذه الرسالة نختار مفتاح "نعم" حتى يتم حفظ الجدول

ستظهر لنا رسالة بعنوان حفظ باسم والتي عن طريقها نقوم بتحديد اسم الجدول الذي تم إنشائه

نقوم بكتابة اسم لجدولنا وليكن MyDB كما بالشكل التالي

14_08_05_12_51_17_11240058779.jpg

ثم نضغط على موافق حتى يتم استكمال حفظ الجدول

بعد ذلك نقوم بالضغط على اسم الجدول الذي وضعناه ونضغط فتح حتى يمكننا فتح الجدول وذلك لإضافة بيانات جديدة لهذا الجدول كما يلي:

14_08_05_12_52_05_11240059251_.jpg

وبعد ذلك نقوم بإضافة كل ما نريد إضافته من بيانات بداخل هذا الجدول ونقوم بإغلاق نافذة الجدول

14_08_05_12_52_48_112400596811.jpg

سوف يقوم برنامج قواعد البيانات بحفظ كل ما تم إضافته من بيانات فى الجدول تلقائياً

نقوم بإغلاق برنامج قواعد البيانات نهائياً وذلك لأننا قد انتهينا من إنشاء قاعدة بيانات جديدة

14_08_05_12_54_50_11240060901_.jpg

ملاحظه:

لقد قمنا فى المثال السابق باستخدام برنامج مايكروسوفت اكسس (Microsoft Access XP) XP

مع العلم بأنه يمكن استخدام برنامج مايكروسوفت اكسس 2000 (Microsoft Access 2000) أو برنامج مايكروسوفت اكسس 97 (Microsoft Access 97)

وذلك لإنشاء قاعدة البيانات الخاصة بالبرنامج مع مراعاة انه يجب عليك استخدام فبجوال بيسك 6 (Visual Basic 6) لكي تستفيد من قاعدة بيانات ميكروسوفت اكسس XP

ويمكنك أيضاً استخدام برامج أخرى لإنشاء قاعدة البيانات

وهكذا عزيزي القارئ قد وصلنا الى نهاية الدرس الأول وأتمنى أن نكون قد وصلنا الى النتيجة المرجوة منه ألا وهى كيفية إنشاء قاعدة بيانات فارغة يمكن استخدامها فى برامجنا لاحقاً

الدرس القادم:

تصميم أول برنامج وربطه بقاعدة البيانات التي قمنا بإنشائها

1
#3

لماذا وضعت الدرس فى مشاركتين؟ :angry:

1

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#4

حجم الصور الموجوده بالدرس لا يسمح بوضع الدرس فى مشاركه واحده

#5

يفضل عند وضع حقل خاص برقم التليفون ان يكون من النوع النصى حيث انه يمكن ان يحتوى على فواصل :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#6

معلومه جيده اخى العزيز ولكنى لم أكن أجهلها تعمدت ان يكون حقل رقم التليفون رقم وليس نص

شكراً

#7

بارك الله فيك اخي Sheriff_Ghost2010 و جعله في مقام العلم النافع الذي لا ينقط عمل ابن ادم منه :)

بنت اليمن ،،

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

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

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

#8

بداية موفقة أخي شريف ....

بارك الله فيك

ايه حكاية الجوست دي لأهل القناطر ههههههههههههههههههه

مشكورررر ... متبعين معك

ويمكنك الاستفادة من درس بنت اليمن في هذا الموضوع وكذلك درس " أنشأ مشروعك ... " في قسم الدروس

تحياتي لك

اخوك ناصر

#9
اقتباس
ايه حكاية الجوست دي لأهل القناطر

اصل أهل القناطر هم اشباح القليوبيه كلها

ههههههههههههههه

اشكرك كثيراً على مشاركتك معى فى الموضوع

تحياتى......

#10

شكرا اخى Sheriff_Ghost2010 على هذه الدروس الرائعة

وربنا يوفقك

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#11

اشكر لك مشاركتك اخ هانى

#12

على فكرة ياناصر القناطر بعيد عن شبين القناطر بس هو اسم المدينة اللى كده يعنى احنا مالناش علاقة بالقناطر غير اننا فى نفس المحافظة بس :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#13

شكرا لك أخي على هذا الدرس

بانتظار المزيد .. :rolleyes:

#14

مشكور على الدرس.. ومنتظر التكمله .. لا تتاخر

أشهد أن لا إله إلا الله ***************** وأشهد أن محمد عبده ورسوله

#15

الدرس الثاني

كيف نقوم بربط قاعدة البيانات التي قمنا بإنشائها ببرنامجنا ؟

ما هو الجدول؟

الجدول يتكون من مجموعه من الصفوف والأعمدة...

الصفوف هي سجلات الجدول.

وعندما يتقاطع الصف مع العمود يسمى حقل.

30_08_05_12_23_44_11253866241.jpg

طرق الوصول إلى قاعدة البيانات...

1-التقنية (DAO) Data Access Objects وهذه التقنية مصممه خصيصاً للتعامل مع قواعد بيانات (Access) حتى الإصدار (97) ويمكنها التعامل مع قواعد بيانات أخرى من خلال المحرك (Jet) الذي توفره لنا.

2-الأداة Data Control : هذه الأداة تمكننا من الوصول إلى مجموعة السجلات(RecordSet) الموجودة في قاعدة البيانات (Jet) حتى تمكننا من التعامل معها وأيضاً ربطها بعدة أدوات أخرى في الفيجوال بيسك مثل TextBox...

3-التقنية (RDO) Remote Data Objects تطورت هذه التقنية لتوفر طبقه مبسطه لتقنية (ODBC) لمبرمجي هذه اللغة(VB)

4-تقنية (ADO) Active Data Objects وقد طورت شركة ميكروسوفت هذه التقنية عدة مرات وذلك لتسهيل التعامل مع قواعد البيانات بشكل كبير..

الربط عن طريق الأداة (Data Control)

•يجب أن تكون قاعدة البيانات التي سوف نقوم بربطها من النوع (Access97) على الأكثر

•خطوات الربط...

1.نقوم بوضع الأداة (Data Control) من صندوق الأدوات إلى الـ(Form) حيث تكون الخاصية Name=Data1

2.من خلال الخاصية DataBaseName يتم تحديد قاعدة البيانات التي نريد الاتصال بها.

3.ثم نقوم بتحديد الجدول الذي نريد الاتصال به عن طريق الخاصية RecordSourse

• ثم نقوم بربط قاعدة البيانات التي قمنا باختيارها بالأداة (Text Box) عن طريق الأداة ((Data Control كالتالي:

1. تحديد اسم الأداة (Data Control) التي تقوم بوصلنا بقاعدة البيانات والتي يكون لها الاسم (Data1) من الخاصية DataSourse لمربع النص الذي نريد أن نعرض به إحدى حقول قاعدة البيانات

2. من الخاصية DataField لمربع النص نقوم بتحديد اسم الحقل المراد عرضه.

بعد ذلك قد نكون انتهينا من ربط قاعدة البيانات عن طريق الأداة Data Control ثم نقوم بتشغيل البرنامج وتجربته..

ملحوظة...

لأن قاعدة البيانات التي نستعملها من نوع Access XP فعندما نقوم بتحديد اسم الجدول في الأداة Data Control سوف تظهر لنا رسالة خطأ توضح أن قاعدة البيانات ليست من نوع Access97 أو اقل فلا تصلح هذه الأداة مع قاعدة البيانات من النوع Access XP

الربط عن طريق الأداة (Data Grid)

• يوجد لدينا أداة أخرى تسمى Data Bound Grid تتميز هذه الأداة بعرض بيانات جدول ما في قاعدة البيانات على شكل جدول كالتالي:

1. من قائمة Project نختار الأمر Component حيث يظهر لنا مجموعة الأدوات الإضافية للفيجوال بيسك نقوم باختيار الأداة Microsoft Data Bound Grid Control 5.0 ثم نضغط OK

2. من صندوق الأدوات نختار الأداة الجديدة DBGrid ثم نقوم برسمها على الـ (Form) ويكون لها الاسم DBGrid1

3. ثم نقوم بوضع الأداة Data Control من صندوق الأدوات

4. من الخاصية DataSourse من خصائص الأداة (DBGrid) نقوم بتحديد اسم الأداة (Data Control) التي تقوم بوصلنا بقاعدة البيانات والتي لها الاسم Data1

بعد ذلك نقوم بتشغيل البرنامج وتجربته

الربط عن طريق الأداة (ADODC)

هي اختصار لـ ADO Data Control وهى تعتبر من التقنيات الحديثة التي تقوم بربط قاعدة البيانات ببرنامجنا ولا تختلف طريقة التعامل مع هذه الأداة اختلافاً كبيراً عن التعامل مع الأداة (Data Control) ولكنها تتيح التعامل مع قواعد البيانات الأحدث من قواعد بيانات (Access97) مثل (Access2000) ,(Access XP)

• كيفية إضافة الأداة ADODC إلى صندوق الأدوات في البرنامج

1. من قائمة Project اختر Component

2. من نافذة Component نقوم باختيار Microsoft ADO Data Control 6.0(OLEDB)

3. نضغط على OK

4. ثم نقوم بإضافة الأداة إلى الـ (Form)

خطوات ربط الأداة (ADODC) بقاعدة البيانات

1. من خصائص الأداة (ADODC1) نختار Custom

2. من التبويب General نضغط الزر Build…

3. من النافذة التي تظهر نقوم بتحديد الخيار Microsoft Jet 4.0 OLE DB Provider ثم نضغط على التالي

30_08_05_12_49_51_1125388191_.jpg4.

نقوم بتحديد قاعدة البيانات التي نريد الاتصال بها كما في الشكل.

30_08_05_12_29_40_11253869803.jpg

5. ثم نضغط على مفتاح اختبار الاتصال سوف تظهر لنا رسالة تفيد بنجاح الاتصال بقاعدة البيانات نضغط موافق نضغط على مفتاح OK لقبول قاعدة البيانات

6. من التبويب Record Source نقوم بتحديد الـ CommandLine=adCmdTable

7. نقوم بتحديد اسم الجدول الموجود بقاعدة البيانات من الـ Table Or Stored Procedure Name

8. نقوم بالضغط على مفتاح OK

9. نقوم بربط الجدول بصناديق النص بنفس الطريقة كما في الأداة Data Control الخاصية DataSourse لتحديد اسم الأداة التي تربط برنامجنا بقاعدة البيانات DataFiled لتحديد اسم الحقل المراد عرض بياناته بصندوق النص

يمكن عرض البيانات أيضاً داخل أداة تسمى DataGrid ولكنها ليست هي الأداة Data Bound Grid التي تم استخدامها مع الأداة Data Control

كيف تقوم بعرض هذه الأداة في صندوق الأدوات؟

1- من قائمة Project قم باختيار Component

2- قم باختيار الأداة Microsoft DataGrid Control 6.0(OLEDB) ثم اضغط OK

طريقة ربط الأداة DataGrid لعرض بيانات قاعدة البيانات نفس الطريقة التي ربطنا بها الأداة DataBoundGrid سابقاً وذلك بتغيير الخاصية DataSourse إلى اسم الأداة ADODC التي تربط برنامجنا بقاعدة البيانات.

الربط عن طريق المكتبة (ADO)

كيف نضيف هذه المكتبة إلى مشروعنا؟

1- من قائمة Project قم باختيار References

2- نقوم باختيار المكتبة Microsoft ActiveX Data Objects 2.5 Library ثم نضغط على OK

خطوات ربط قاعدة البيانات ببرنامجنا عن طريق هذه المكتبة..

1- نقوم بتعريف المكتبة كمتغير عام كالتالي في قسم المتغيرات (General)

Dim DB As New ADODB.Connection

2- وفى الحدث Form_Load() نقوم بتعريف محرك قاعدة البيانات حتى يقبل التعامل مع قواعد بيانات Access كالتالي :

DB.Provider = "Microsoft.Jet.OLEDB.4.0;"

3- نقوم بفتح قاعدة البيانات عن طريق معرفة مسارها كالتالي:

DB.Open "Path" حيث Path مسار قاعدة البيانات مثلا Path="C:\DB1.mdb"

ملاحظات لطرق الاتصال بقواعد البيانات...

1- للاتصال بقاعدة بيانات من نوع Access نربط بالجملة

DB.Provider = "Microsoft.Jet.OLEDB.4.0;"

أو الجملة

DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;data source=c:\ DB.mdb"

2- للاتصال بقاعدة بيانات من نوع SQL نربط بالجملة

DB.Provider ="SQLOLEDB.1;"

3- إذا كانت قاعدة البيانات محمية بكلمة سر ولتكن مثلاً Sheriff اسم المستخدم و2468 هي كلمة المرور نقوم بفتح قاعدة البيانات هكذا

DB.Open "C:\MyDB.mdb", "UserID='Sheriff'", "Password=2468"

كيف نقوم بفتح الجدول الموجود بقاعدة البيانات عن طريق المكتبة ADO ؟

1- يتم تعريف متغير يعبر عن الجدول حتى نتعامل معه في قاعدة البيانات كالتالي:

Dim RS As New ADODB.Recordset

2- في الحدث Form_Load() نقوم بكتابة كود فتح الجدول كالتالي:

RS.Open "MYDB", DB, adOpenStatic, adLockReadOnly حيث MYDB اسم الجدول الموجود بقاعدة البيانات وDB هو المتغير الذي قمنا بتعريفه للمكتبة ADO والذي عن طريقه قمنا بفتح قاعدة البيانات.

3- للتنقل حقل واحد للأمام نكتب الكود التالي

RS.MoveNext

Text1.Text = RS.Fields(X).Value

4- للتنقل حقل واحد للخلف نكتب الكود التالى:

RS.MovePrevious

Text1.Text = RS.Fields(X).Value

5- للذهاب إلى أول حقل في الجدول نكتب الكود التالى:

RS.MoveFirst

Text1.Text = RS.Fields(X).Value

6- للذهاب إلى أخر حقل في الجدول نكتب الكود التالى:

RS.MoveLast

Text1.Text = RS.Fields(X).Value

حيث (X) رقم أو اسم الحقل الذي تريد عرض بياناته بداخل صندوق النص

وبذلك نكون قد انتهينا من الدرس الثاني

الدرس القادم

كيف نتعامل مع قاعدة البيانات بالإضافة والحذف والتعديل عن طريق برنامجنا

المرفق الأخير يعمل جيداً...

المشاريع المرفقة.rar

المشاريع المرفقة.rar

المشاريع المرفقة.rar

تم تعديل هذه المشاركة بواسطة Sheriff_Ghost2010 في 30 أغسطس 2005 في 11:10

#16

Good Quotation

Please name your main source of info

تم تعديل هذه المشاركة بواسطة GHOST2010 في 30 أغسطس 2005 في 10:40

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#17

الدرس الثالث

كيف نتعامل مع قاعدة البيانات بالإضافة والحذف والتعديل عن طريق برنامجنا؟

1- الأداة (Data Control)

Name = Data1

" لإنشاء سجل جديد Data1.Recordset.AddNew

مثال


Data1.Recordset![Number] = Text1.Text
Data1.Recordset![Name] = Text2.Text
Data1.Recordset![Address] = Text3.Text
Data1.Recordset![Date] = Text4.Text
Data1.Recordset![Phone Number] = Text5.Text
Data1.Recordset.Update
Data1.Recordset.AddNew

حيث Data1 هو اسم الـData Control التي تربطنا بقاعدة البيانات

RecordSet مجموعة السجلات التابعة للجدول الذي نريد أن نضيف له سجل جديد

ما بداخل القوسين[----] هو اسم الحقل الذي نريد أن نضيف له بيانات سجل

وصناديق النص التي تستخدمها لوضع البيانات التي تريد تخزينها في قاعدة البيانات لابد وأن تكون غير مرتبطة مع الأداة Data Control وذلك لأنه عندما تكون صناديق النص هذه مرتبطة بالأداة عند تنفيذ الكود Data1.Recordset.AddNew تصبح كل صناديق النص فارغة أي الخاصية Text لها تساوى "" وعندما يتم تنفيذ باقي الكود ستجد أن البيانات المدخلة إلى قاعدة البيانات كلها فارغة...

هذا الكود يعمل نفس العمل


Data1.Recordset.Fields(0).Value = Text1.Text
Data1.Recordset.Fields(1).Value = Text2.Text
Data1.Recordset.Fields(2).Value = Text3.Text
Data1.Recordset.Fields(3).Value = Text4.Text
Data1.Recordset.Fields(4).Value = Text5.|Text
Data1.Recordset.Update
Data1.Recordset.AddNew

" لتعديل بيانات السجل الحالي Data1.Recordset.Edit

مثال


Data1.Recordset![Number] = Text1.Text
Data1.Recordset![Name] = Text2.Text
Data1.Recordset![Address] = Text3.Text
Data1.Recordset![Date] = Text4.Text
Data1.Recordset![Phone Number] = Text5.Text
Data1.Recordset.Update
Data1.Recordset.Edit

ولكن هنا ليس من الضروري أن تكون صناديق النص التي يتم تعديل البيانات بها غير مرتبطة بالأداة Data Control لان عند تنفيذ الكود Data1.Recordset.Edit لا يحدث أي تأثير على صناديق النص المرتبطة بالأداة Data Control ...

يمكن استخدام الكود التالي أيضاً


Data1.Recordset.Fields(0).Value = Text1.Text
Data1.Recordset.Fields(1).Value = Text2.Text
Data1.Recordset.Fields(2).Value = Text3.Text
Data1.Recordset.Fields(3).Value = Text4.Text
Data1.Recordset.Fields(4).Value = Text5.|Text
Data1.Recordset.Update
Data1.Recordset.Edit

" الكود Data1.Recordset.Update مهم جداً حيث انه يقوم بإجراء التعديلات والتغييرات التي قمت بتنفيذها وحفظها في قاعدة البيانات المرتبطة بالأداة Data Control ... ويجب كتابته عند إضافة سجل جديد أو التعديل فى بيانات السجل الحالي فقط ...

" حذف السجل الحالى من قاعدة البيانات Data1.Recordset.Delete

مثال


Data1.Refresh
Data1.Recordset.Delete

عند تنفيذ الكود Data1.Recordset.Delete يتم حذف السجل الحالى الموجود فى قاعدة البيانات وعند تنفيذ الكود Data1.Refresh يتم تحديث قاعدة البيانات وإعطاء الأداة Data Control البيانات الصحيحة ...

أكواد التنقل بين السجلات...

" الانتقال الى أول سجل فى قاعدة البيانات Data1.Recordset.MoveFirst

" الانتقال الى أخر سجل فى قاعدة البيانات Data1.Recordset.MoveLast

" الانتقال الى السجل التالي فى قاعدة البيانات Data1.Recordset.MoveNext

" الانتقال الى السجل السابق فى قاعدة البيانات Data1.Recordset.MovePrevious

" الانتقال عدد معين من السجلات Data1.Recordset.Move (N) حيث N هي القيمة التي تريد أن يتحركها المؤشر...

البحث فى السجلات

" لعرض أول سجل يطابق النص المطلوب البحث عنه نستخدم الكود التالي:

Data1.Recordset.FindFirst "Name='" & STR1 & "'"

" لعرض أخر سجل يطابق النص المطلوب البحث عنه نستخدم الكود التالي:

Data1.Recordset.FindLast "Name='" & STR1 & "'"

" لعرض السجل التالي الذي يطابق نص البحث نستخدم الكود التالي:


Data1.Recordset.FindNext "Name='" & STR1 & "'"

" لعرض السجل السابق الذي يطابق نص البحث نستخدم الكود التالي:

Data1.Recordset.FindNext "Name='" & STR1 & "'"

حيث أن STR1 هو نص البحث أو النص المطلوب البحث عنه

ملحوظة:

الكود Data1.Recordset.FindFirst لابد أن يوضع بعدها النص المطلوب البحث عنه ولكن بطريقه معينه وهى أن يوضع نص البحث بين العلامتين '-------' وان يكون سابقاً لهم كلمة Name= هكذا Name='-----' ويتم وضع هذه الجملة بين العلامتين "Name='-------'"

مثال

البحث عن أول سجل يطابق نص البحث:


Dim STR1 As String, Count1 As Long
aa:
STR1 = InputBox("أدخل نص البحث", "بحث")
If Len(STR1) Then
Data1.Recordset.FindFirst "Name='" & STR1 & "'"
If Data1.Recordset.NoMatch = True Then MsgBox "نص البحث غير موجود", vbCritical
Else
Count1 = MsgBox("من فضلك ادخل نص اضغط لا لإلغاء الأمر", vbCritical + vbYesNo)
Select Case Count1
Case vbNo
GoTo ERE:
End Select
GoTo aa:
End If
ERE:
Exit Sub
On Error GoTo ERE:

اذا كان المؤشر عند اخر سجل فى الجدول فإن الدالة EOF ترجع بالقيمة True

If Data1.Recorset.EOF = True Then Exit Sub

اذا كان المؤشر عند أول سجل فى الجدول فإن الدالة BOF ترجع بالقيمة True

If Data1.Recordset.BOF = True Then Exit Sub

2- الأداة (ADODC)

Name = ADODC1

" لإنشاء سجل جديد Adodc1.Recordset.AddNew

مثال


Adodc1.Recordset![الرقم] = Text1.Text
Adodc1.Recordset![الإسم] = Text2.Text
Adodc1.Recordset![تاريخ الميلاد] = Text3.Text
Adodc1.Recordset![العنوان] = Text4.Text
Adodc1.Recordset![رقم التليفون] = Text5.Text
Adodc1.Recordset.Update
Adodc1.Recordset.AddNew

أيضاً يجب أن تكون صناديق النص التى تكتب بها البيانات الجديدة غير مرتبطة مع الأداة ADODC وذلك لنفس السبب السابق

" لتعديل بيانات السجل الحالى

هذه الأداة ليس لها خاصيه لتعديل السجل الحالى غير الخاصية Update

مثال


Adodc1.Recordset![الإسم] = Text2.Text
Adodc1.Recordset![تاريخ الميلاد] = Text3.Text
Adodc1.Recordset![العنوان] = Text4.Text
Adodc1.Recordset![رقم التليفون] = Text5.Text
Adodc1.Recordset.Update
Adodc1.Recordset![الرقم] = Text1.Text

" حذف السجل الحالى من قاعدة البيانات Adodc1.Recordset.Delete

مثال


Adodc1. Refresh
Adodc1.Recordset.Delete

" أكواد التنقل بين السجلات هي نفس أكواد التنقل للأداة Data Control التى سبق شرحها مع تغيير الإسم للأداة من Data1 الى Adodc1 هكذا

" الانتقال الى أول سجل فى قاعدة البيانات Adodc1.Recordset.MoveFirst

" الانتقال الى أخر سجل فى قاعدة البيانات Adodc1.Recordset.MoveLast

" الانتقال الى السجل التالي فى قاعدة البيانات Adodc1.Recordset.MoveNext

" الانتقال الى السجل السابق فى قاعدة البيانات Adodc1.Recordset.MovePrevious

" الانتقال عدد معين من السجلات Adodc1.Recordset.Move (N) حيث N هي القيمة التى تريد ان يتحركها المؤشر...

البحث فى السجلات

Adodc1.Recordset.Find

وخاصية البحث فى هذه الأداة تحوى أربع وسائط الأول إلزامى والباقى إختيارى وهم:

1- اسم الحقل الذي تريد البحث عنه .

 "Name = 'نص البحث'"

2- النقطة التى يبدأ البحث منها والوضع الإفتراضى لها 0

3- اتجاه البحث ويعطيك خيارين وهم:

" adSearchBackWard وذلك حتى يتم البحث باتجاه أول سجل.

" adSearchForWard وذلك حتى يتم البحث باتجاة أخر سجل.

4- الصف الذى تريد أن يبدأ البحث منه.

مثال

Adodc1.Recordset.Find "Nam = 'Sheriff'", 0, adSearchForWard, 5

3- المكتبة ADO

بعد تعريف المكتبة وفتح قاعدة البيانات كما شرح سابقاُ يتم تعريف متغير عام RS هكذا

Dim RS As New ADODB.Recordset

إنشاء سجل جديد

RS.AddNew

مثال


RS.Fields(0).Value = Text1
RS.Fields(1).Value = Text2
RS.Fields(2).Value = Text3
RS.Fields(3).Value = Text4
RS.Fields(4).Value = Text5
RS.Update
RS.AddNew

لتعديل بيانات السجل الحالى

مثال


RS.Fields(1).Value = Text2
RS.Fields(2).Value = Text3
RS.Fields(3).Value = Text4
RS.Fields(4).Value = Text5
RS.Update
RS.Fields(0).Value = Text1

حذف السجل الحالى من قاعدة البيانات

RS.Delete

مثال


RS.MoveFirst
Text1 = RS.Fields(0).Value
Text2 = RS.Fields(1).Value
Text3 = RS.Fields(2).Value
Text4 = RS.Fields(3).Value
Text5 = RS.Fields(4).Value
RS.Delete

أكواد التنقل بين السجلات:

1- الإنتقال الى أول سجل فى قاعدة البيانات RS.MoveFrist

مثال


Text1 = RS.Fields(0).Value
Text2 = RS.Fields(1).Value
Text3 = RS.Fields(2).Value
Text4 = RS.Fields(3).Value
Text5 = RS.Fields(4).Value
RS.MoveFirst

2- الإنتقال الى أخر سجل فى قاعدة البيانات RS.MoveLast

مثال


Text1 = RS.Fields(0).Value
Text2 = RS.Fields(1).Value
Text3 = RS.Fields(2).Value
Text4 = RS.Fields(3).Value
Text5 = RS.Fields(4).Value
RS.MoveLast

3- الإنتقال الى السجل التالى RS.MoveNext

مثال


RS.MoveFirst
Text1 = RS.Fields(0).Value
Text2 = RS.Fields(1).Value
Text3 = RS.Fields(2).Value
Text4 = RS.Fields(3).Value
Text5 = RS.Fields(4).Value
Else
RS.MoveNext
Text1 = RS.Fields(0).Value
Text2 = RS.Fields(1).Value
Text3 = RS.Fields(2).Value
Text4 = RS.Fields(3).Value
Text5 = RS.Fields(4).Value
End If
If RS.EOF = True Then

4- للإنتقال الى السجل السابق RS.Move Previous

مثال


RS.MoveLast
Text1 = RS.Fields(0).Value
Text2 = RS.Fields(1).Value
Text3 = RS.Fields(2).Value
Text4 = RS.Fields(3).Value
Text5 = RS.Fields(4).Value
Else
RS.MovePrevious
Text1 = RS.Fields(0).Value
Text2 = RS.Fields(1).Value
Text3 = RS.Fields(2).Value
Text4 = RS.Fields(3).Value
Text5 = RS.Fields(4).Value
End If
If RS.BOF = True Then

البحث فى السجلات

وخاصية البحث فى هذه المكتية تحوى أربع وسائط الأول إلزامى والباقى إختيارى وهم:

1- إسم الحقل الذى تريد البحث عنه .

 "Name = 'نص البحث'"

2- النقطة التى يبدأ البحث منها والضع الإقتراضى لها 0

3- إتجاه البحث ويعطيك خيارين وهم:

" adSearchBackWard وذلك حتى يتم البحث بإتجاه أول سجل.

" adSearchForWard وذلك حتى يتم البحث بإتجاة أخر سجل.

4- الصف الذى تريد أن يبدأ البحث منه.

مثال

RS.Find "Nam = 'Sheriff'", 0, adSearchForWard, 5

وبهذا نكون قد إنتهينا من شرح الدرس الثالث

الدرس القادم بدايه فى إنشاء التقارير

:rolleyes: :rolleyes: :rolleyes:

المشاريع المرفقة.rar

#18

كيف سيتم انشاء التقارير قبل جمل الاستعلام؟؟؟؟؟؟؟؟؟؟؟؟

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#19

أسف على الخطأ

الدرس القادم كيف نستخدم جمل الإستعلام ؟

اشكرك على التنبيه اخى محمد

:rolleyes: :rolleyes: :rolleyes:

#20

الدرس الرابع

لغة الاستعلام SQL

الشيء الذي لن تستطيع تجاهله عند تعلم قواعد البيانات هو لغة الاستفسار او الاستعلام و التي يعبر عنها بـ SQL ، لكن ما هي فائدة هذه اللغة؟ لنفرض ان لديك موظفين بالمئات و تريد ان تحدد جنسية معينه منهم و تحصرهم لن تستطيع فعل ذلك الا بلغة الاستعلام حيث يقوم بجمع الحقول التي تساوي الشرط الذي شرطته و هو جنسيتهم ، سنأخذ شرحا مفصلا في هذا الدرس عن الاساسيات و تطبيقات عليها

أولا مافائدة هذه اللغة ؟ كما ذكرنا في المقدمة ان فائدتها في حصر القيم التي تطابق القيم المعطاه من قبل المستخدم و تتميز بالسهولة و الدقة و السرعة ايضا كما يمكنك التحكم بها بصوره كبيره ويمكنك ادخال اكثر من شرط في الاستعلام الواحد، لنفرض ان لدينا جدول اسمه Tb وفيه حقلين باسم name و number و تحتوي هذه الحقول على قيم مدخلة كما في الجدول التالي:

Name Number

444 سامى

534 سامى

444 صالح

و نريد ان نستخرج الاسماء التي ارقامها 444 فسنحتاج الى جملة استعلام بسيطة على الشكل التالي :

SQL = "select name from Tb where number = 444"

في الجملة السابقة امرنا البرنامج ان يقوم بتحديد قيم الحقل nameمن الجدول Tb عندما تكون قيم الحقل number تساوي 444 ، و وضعنا ذلك في متغير اسمه SQL

دعونا نلقي نظره على طرق الاستعلام

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

SQL = "select * from Tb "

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

SQL = "select name,number from Tb "

اذا اردت ان تستفسر عن حقل معين بشرط ما استخدم الصيغة التالية:

SQL = "select name from Tb where number = 444 "

يمكنك استخدام صيغ المقارنة > او < او <= او >= او <> بدلا من =

عندما تريد الاستعلام و استخدام اكثر من شرط ضع بين الشرطين عبارة And او OR حسب حاجتك كالتالي:

SQL = "select name from Tb where number = 444 or number = 555 "

;) ;) :rolleyes:

#21

الدرس الخامس

لغة الإستعلام SQL

في هذا الدرس سوف نتعلم استخدام لغة الاستفسار في تطبيق فيجوال بيسك ، من حيث كيفية الاستفسار عن قيمة مدخلة من قبل المستخدم و كيفية وضع نتائج البحث في listbox و combo box

كيف نتعامل مع جملة SQL في البرنامج ؟ هذا هو السؤال الذي سوف نقوم بالإجابة عليه الان

كيف نتعامل مع جملة SQL في البرنامج ؟ هذا هو السؤال الذي سوف نقوم بالإجابة عليه الان

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

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

Ahmed 1442

Saleh 5425

Sami 1442

لكي نستعلم عن الاسماء التي ارقامها 1442 نكتب الجملة التالية :

SQL = "select name from Tb where num = 1442 "

هكذا نكون قد قمنا بالاستعلام بعد ذلك تأتي الخطوة التالية و هي تخزين النتائج في الجدول المستعار و الذي نقوم بتعريفه ( لمزيد من التوضيح راجع الدروس السابقة)

و لنفرض أن اسمه T و ان اسم المتغير الذي قمنا بتخزين قاعدة البيانات

فيه D و التي كنا نطلق عليها القاعدة المستعارة سنكتب الامر التالي لكي نخزن نتائج الاستعلام في الجدول :

Set T=D.openrecordset(SQL,dbopendynaset)

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

و الان بعد أن قمنا بتخزين القيم في الجدول نريد ان نظهر البيانات و يمكنك اظهارها في عدة اشكال كما تريد فيمكنك و ضعها في مربعات نص او قوائم سواء LISt او COMBO ولكل واحد طريقة تختلف نوعا ما عن الاخر

مربع النص Text Box :

لكي تظهر النتائج في مربع النص فلن تحتاج الا لإجراء الاظهار كما تعلمنا في السابق و تقوم بكتابته بعد امر تخزين نتائج الاستعلام في الجدول

List Box :

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


List1.AddItem TB!name
TB.MoveNext
Next i
For i = 1 To n

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

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

ComboBox :

لا تختلف طريقة تعبئة هذه القائمة عن الطريقة السابقة أبدا قم بنفس الخطوات

استقبال المدخلات من المستخدم :

لن تستفيد حقيقيا من البرامج التي تعملها اذا لم تعرف طريقة استقبال القيم من المستخدم ثم عمل الاستعلام عليها لانه من غير المنطقي أن يقوم المستخدم بالرجوع إليك عند كل عملية إستعلام ،و طريقة الاستقبال هنا لها طريقة خاصة نوعا ما سنعرفها بعد قليل ، غالبا ماتقوم باستقبال القيم من المستخدم من مربع نص Text Box و المشكلة التي تواجهنا بين المدخلات النصية و الرقمية و يعتمد ذلك على نوع البيانات للحقل المعني دعونا نرى أمثلة على ذلك :

إفرض أنك قمت بعمل قاعدة بيانات فيها حقلين الاسم name و حددت نوع البيانات لهذا الحقل بأنها نصية و الحقل الاخر الرقم num و حددت البيانات له بأنها رقمية ، و قمت بربط القاعد مع البرنامج بطريقتنا التي تعلمناها و الان نريد ان نستعلم عن الرقم للشخص الذي يحدده المستخدم سنقوم في هذه الحالة بإنشاء مربع نص لكي يدخل المستخدم الاسم الذي يريده ثم ننشأ زر يقوم المستخدم بالضغط عليه لتتم عملية الاستعلام ، و ستكون جملة الاستعلام عادية كما تعلمنا و بدلا من ان نضع القيمة التي سنستعلم عنها سنضع القيمة التي ادخلها المستخدم في مربع النص من المتوقع أن يكون الكود المطلوب للاستعلام في هذه الحالة التالي :

SQL = "select num from tb where name = text1.text "

هذه هي الجملة المتوقعة لكنها خاطئة ، بهذه الطريقة يكون الاستعلام عن عدد لانهائي من الخانات و هذي ان صح التعبير عيب في مربع النص و لكي نتلافى هذا الخطأ نقوم بما يسمى بالحصر على اساس نوع البيانات في name في حالتنا هذه نوع البيانات حرفية لذا تكون طريقة الحصر على الشكل التالي:

' " & text1.text & " '

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

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

SQL = "select num from tb where name =  '" & text1.text & "' "

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

SQL = "select name from tb where num =  " & text1.text & " "

في الدرس السادس سنتطرق لمواضيع متقدمة مثل الاستفسار من جدولين

;) ;) :rolleyes:

#22

جزاك الله خيرا أخى شريف على هذا المجهود الرائع جعله الله فى كيزان حسناتك

خيركم من تعلم العلم وعلمه

#23

الدرس السادس

لغة الإستعلام SQL

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

قبل أن نبدأ افرض أن لدينا الجدولين التاليين :

08_09_05_02_28_26_11261717061.jpg

نريد الاستعلام عن أسماء الموظين الذين ينتمون لقسم ما و لنفرض اننا نريد من ينتمي لقسم الهندسة، ستكون صيغة الاستعلام على الشكل التالي " حدد حقل الاسم منالجدول tb1 عندما يكون اسم القسم الهندسة " ، لكن هناك مشكلة حيث لا يوجد حقل باسم القسم في نفس الجدول لكن يوجد اسم القسم في جدول اخر، ويوجد في الجدول الذي لدينا رقم القسم لكننا نريد البحث على اساس اسم القسم و ليس رقمه ، اذا يجب ان نحصل على اسم القسم من الجدول الاخر ، وللحصول على معلومات من جدول اخر يجب تحقق شرط مهم و هو وجود حقل مشترك بين الجدولين و هذا ينطبق في حالتنا ، اذا ستكون صيغة الاستعلام على الشكل التالي : " حدد حقل الاسم من الجدول tb1 عندما يكون اسم القسم يساوي (حدد اسم القسم من الجدول tb2 عندما يكون رقم القسم1) "

هكذا وضعنا الاستعلام بالصورة المطلوبة حيث كنا نفتقد للشرط في الاستعلام الاول لعدم وجوده في نفس الجدول لذا قمنا بعمل استعلام اخر فرعي لكي نحصل منه على الشرط ، الان دعونا نتعلم كيف نكتب ما قلناه منذ قليل بلغة الاستعلام :

SQL = "select name from Tb1 where deptname = (select deptname form tb2 where deptno = 1) "

;) ;) :rolleyes:

#24

اسف أخى شريف جعله الله فى ميزان حسناتك :)

خيركم من تعلم العلم وعلمه

#25

الدرس السابع

لغة الإستعلام SQL

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

أحيانا نحتاج الحروف الاولى من حقل ما ، فمثلا في الجامعات يكتبون الحروف الثلاثة الاولى من اسم المقرر، و غيرهم ايضا يحتاج لمثل هذه الخاصية ، وسوف نتعلم كيف نقوم بإستخراج الاحرف الثلاثة الاولى من اليسار لجميع القيم في حقل معين، الكود الحري الذي سيقوم بهذه العملية هو التالي :

SQL = "select left$(name,3) as k from tb1"

استخدمنا الدالة left المعروفة لتحديد الحروف من حقل معين و الذي اسمه في المثال السابق name و قد قمنا بتخزين القيم في المتغير k و يمكنك تخزينها في اي متغير تريد ، طبعا الجدول في حالتنا اسمه tb1 ، هذا كل شيء ، طبعا نقوم بعد ذلك بإضهار النتائج كما تعلمنا في الدروس السابقة

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

SQL = "select name from Tb1 where name like '*" & text1.text & "*'"

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

إن الاستعلام يعيد القيم مرتبة على اساس ترتيب ادخالها ، لكن أحياناتحتاج بأن تقوم بترتيب النتائج ترتيبا تصاعديا أو تنازليا ولفعل ذلك نستخدم الأمر Order By و يكون شكل الاستعلام على الطريقة التالية :

SQL = "select name from Tb1 where name like '*" & text1.text & "*' order By name Asc"

بعد كتابة الامر Order by اكتب اسم الحقل الذي تريد أن يكون الفرز و الترتيب عليه وهو في حالتنا name بعد ذلك اكتب طريقة الفرز التي تريدها تصاعدي أي من الالف للياء ونستخدم لذلك أمر Asc ، مع العلم أن عند عدم وضع Asc فإن البرنامج يقوم تلقائيا بفرزه تصاعديا

اما الفرز التنازلي من الياء الى الالف فنستخدم الامر Desc بدلا من Asc

;) ;) :rolleyes:

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