nasser50001

أنشأ مشروعك بالفيجوال بيسك 6 من الألف إلى الياء

216 ردود في هذا الموضوع

أخواني الأعزاء أعضاء هذا المنتدى الرائع

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

قديم لأني كنت مسجل باسم في هذا المنتدى من فترة طويلة ونسيته

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

وللجميع تحياتي

تم تعديل بواسطه nasser50001
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

مرحبا بك اخوي nasser50001 ويسعدنا انك عدت

ويشرفني انا شخصيا انك تكون استاذي بوضعك لهذي الدروس

وشكر

اخوك heartstation

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أشكر مرورك أخي heartstation وإن شاء الله أكون عند حسن ظنك

أخوك ناصر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

اهلا بك اخي العزيز ناصر ،، المنتدي نور بعودتك ،

والكل في انتظار الدروس بفارغ الصبر .

تحياتي لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخي الكريم مشرف الركن

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

ارجوا العلم

انني موجود وبحاجه اليها

فأين الدروس

اخوكم ايمن

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

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

و أبداء علي بركة الله

أخوك عمرو عيسي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

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

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

فتابع معي أخي الحلقة الأولى

الخطوة الأولى : تحليل النظام

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

1 - التعرف على وظائف النظام

ويتم التعرف على وظائف النظام عن طريق جمع المعلومات الدقيقة وأخذ صورة من كل التقارير اليدوية والعمليات التي كانت تتم في النظام اليدوي وكذلك الجلوس جلسات مطولة مع المسئولين والمديرين ومديري الأقسام والموظفين لمعرفة خوارزمية النظام بالكامل وتكون على اتصال معهم والسؤال عن كل نقطة داخل النظام وما هي وجهة نظرهم في النظام وكيفية الشاشات وطرقة طباعة التقارير .......

وكمثال عملي برنامج عن مؤسسة تجارية لبيع سلعة ( الصافي – المراعي ....... مثلا ) حيث المفترض في النظام أن يقوم بالعمليات التالية :

- طباعة تقرير عن بيانات عملاء المؤسسة

- طباعة تقرير عن بيانات مندوبي المبيعات

- طباعة تقرير عن بيانات الموردين ( إن كان هناك موردين للمؤسسة )

- طباعة تقرير عن بيانات الأصناف .

- تقرير بجميع الطلبيات لعميل معين

- تقرير بجميع الطلبيات لمندوب معين

- تقرير بجميع الطلبيات بتاريخ معين أو بين تاريخين أو يومية ....

2 – تصميم قاعدة البيانات

من النقطة 1 أمكننا تحديد العناصر الرئيسية في النظام حيث يمكننا البدء بتصميم قاعدة البيانات كالتالي :

1 – جدول بيانات العملاء : حيث يوضع فيه حقول تعبر عن جميع بيانات العملاء المطلوبة منك ( رقم العميل – اسم العميل – العنوان – الهاتف – الموبايل – البريد الإلكتروني – مجال العمل ...... وأي بيانات أخرى تريد إضافتها أنشأ لها حقل مع تحديد نوع البيانات لكل حقل وحجم كل حقل .

2 – جدول بيانات المندوبين : حيث يوضع فيه حقول تعبر عن جميع بيانات المندوبين المطلوبة منك ( رقم المندوب – اسم المندوب – العنوان – الهاتف – الموبايل – البريد الإلكتروني – المنطقة - ...... وأي بيانات أخرى تريد إضافتها أنشأ لها حقل مع تحديد نوع البيانات لكل حقل وحجم كل حقل وهكذا في كل جدول

ملاحظات هامة جدا عند تصميم الجدول

1 – أن جميع الحقول يجب أن تكون مرتبطة بحالة واحدة ( العملاء مثلا )

2 - إذا حدث تكرار للبيانات داخل الجدول فيجب فصل الجدول إلى جدولين

3 – أن جميع الحقول تكون مرتبطة بالمفتاح الأساسي للجدول ( رقم العميل مثلا )

هذه أهم الملاحظات على تصميم الجداول .

تشكيل البيانات Data Normalization

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

الشكل الأول للبيانات

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

NasserLessons1.jpg

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

NasserLessons2.jpg

الشكل الثاني للبيانات

كل حقل من حقول الجدول يجب أن يكون مرتبط ( ارتباط معلومات ) بالمفتاح الأساسي للجدول وأي حقول لا ترتبط بالحقل الأساسي يتم فصلها في جدول مستقل .

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

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

الجدول الأول

NasserLessons3.jpg

الجدول الثاني

NasserLessons4.jpg

الشكل الثالث للبيانات

كل حقل بالجدول يعتمد اعتمادا وحيدا على المفتاح الأساسي للجدول فمثلا إذا كان عندنا الجدول

NasserLessons5.jpg

فإن الحقل اسم المادة غير مرتبط ارتباطا وحيدا برقم الطالب

فيتم تقسيم الجدول إلى جدولين كالتالي :

الجدول الأول

NasserLessons6.jpg

الجدول الثاني

NasserLessons7.jpg

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

وانتظرونا إن شاء الله مع الحلقة الثانية

ولكم تحياتي أخوكم ناصر [email protected]

تم تعديل بواسطه عبد الله فتحي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الحلقة الثانية : تصميم شاشة البرنامج

تصميم الشاشة الرئيسية للبرنامج وهي واجهة البرنامج التي ستكون ساحة العمل ونريد أن نصمم شاشة رئيسية كالشاشة التالية :

NasserLessons8.jpg

إنشاء القوائم وأشرطة الأدوات والشريط الحاضن

أولا : إنشاء القوائم

لإنشاء القوائم : افتح قائمة TOOLS واختار منها MENU EDITOR أو اضغط مفتاحي CTRL + E أو أضغط الأداة Menu Editor في شريط الأدوات تظهر الشاة التالية

NasserLessons9.jpg

ويمكن تقسيمها إلى الأجزاء التالية

NasserLessons10.jpg

وبهذا تم إنشاء القوائم ويمكن جعلها جهة اليمين أو اليسار من خاصية Right To Left من خصائص النموذج Form

ثانيا إنشاء أشرطة الأدوات والشريط الحاضن

1 - يجب أولا لإضافة هذه المجموعة من الأدوات إلى شريط الأدوات كالتالي

افتح قائمة PROJECT ثم اختار COMPONENTS تظهر الشاشة التالية حدد الاختيار الذي عليه سهم

NasserLessons11.jpg

إنشاء أشرطة الأدوات

نرسم شريط الأدوات على الشاشة ثم نضبط خصائص شريط الأدوات التالية

الخاصية القيمة

name = Tb1Align = 0 vbalignnon

ثم اسحب شريط الأدوات إلى الأسفل وصغره كما في الصورة

اضغط على الشريط بالزر الأيمن - ثم خصائص كما في الصورة

NasserLessons12.jpg

إنشاء الشريط الحاضن

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

الخاصية القيمة

name = cbAlign = 1 vbaligntop

لربط أشرطة الأدوات مع الشريط الحاضن يوجد طريقتين :

الطريقة الأولى : من خصائص الشريط الحاضن

اضغط على شريط الأدوات بالزر الأيمن وأختار cut ثم أضغط على اللوح المراد وضع الشريط عليه بالزر الأيمن وأختار paste

وهكذا أكرر مع كل شريط أدوات أريد وضعه في الشريط الحاضن

ضبط خصائص الشريط الحاضن

اضغط على الشريط الحاضن بالزر الأيمن وأختار خصائص كما في الصورة

NasserLessons13.jpg

تم تعديل بواسطه عبد الله فتحي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

وتحياتي للجميع

حلقة 2.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ايه يا اخواننننننننننننننننننننننننني :o :o :o

الشرح مش عاجب ولا ايه ......... ولا الكلام مكررررررررررررررررررررر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الحلقة الثالثة

بعض الأدوات الهامة وأهم خصائصها

أولا : النماذج : وهي الشاشات التي سيتكون منها البرنامج

كيفية التصميم : لكي اصمم النموذج بصورة جيدة يجب أن اسأل نفسي عدة أسئلة

1 - هل النموذج شاشة رئيسية أم شاشة فرعية

2 - النموذج سيظهر للمستخدم مكبر أو في الحجم العادي

3 - هل النموذج يحتوي على أزرار التكبير والتصغير أم سيظهر بدون أزرار

4 - الألوان المستخدمة في النموذج

5 - أن النموذج هو أول واجهة المستخدم مما يعطي الانطباع الأول عن البرنامج للمستخدم

أهم خصائص النموذج

NasserLessons14.jpg

ثانيا : أداة العنوان label

NasserLessons15.jpg

ثالثا : مربع النص text

NasserLessons16.jpg

رابعا : زر الأمر command button

NasserLessons17.jpg

خامسا : الأدوات الخاصة بالتعامل مع قاعدة البيانات

مربع قائمة البيانات datalist

NasserLessons18.jpg

مربع سرد البيانات dataCombo

NasserLessons19.jpg

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

ملاحظات هامة على تصميم الأدوات

1 - لا تكثر من استخدام الألوان داخل النموذج

2 - إذا وجد أداة سوف تستخدمها أكثر من مرة يفضل تنسيق الأداة مرة واحدة ونسخها بالعدد الذي تريده ( لاحظ عند اللصق ستظهر رسالة المصفوفة تختار منها لا ) .

3 - إذا كثرت الأدوات داخل النموذج يمكنك جمعها داخل إطار واحد باستخدام أداة الأطارات FRAME

4 - الأدوات المتشابهة داخل النموذج يكون لها نفس التنسيق مثل العناوين ومربعات النصوص يكون لها نفس التنسيق

5 - تحاول دائما التسهيل من عملية إدخال البيانات بالنموذج بمعنى استخدام أسهل الطرق لعملية إدخال البيانات .

بالمناسبة الحلقة القادمة هامة جدا حيث ستكون البداية للتعامل مع قواعد البيانات

فأرجو المتابعة

ولكم تحياتي

تم تعديل بواسطه عبد الله فتحي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

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

تحياتي لك .

واصل .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

معلش أخي الكريم prof_1982

الوقت عندي ضيق لأني أقوم بتنسيق الدروس بالوورد ثم اضعها كصورة ولا يمكني وضعها نص وأعادة تنسيقها مرة ثانية

وأعدك إن شاء الله بعد الإنتهاء ان أضع الدرو س كاملة وورد أو PDf

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الحلقة الرابعة

قواعد بيانات فيجوال بيسك

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

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

1 - أداة قاعدة البيانات Data Control

2 - أداة الوصول لقاعدة البيانات عن بعد Remote Data Control

3 - أداة Active X Data Control ( ِADODC)

وسوف نتعرض بالشرح للأداة الأولى والثالثة

بالمناسبة الأداة الثالثة بها نفس إمكانيات الأداة الثانية وأكثر لذلك سنكتفي بالأداة الأولى والأداة الثالثة

أولا : استخدام أداة قاعدة البيانات Data Control

1 - صمم النموذج التالي

NasserLessons20.jpg

2 - احفظ المشروع الجديد في مجلد باسم برنامج الطلاب في أي مكان وليكن على القرص الصلب C

3 - صمم قاعدة البيانات بالبرنامج ميكروسوفت أكسس انشأ قاعدة بيانات جديدة باسم Students واحفظها في نفس المجلد برنامج الطلاب

4 - أنشا الجدول التالي باسم St_inf وبه الحقول التالية :

NasserLessons21.jpg

5 - اضغط على أداة قاعدة البيانات لتحديدها ثم اضبط مجموعة الخصائص التالية :

NasserLessons22.jpg

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

6 - ربط الأدوات مع حقول قاعدة البيانات مثل مربعات النصوص والعناوين والصور حسب الأداة التي تريد ربطها مع الحقل وسنربط هنا مربعات النصوص فقط

ربط مربعات النصوص

اضغط على مربع النصوص الأول رقم الطالب لتحديده ثم اضبط الخصائص التالية :

NasserLessons23.jpg

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

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

NasserLessons24.jpg

أكواد الأزرار

قبل كتابة الكود يجب أن تجعل خاصية Data source و data Filed فارغة لكل مربعات النصوص

يمكننا إضافة إجراء لمسح مربعات النصوص افتح قائمة Tools واختار Add procedure

اكتب اسم الأجراء وليكن dclear واختار Sub من Type و private من scope

NasserLessons25.jpg

واكتب في الإجراء الكود التالي :

Txt1 = ""
Txt2 = ""
Txt3 = ""
Txt4 = ""
Txt5 = ""
Txt1.setfocus

أولا : كود زر اضافة : اضغط مرتين على زر اضافة واكتب الكود التالي

Data1.Recordset.AddNew
Data1.Recordset![st_no] = Val(Txt1.Text)
Data1.Recordset![st_name] = Txt2.Text
Data1.Recordset![address] = Txt3.Text
Data1.Recordset![b_date] = Txt4.Text
Data1.Recordset![phone] = Txt5.Text
Data1.Recordset.Update
MsgBox "تم حفظ السجل", vbMsgBoxRight + vbMsgBoxRtlReading,"حفظ"
Cmdclear
Data1.Refresh

ثانيا : كود زر تعديل : اضغط مرتين على زر تعديل واكتب الكود التالي

Data1.Recordset.Edit
Data1.Recordset![st_no] = Val(Txt1.Text)
Data1.Recordset![st_name] = Txt2.Text
Data1.Recordset![address] = Txt3.Text
Data1.Recordset![b_date] = Txt4.Text
Data1.Recordset![phone] = Txt5.Text
Data1.Recordset.Update
MsgBox "تم تعديل السجل", vbMsgBoxRight + vbMsgBoxRtlReading,"تعديل"
Cmdclear
Data1.Refresh

ثالثا : كود زر عرض : اضغط مرتين على زر عرض واكتب الكود التالي

Data1.Refresh
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]

رابعا : كود زر مسح : اضغط مرتين على زر مسح واكتب الكود التالي

Cmdclear

خامسا : كود زر الأول : اضغط مرتين على زر الأول واكتب الكود التالي

Data1.Recordset.MoveFirst

Txt1.Text = Data1.Recordset![st_no]

Txt2.Text = Data1.Recordset![st_name]

Txt3.Text = Data1.Recordset![address]

Txt4.Text = Data1.Recordset![b_date]

Txt5.Text = Data1.Recordset![phone]

سادسا : كود زر الأخير : اضغط مرتين على زر الأخير واكتب الكود التالي

Data1.Recordset.MoveLast
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]

سابعا : كود زر التالي : اضغط مرتين على زر التالي واكتب الكود التالي

On Error GoTo err:
If Data1.Recordset.EOF Then
MsgBox "هذا آخر سجل"
End If
Data1.Recordset.MoveNext
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
err:
Exit Sub

ثامنا : كود زر السابق : اضغط مرتين على زر السابق واكتب الكود التالي

On Error GoTo err:
If Data1.Recordset.BOF Then
MsgBox "هذا أول سجل"
End If
Data1.Recordset.MovePrevious
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
err:
Exit Sub

تاسعا : كود زر بحث : اضغط مرتين على زر بحث واكتب الكود التالي

سنعرف متغير عام على مستوى النموذج باسم Nam

On Error GoTo err:
Dim prompt, title, s, y As String
prompt = "أدخل اسم الطالب"
title = "بحث"
y = InputBox(prompt, title)
If Len(y) = 0 Then
Exit Sub
Else
nam = y
s = "st_name='" + y + "'"
Data1.Recordset.FindFirst s
If Data1.Recordset.NoMatch = True Then
MsgBox "هذا الطالب غير مسجل"
Else
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
End If
err:
Exit Sub
End If

عاشرا : كود زر البحث التالي : اضغط مرتين على زر البحث التالي واكتب الكود التالي

Dim s As String
s = "st_name='" + nam + "'"
Data1.Recordset.FindNext s
If Data1.Recordset.NoMatch = True Then
MsgBox "انتهى البحث"
Else
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
End If

حادي عشر : كود زر حذف : اضغط مرتين على زر حذف واكتب الكود التالي

Dim r As Integer
On Error GoTo err:
r = MsgBox("هل تريد بالتأكيد حذف السجل", vbYesNo, "حذف")
If r = vbYes Then
Data1.Recordset.Delete
Data1.Recordset.MoveNext
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
MsgBox ("تم حذف السجل")
Data1.Refresh
Else
Exit Sub
End If
err:
Exit Sub

سأرفق مثال كامل عن الدرس إن شاء الله

تم تعديل بواسطه عبد الله فتحي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

ماشاء الله

و الله شرح غاية في الحلاوة

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لك أخي ابراهيم

والرابط والله نور

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

-09

asalam 3alaykom

ana moshtareka gededa (h)

:D

post-1-1106143933_thumb.gif

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مرحبا بكي

ولعلك تستفيدين من الدروس إن شاء الله

:) :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

-09

asalam 3alaykom nasser :D

thanks B) and I would say Im solafa

I write english becouse there was aproblem in arabic

(h) 3ashekat el ektera3

bye ;)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الحلقة الخامسة

كائنات الوصول للبيانات Data Access Object ( DAO)

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

NasserLessons26.jpg

ولقد قمنا بشرح الأداة Data Control في الحلقة السابقة حيث يمكنك استخدام أكثر من أداة واحدة داخل النموذج الواحد للربط مع أكثر من جدول وسنقوم في هذه الحلقة بشرح الكائن المقابل لهذه الأداة وهو كائن الوصول للبيانات DAO .

الكائن Object هو صنف له مجموعة من الخصائص والطرق والأحداث لتأدية غرض معين وكائن الوصول لقاعدة البيانات DAO هو الرابط بين برنامج الفيجوال بيسك وبرنامج قواعد البيانات حيث يشبه الوصول للبيانات بالشكل التالي :

NasserLessons27.jpg

حيث يمثل (ODBC) Open Database Connectivity عنصر الاتصال مع قاعدة البيانات والذي يسمى الاتصال المفتوح مع قاعدة البيانات وهو بداخلة مجموعة من الكائنات يقع في أعلاها الكائن DAO و RDO اللذان يستخدمان المحرك ODBC للوصول للبيانات وهناك مجموعة أخرى من الكائنات سوف نتعرض لها عند الشرح .

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

خطوات التعامل مع الكائنات DAO

الخطوة الأولى

تعريف الكائنات في مرجع البرنامج References وهنا يجب التفريق بين Component وهو المكان الذي تضيف منه أدوات جديدة أما References هو المكان الذي تضيف منه كائنات جديدة ولإضافة الكائنات نقوم بالخطوات التالية

1 - اضغط قائمة PROJECT واختار REFRANCES

2 - من الشاشة التي تظهر أختار الكائن MICROSOFT DAO 3.51 OBJECT LIBRARY أو حسب آخر إصدار موجود عندك

NasserLessons28.jpg

الخطوة الثانية

إنشاء قاعدة البيانات حيث يمكنك إنشاء قاعدة البيانات والجداول باستخدام الكود أو باستخدام برنامج مخصص لقاعدة البيانات ( المفضل )

الخطوة الثالثة

في شاشة محرر الكود للنموذج وفي منطقة تعريف المتغيرات للنموذج ( أعلى النموذج ) يتم تعريف المتغيرات التي تعبر عن كائنات قاعدة البيانات كالتالي :

Dim WS As DAO.Workspace   تعريف متغير يعبر عن منطقة العمل             
Dim DB As DAO.Databaseتعريف متغير يعبر عن كائن قاعدة البيانات        
Dim RS As DAO.Recordset  تعريف متغير يعبر عن كائن مجموعة السجلات  

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

الخطوة الرابعة

وهنا يجب أن نعرف أنه في قواعد البيانات يفضل أن تكتب كود فتح قاعدة البيانات مرة واحدة في حدث Form load للشاشة الرئيسية للبرنامج وهي الشاشة التي تعتبر الحاوية لكل شاشات البرنامج ولا تغلق إلا عند الخروج من البرنامج أما الجداول فيتم فتحها وإغلاقها حسب الاستخدام .

إنشاء قاعدة البيانات والجداول باستخدام الكود

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

1 - تعريف الكائنات التالية في نفس الموضع السابق

Dim TBL1 As TableDef تعريف متغير يعبر عن كائن الجداول ( الجدول الأول )       
Dim TBL2 As TableDef تعريف متغير يعبر عن كائن الجداول ( الجدول الثاني )      
Dim f1, f2, f3, f4, f5, f6 As Field تعريف متغير يعبر عن حقول الجدول الأول        
Dim ff1, ff2, ff3, ff4, ff5, ff6 As Field تعريف متغير يعبر عن حقول الجدول الثاني  

2 - اضغط على زر إنشاء قاعدة البيانات ثم أكتب الكود التالي :

Dim a, r
Dim s As String
s = App.Path & "\" & "students.mdb"     '
Set ws = DBEngine.Workspaces(0)
a = Dir(s)       'للبحث عن ملف قاعدة البيانات في مسار معين
If a = "" Then    'الملف غير موجود
 Set db = ws.CreateDatabase(s, dbLangGeneral)  'إنشاء قاعدة البيانات
Else
r = MsgBox("قاعدة البيانات موجودة هل تريد استبدالها", vbYesNo, "استبدال")
 If r = vbYes Then
 Kill (s)    'حذف قاعدة البيانات
 Set db = ws.CreateDatabase(s, dbLangGeneral)   'أعادة الإنشاء
 Else
 Exit Sub
 End If
End If

ملاحظات على الكود السابق

1 - جملة App.Path ترجع بمسار الملف وفي هذه الحالة يفضل وضع ملف قاعدة البيانات في نفس مجلد البرنامج

2 - جملة DBEngine وهو محرك قاعدة البيانات الخاص بقادة البيانات اكسس

3 - جملة CreateDatabase تنشأ قاعدة البيانات الجديدة والجملة تكتب على الشكل

Set database = workspace.CreateDatabase (name, locale, options)

Name : اسم ومسار قاعدة البيانات

Local : لغة قاعدة البيانات

Option : مجموعة من الإختيارات مثل التشفير وأصدارقاعدة البيانات ....

4 - جملة Dir(path) للبحث عن ملف لمسار معين

5 - حملة kill(path) لحذف ملف من خلال مسار معين .

إنشاء الجداول باستخدام الكود

يتم إنشاء الجداول باستخدام الكود حيث نحتاج في بعض الأحيان إلى إنشاء جدول إثناء التنفيذ فيتم كما يلي .... اضغط على الزر إنشاء الجداول

Dim s As String
s = App.Path & "\" & "students.mdb"
Set ws = DBEngine.Workspaces(0)
Set db = ws1.OpenDatabase(s)
Set tbl1 = db.CreateTableDef("st_inf")
Set f1 = tbl1.CreateField("st_no", dbInteger)
Set f2 = tbl1.CreateField("st_name", dbText, 40)
Set f3 = tbl1.CreateField("address", dbText, 40)
Set f4 = tbl1.CreateField("phone", dbText, 40)
Set f5 = tbl1.CreateField("b_date", dbDate)
tbl1.Fields.Append f1
tbl1.Fields.Append f2
tbl1.Fields.Append f3
tbl1.Fields.Append f4
tbl1.Fields.Append f5
db1.TableDefs.Append tbl1

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

التعامل مع قاعدة البيانات التي تم إنشائها

1 - في الحدث Form Load للنموذج يتم فتح قاعدة البيانات والجداول المراد استخدامها داخل النموذج

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

اضغط على مكان خالي بالنموذج مرتين ثم اكتب الكود التالي

Dim s as string
S = app.path & "\students.mdb" هذا المتغير يعبر عن مسار قاعدة البيانات المراد فتحها
Set db = OpenDatabase(S) هذه الجملة لفتح قاعدة البيانات                          

2 - بعد ذلك افتح الجدول المطلوب في كل شاشة من شاشات البرنامج يتم تعريف متغير للتعبير عن الجدول عند التعامل معه مثل RS حيث يوضع التعريف التالي في منطقة تعريف المتغيرات في النموذج

Dim RS as DAO.Recorset

ثم بعد ذلك يتم فتح الجدول في أي مكان نريد استخدامه

Set rs = db.OpenRecordset("st_info", dbOpenDynaset)

حيث أن جملة OpenRecordset لها بارامترين

الأول : يحدد اسم الجدول المطلوب فتحة

الثاني نوع السجلات التي ستستخدمها

أنواع السجلات التي يمكن فتحها بالكائن DAO

النوع الأول Table Recordset

وهذا النوع هو ارتباط مباشر لأي جدول في قاعدة البيانات

مميزاته

1 - استخدام نظام الفهرسة INDEX

2 - إتاحة عمليات بحث سريعة

عيوبه

1 - عدم إمكانية إنشاء تصفية للسجلات

2 - استخدام تعليمة SEEK في البحث وهى تبحث عن السجل الأول فقط

3 - عدم استخدام تعليمة البحث FIND التي يمكن أن توجد عدد كبير من السجلات

ولفتح جدول باستخدام هذا النوع نستخدم الجملة التالية

Set rs = db.OpenRecordset("st_info", dbOpenTable)  

النوع الثاني DyanaSet Recordset

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

مميزاته

1 - إمكانية ربط البيانات في أكثر من جدول

2 - إمكانية استخدام الأمر FIND في البحث عن السجلات

3 - إمكانية عمل تصفية للسجلات

عيوبه

1 - لا يستخدم الفهارس INDEX

2 - لا يتيح تعديل السجلات أو حذفها بسهولة

لفتح جدول باستخدام هذا النوع من السجلات نستخدم الجملة التالية

Set rs = db.OpenRecordset("st_info", dbOpenDynaset)  

النوع الثالث : SnapShot Recordset

وهى عبارة عن صورة من الجدول كما هو وهي للقراءة فقط

مميزاته

1 - إمكانية ربط أكثر من جدول

2 - إمكانية استخدام أمر البحث FIND

3 - سرعة البحث للسجلات لأنها في الذاكرة

عيوبه

1 - عدم إمكانية تحديث وتعديل البيانات لأنها للقراءة فقط

2 - عدم إمكانية استخدام الفهارس

3 - استهلاك الذاكرة وخاصة عند فتح أكثر من جدول

لفتح جدول باستخدام هذا النوع من السجلات نستخدم الجملة التالية

Set rs = db.OpenRecordset("st_info", dbOpenSnapShot)  

تم تعديل بواسطه عبد الله فتحي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك أخي ناصر ..

دروس جيدة ولا يعيبها سوى الخط غير الواضح ..

وإذا كان بالإمكان تضع الدروس ونقوم بتنسيقها بالنيابة عنك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخي عبد الله

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

ولكن طلب صغير منك

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

[email protected] ولك جزيل الشكر

حتى يمكنى وضع الحلقات منسقة

طلب آخر أنا أحتاج للتعديل في بعض المشاركات ولكن فوجئت أن إمكانية التعديل تنتهي بعد كتابة الموضوع بفترة فأرجو أن تترك لي إمكانية تعديل مشاركاتي بحيث لو احتجت أن اضيف شيئ على الموضوع

شكررررررررررررررررررررا

الحلقة الأولى.doc

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .