" إن وقتك محدود، لذلك لا تضيعه بأن تعيش حياة وحلم الآخرين.لا تعيش على نتائج تفكير الآخرين،ولا تجعل من ضوضاء آراء الآخرين تغرق صوتك وتفكيرك وحدسك الداخلي.إن واحداً من أهم الأشياء في الحياة هو أن يكون لديك الشجاعة لتتبع حدسك الداخلي،لأن بداخلك حدساً يعرف بطريقة معينة،ما ستصبح عليه يوما ما، وكل ما عدا ذلك هو شيء ثانوي."
#Copy_past = no
" بعيداً عن تقليد ونسخ اكواد الاخرين "
قد يسئل سائل يقول انا تعلمت الخطوات الاساسية لقواعد البيانات لكن لم اعمل برنامج كما اشاء اي لم اصمم( ابرمج) برنامج بحريه تامه بعيدا عن تقليد مشاريع ونسخ اكواد الاخرين……
اقول لك عزيزي المبرمج انت الان دخلت لبرمجة قواعد البيانات ومؤهل لذلك، لكن تقول اريد ان ابرمج برنامج لقواعد البيانات بنفسي بدون الاعتماد على تقليد ونسخ مشاريع الاخرين
طيب القناة بتعلمك الاساسيات من الالف الى الياء والى الاحتراف ، لكن انت تريد ان تبرمج قواعد بيانات على حسب مايطلبة منك سوق العمل او العميل…
ببساطة اقول لك اخي المبرمج ان قواعد البيانات سهله جدا فقط تحتاج الى تركيز لاتخف من كثرة الاكواد وطول الكود واكثر الاكواد مكررة ......
طيب تقول انا اريد ان ابرمج بنفسي بعيدا عن التقليد وما ينشره الاخرون…
نعم اخي المبرمج انته مللت من التقليد وتريد ان تصبح محترف بعيدا عن نسخ الاكواد وهذا سهل جدا….
عرفنا في درس سابق عندما نقوم بتصميم قاعدة بيانات اكسس نحتاج الى ربطها بالفيجوال وذلك من خلال اما عن طريق الاتصال المباشر (المتصل) او عن طريق الاتصال غير المباشر
( المنفصل) ، وبرمجنا مشروع بالوضع المتصل والمنفصل……
سوف اقوم بتوضيح كافة التفاصيل التي من خلالها اخي المبرمج تصبح محترف في برمجة قواعد البيانات……
سوف تتعلم
🔹برمجة ازرار:
الاضافة
الحفظ
الحذف
التعديل
البحث بانواعة
🔹 برمجة ازرار التنقل بين السجلات
🔹اضافة اكثر من Form للمشروع وكيف عرض وتحكم في الفروم
اي قاعدة بيانات تحتوي على ازرار الاضافه والحفظ والحذف والتعديل والبحث وكذلك ازرار التنقل بين السجلات….
طيب كيف نبرمج هذه الازرار بعيدا عن نسخ اكواد الاخرين ؟
او ماهي الصيغة العامة لهذه الازرار ؟
بحيث عندما تبرمج قاعدة بيانات تحتاج الى برمجة هذه الازرار للتحكم في قاعدة البيانات
وسوف تبرمج هذه الازرار بدون اي مشاكل وبدون الاعتماد على نسخ اكواد الاخرين…
مثل ماتعرف اخي المبرمج كل قاعدة بيانات تحتوي على حقول تختلف عن الاخرى كأن تكون مثلا قاعدة بيانات تحتوي على 5 حقول او اكثر وقاعدة بيانات قد تحتوي على 10 حقول واكثر وهذا الاختلاف يسبب لك اخي المبرمج مشاكل عند برمجة ازرار الاضافه والحفظ والحذف والتعديل والبحث……
لكن سوف نتعلم الصيغة العامة لهذه الازرار بحيث تستطيع ان تبرمج اي قاعدة بيانات بدون اي مشاكل
اخي المبرمج والمبرمجة من خلال هذه الدروس
التي سوف اقدمها سوف تستطيع برمجة اي
قاعدة بيانات مهما كان عدد الحقول بالجدول
وكذلك مهما كانت اعداد ToxtBox على الفروم اي تستطيع وضع اي عدد من ToxtBox حسب قاعدة البيانات المصممة…
طيب اخي المبرمج بعد الدروس السابقة اكيد صارت عندك فكرة كيف تقوم بانشاء قاعدة البيانات وربطها بالفيجوال وايضا عندك معرفة ولو بسيطة بالاكواد وكذلك بالادوات
وبرمجنا ايضا ازرار الاضافه والحذف والتعديل ..
خلي ابالك اخي المبرمج هناك اكواد مختلف من مرحلة اتصال بقاعدة بقاعدة البيانات الى برمجة ازرار الحذف والتعديل والاظافه والبحث هذا كله حسب المبرمج الذي يقوم ببرمجة وتصميم قاعدة البيانات وربطها بالفيجوال…
قد يسئل سائل يقول انا اريد ان ابرمج قاعدة بيانات وربطها بالفيجوال وبرمجة ازرار الاضافه والحذف والتعديل والبحث من خلال اكواد نقدر نقول عليها ثابته اي تستطيع ان تبرمج اي قاعدة بيانات بهذه الاكواد
الجواب نعم اخي المبرمج سوف تستطيع برمجة اي قاعدة مهما كانت اعداد الحقول في الجدول وسواء كانت قاعدة بيانات صغيرة او متوسطة او كبيرة……
سوف نتعلم برمجة قاعدة بيانات باكواد سهلة ومختصرة وثابته تستطيع برمجة اي قاعدة بيانات عندما اقول ثابته بمعنى تستطيع تعديل الكود وانما ثابته عند اتباع هذه الاكواد لبرمجة اي قاعدة بيانات والعكس صحيح تستطيع ان تعدل وتطور على هذه الأكواد … .
هذه الاكواد تستطع بها برمجة اي قاعدة بيانات
ومهما كانت حجم وضخامة قاعدة البيانات…
#سوف نقوم بشرح بالدروس على بركة الله وعلى شكل مراحل لكي تكون مرتبه لك اخي المبرمج تابعونا……
#المقولة تقول "يحتل عملك جزء كبير من حياتك ، والسبيل الوحيد لتكون راضيا حقا هو أن تفعل ما تعتقد أنه عمل عظيم.فالطريقة الوحيدة للقيام بعمل عظيم هو أن تحب ماتفعله، وإذا لم تجد بعد ماتحبه فواصل البحث ولا تستسلم.
سوف نقوم بانشاء قاعدة بيانات وربطها بالفيجوال ومن خلال هذا البرنامج تستطيع برمجة اي قاعدة بيانات….
المرحلة الأولى انشاء قاعدة بيانات أكسس …
افتح برنامج ميكروسوفت اكسس
في مثالنا سنشتغل على ميكروسوفت اكسس 2007 نسخة عربية ولا يوجد فرق بين نسخة او اصدارات البرنامج
بعد ذلك افتح برنامج Access ستضهر لك شاشة التالية
اضغط على الايقونة " قاعدة بيانات فارغة"
اكتب اسمها dataaccess او ضع اي اسم يحلو لك فلا ديكتاتورية هنا
ستلاحظ بعد الضغط على الزر انشاء ظهور نافذة انشاء الجداول
كما تلاحظ هناك جدول افتراضي اسمه جدول وباالانكليزي Table1 نقوم بتغير اسمة الى Newdata او اي اسم تريدة براحتك ثم نضغط كلك ايمن على الجدول ونقوم بعرض التصميم نقوم الان بانشاء الحقول ولكل حقل نوع معين من البيانات ووصف خاص به ..
نقوم بانشاء الحقول كما يلي :
ID نوعه رقم
name نص
Adress نص
Country نص
عند الانتهاء من تسجيل الحقول سوف نذهب الى الحقل الاول lD ونضغط عليه بيمين الفارة ونختار مفتاح 🔑 اساسي 🔑
والغاية من جعل الحقل حقلا اساسيا هو تفادي تكرار مجموعة من العناصر فمثلا لا يمكن تسجيل طالبين في نفس الرقم ، بعد ذلك نقوم باغلاق الجدول فتظهر نافذة تحذيرية تسالنا هل تريد حفظ الجدول نضغط على نعم ثم نخرج من البرنامج…
ملاحظه مهمة
اخي المبرمج الحقول التي قمت بإنشائها ليست ثابته تستطيع اضافة الحقول التي تريدها كأن تكون 4 حقول او 10 او اكثر حسب ما تريده
# المرحلة الثانية ربط قاعدة البيانات أكسس بالفيجوال …
افتح فيجوال بيسك وقم بانشاء مشروع جديد وقم بتسميته test او اي اسم تريده بعد ذلك قم بالضغط على Ok للانشاء…
اول خطوه راح نعملها هي اضافة اداة Panel من صندوق ToolBox الفائدة من هذه الاداة هي عند تنفيذ البرنامج وعندما تقوم بتكبير البرنامج سوف تبقى الادوات ع زاويه واحدة وغير مرتبة وليست في الوسط…
بعد ادراج الاداة قم بالضغط على السهم بجانبها واختر Dock in parent container
كما في الصورة رقم 1
ستلاحظ وضع تكبير حجم الاداة على حجم الفروم
ثم نقوم بتسميه الاداة برمجيا اضغط على اي مكان في الفروم واذهب إلى الخصائص ومن الخصائص اختر name واكتب اسمها pnldata
خلك مأشر على الاداة ومن الخصائص اختر الاحداث كما في الصورة رقم 2
تضهر لك مجموعة من الاحداث ابحث عن كلمة Resize
كما في الصورة رقم 3
ثم اضغط عليها ضغطتنين سوف تفتح لك نافذة الكود واكتب بها هذا الكود التالي كما في الصورة رقم 4
الان انتهينا من اداة panel وستلاحظ التغير بعد اضافه الادوات الى الفروم…
الان ناتي الى اضافة الادوات في الفروم .
نحتاج الى الادوات التالية :
ـ TextBox عدد 5
ـ Label عدد 5
ـ Button عدد 5
ـ RodioButton عدد 4
ـ DataGridView عدد 1
ـ GroupBox. عدد 1
ـ CheckBox عدد 1
نقوم بترتيب الادوات على الفروم رتبها على كيفك انت اخي المبرمج ثم نقوم بتغير اسماء الادوات على الفروم وكما يلي
1⃣ ـ RodioButton قم بتيغر اسمائها كما يلي :
Number
Name
address
Country
2⃣ـ Button كما يلي
add
Update
Delet
Clear
Search
ـ3⃣ CheckBox
autsearch
4⃣ـ GroupBox.
Groupsearch
ـ5⃣ Label كما يلي :
Id
Name
adderss
Country
0
الليبل الخامس والاخير قمنا بتسيمته صفر (0)
اي عند تسميته تكتب 0 وبعدين تعرف فائدة
بعد تغير الاسماء سيصبح الفروم كما في الصورة رقم 5
⚠️ملاحظه نضغط على اداة name على الفروم اي الاداة الموجوده على الفروم ضمن اداة RodioButton لان نحن قمنا بتغير اسمها الى name بعد الضغط عليها اذهب الخصائص واختر خاصية Checked اضبطها على True بحيث عند تحديد اي خيار من البحث سوف يختار اداة واحدة
⚠️ملاحظه نقوم بتيغر اسماء الادوات مرتين اولا على الفروم وثانيا برمجيا قمنا بتيغر اسماء الادوات على الفروم اعلاه الان نقوم بتيغر اسماء الادوات برمجيا وكما يلي :
Number ➡️ rdonumber
Name ➡️ rdoname
address ➡️ rdoaddress
Country ➡️ rdocountry
add ➡️ Btnadd
update ➡️ Btnupdate
delet➡️ Btndelet
Clear ➡️ Btn Clear
Search ➡️ BtnSearch
autsearch ➡️ cbxautosearch
TextBox1 ➡️ txtld
TextBox2 ➡️ txtname
TextBox3 ➡️ txtaddress
TextBox4 ➡️ txtCountry
TextBox5 ➡️ txtsearch
⚠️ملاحظه اداة Label لا نقوم بتغير اسمه برمجيا وانما فقط على الفروم لكي لا تتشابه عليك الاسماء اخي المبرمج وكذلك اداة DataGridView1 يبقى اسمها برمجيا كما هو…
⚠️ملاحظة ننقر على حقل Textld في الفروم ومن الخصائص نختار خاصية Read Onle ونضبطها على True اي نجعلها للقراءه فقط
# المرحلة الثالثة اتصال قاعدة بيانات اكسس بالفيجوال …
بعد ان قمنا بتصميم النموذج واضافة الادوات سوف نقوم بربط قاعدة البيانات بالفيحوال…
اول خطوة نعملها هي نقل قاعدة بيانات اكسس access الى مسار البرنامج الذي قمنا بنشائه على الفيجوال وهو test ننقلها الى داخل ملف bin وهو Debug اي يصبح مسار
bin /Debug
الان ماشين صح نعود الى الفروم
نضغط ضغطتين على الفروم تفتح لنا نافذة الكود
اخي المبرمج هنا محتاجين الى امرين للاتصال بقاعدة البيانات بعد ان نقوم بالتصريح عن فضاء الاسماء تعلمنا في الدروس السابقة كيف التصريح عن فضاء الاسماء واين نكتبها لابس باعادتها بعد ان ضغطنا على الفروم وفتحت لنا نافذة الكود نذهب فوق
Public Class form1
ونكتب الكود التالي
Imports system.Data.oleDb
الان نعرف متغيرين للاتصال بقاعدة البيانات تحت public Class form1 نعرف المتغيرين وكما يلي :
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=dataaccess.accdb")
هذا متغير اول
نعرف متغير ثاني كما يلي :
Dim cmd As New OleDbCommand("", conn)
⚠️ملاحظه كتابة الكودين سطر واحد
شرح الكودين
1⃣ الكود الاول
عرفنا متغير اول اسميناه conn ثم استخدمنا امر الاتصال OleDbConnection بعد ذلك قمنا بكتابة مسار برنامج access بين قوسين لاحظ عزيزي المبرمج بعد كلمة = source
قمنا بوضع اسم قاعدة بيانات اكسس التي اسميناها dataaccess انت اخي المبرمج اذا قمت بتسميه قاعدة بيانات كما تريد فضع اسم قاعدة البيانات بعد علامة = ، اما accdb فهو امتداد قاعدة بيانات اكسس وهو ثابت لا يتغير…
2⃣ الكود الثاني
عرفنا متغير اسمه cmd ثم استخدمنا امر oleDbCommand لتنفيذ كود الاول Conn…
❓قد يسئل سائل يقول انا لاحظت ان اتصال بقاعدة البيانات ليست هكذا اي ليس كما اراه الان
اجاوبك اخي المبرمج كلامك صح لكن هناك طرق مختلفة للاتصال بقاعدة البيانات لكن هذه التي قمنا باستخدامها للاتصال بقاعدة البيانات سهله ومختصرة في الكود ،واذا راجعت الدروس السابقة في القناة وقارنت ستلاحظ اختلاف بسيط بين اتصال هذه قاعدة البيانات ويين قواعد البيانات الاخرى التي قمنا بتصميمها وستعرف السبب لاستخدامنا هذه الطريقة للاتصال بقاعدة البيانات فيما بعد .
انظر الى الصورة كتوضيح للاتصال بقاعدة البيانات
صورة كتوضيح للاتصال بقاعدة البيانات .
بعد ان قمنا بالاتصال بقاعدة البيانات نحتاج الان الى اجراء لفتح وقلق قاعدة البيانات .
⚠️ملاحظة مهمة
اخي المبرمج سنقوم بانشاء اجراء يختصر لنا الاكواد كيف ذلك ؟ .
عندما نقوم ببرمجة ازرار الاضافة والتعديل والمسح والبحث سوف نحتاج في كل زر من برمجة هذه الازرار نقوم بفتح وغلق قاعدة البيانات وهذا الشي ليس خطا وانما يطول علينا كتابة الاكواد ولكن عند تعريف اجراء لفتح وقلق قاعدة البيانات سوف يختصر لنا الاكواد…
الان نقوم بانشاء الاجراء
ننقر نقرتين على الفروم وتحت التعريفين السابقين نكتب الاجراء التالي :
Sub runcommand(sqlcommand As String, Optional message As String = "") Try If conn.State = ConnectionState.Closed Then conn.Open() cmd.CommandText = sqlcommand cmd.ExecuteNonQuery() If message <> "" Then MsgBox(message) Catch ex As Exception MsgBox(ex.Message) Finally If conn.State = ConnectionState.Open Then conn.Close() End Try End Sub
شرح الكود :
عرفنا اجراء اسمة runcommand من نوع string وقلنا له اضهر الاتصال في رسالة message ثم قمنا كتابة الاتصال بين داله Try و Catch بعد ذلك اشترطنا على الكود قلنا له عندما تجد قاعدة بيانات مفتوحة state
قم باغلاق قاعدة البيانات Closed اي لا تفتح قاعدة البيانات عندما تجدها مفتوحة لان اذا قمنا بفتح قاعدة البيانات وهي مفتوحه يسبب لنا خطأ Error ثم اشترطنا عليه اذا وجدت قاعدة بيانات لا تساوي " "<> اضهرها لنا في رسالة msgBox…
------------------------------
ثم نقوم بانشاء اجراء ثاني لملء الداتا تيبل بالبيانات ننقر نقرتين على الفروم ونكتب الكود التالي تحت الاجراء السابق :
Function gettable(selectcommand As String) As DataTable Try Dim tb1 As New DataTable If conn.State = ConnectionState.Closed Then conn.Open() cmd.CommandText = selectcommand tb1.Load(cmd.ExecuteReader) Return tb1 Catch ex As Exception MsgBox(ex.Message) Return New DataTable Finally If conn.State = ConnectionState.Open Then conn.Close() End Try End Function
شرح الكود
عرفنا دالة من نوع Function واسميناها gettable وايضا كتبنا الكود بين جملتين Try و Catch لمنع حدوث خطا عند تنفيذ البرنامج
ثم قمنا بتعريف متغير اسمه tb1 من نوع DataTable ثم شرطنا اذا وجدت قاعدة بيانات مفتوحة قم بتنفيذ جمله الاتصال selectcommand ثم قمنا بتحميل (Load) داتا (tb1) وقراءة البيانات ExecteReader ثم قمنا بارجاع Return البيانات في الداتا تيبل ثم اشترطنا اذا وجدت قاعدة البيانات مفتوحة State قم باغلاقها Close ولا تفتحها الا وهي مغلقة…
#انظر الى الصورة كتوضيح
⚠️ملاحظة
عزيزي المبرمج عندما تريد برمجة اي قاعدة بيانات استخدم هذين الاجراءين لفائدتين اولا لاختصار عليك الاكواد وثانيا لمنع حدوث اي خطا عند تنفيذ البرنامج
بعد ان قمنا بالاتصال بقاعدة البيانات
وعملنا اجراء اختصار الاكواد لانه سوف نحتاجه في برمجة ازرار الاضافه والحذف والتعديل والبحث وكذلك عملنا اجراء ملء داتا tb1 تيبل بالبيانات ، اليوم تكمله الدرس…
سوف نقوم بانشاء اجراء ونسميةFilldata فائدته لاظهار البيانات بالداتا كراند فيو (DataGridView) ويكون الكود #كالتالي :
Sub filldata(Optional selectfill As String = "") If selectfill = "" Then selectfill = "select * from newdata order by ld" DataGridView1.DataSource = gettable(selectfill)
شرح الكود
قمنا بانشاء اجراء واسميناه filldata واستخدمنا جملة select ثم استخدمنا دالة شرطية if ثم حددنا اسم جدول newdata،
بعد ذلك استخدمنا order by ld ومعناها ترتيب الحقول في DataGridView اي تضهر الحقول متسلسلة غير مخربطة 1 ، 2 ، 3 وهكذا ثم عرضنا البيانات……
🌅لاحظ الكود كما في الصورة رقم 1
بعد ان كتبنا الكود نذهب الى التحميل
ـForm1_Load ونكتب الكود التالي
Filldata( )
وذلك لغرض تحميل البيانات عند تنفيذ البرنامج
🌅كما في الصورة 2
سنحتاج الى كود لترقيم البيانات تلقائيًا بدون تدخل المستخدم اي عند اضافة بيانات سوف يقوم البرنامج تلقائيًا بترقيم البيانات تلقائيا ابتداءاً من رقم 1
ويكون الكود كالتالي :
Function GetAutonum(Tablename As String, Colname As String) As String Dim str As String str = "select max( " & Colname & " ) + 1 from " & Tablename Dim tb1 As New DataTable tb1 = gettable(str) Dim autonum As String If tb1.Rows(0)(0) Is DBNull.Value Then autonum = "1" Else autonum = tb1.Rows(0)(0) End If Return autonum End Function
شرح الكود
استخدمنا دالة Function وعرفنا اجراء اسميناه GetAutonum
عرفنا متغير اسمه str من نوع string
ثم جعلنا متغير str يساوي جملة select ثم كتبنا 1 + لانه الترقيم يبداء من الرقم 1 وصاعداً ، ثم عرفنا متغير اسمه tb1 لجلب البيانات من الداتا تيبل DataTable ثم جعلنا td1 يساوي اجراء الذي قمنا بنشائه اعلاه gettable لغرض ملء داتا tb1 بالبيانات
ثم عرفنا متغير اسمه autonum ثم استخدمنا دالة الشرطية if لترقيم الصفوف (Rows) ثم جعلنا autonum يساوي 1 ثم انهينا الدالة الشرطية واخيراً انهينا الدالة
End Function
🌅 لاحظ الكود في الصورة رقم 1
… سوف نقوم بانشاء اجراء الآن لغرض عرض البيانات على تكس بوكس (TextBox) اي عند تنفيذ البرنامج وعند الضغط على اي معلومة في داتا كراند فيو (datagridview) سوف تضهر المعلومات على تكس بوكس …… الاجراء يكون كالاتي
Sub showdata() Try If DataGridView1.CurrentRow IsNot Nothing Then txtld.Text = DataGridView1.CurrentRow.Cells(0).Value txtname.Text = DataGridView1.CurrentRow.Cells(1).Value txtaddress.Text = DataGridView1.CurrentRow.Cells(2).Value txtcountry.Text = DataGridView1.CurrentRow.Cells(3).Value Btnadd.Enabled = False btnupdate.Enabled = True btndelete.Enabled = True End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub
شرح الكود قمنا بانشاء اجراء اسميناه showdata واستخدمنا Try لمنع حدوث خطا عند تنفيذ البرنامج بعد ذلك قمنا باستخدام جمله شرطية if ثم نقوم بكتابة اسماء التكس بوكس برمجيا مثلا txtldبعد ذلك يبدا الترقيم من الصفر ثم قمنا بتعطيل زر الاضافة Btnadd.Enabled = False وفعلنا زر التعديل والمسح ثم انهينا الدالة الشرطية وهكذا يكون عرض البيانات على تكس بوكس …… 🌅 لاحظ الكود في الصورة كتوضيح
بعد ذلك نقوم بالضغط على داتا كراند فيو في التصميم ومن الخصائص نذهب الى الاحداث Events ونختار خيار mouseClick ثم نكتب الكود التالي : Showdata( )
. بعد ان قمنا بعرض البيانات على تكس بوكس نحتاج الى مسح هذه البيانات من تكس بوكس وليس من قاعدة البيانات او جدول اي عند الضغط على زر clear سوف يمسح المعلومات من تكس بوكس وبنفس الوقت يسمح لزر add باضافة البيانات ويعطل ازرار Delet وزر update…… ويكون الكود كالتالي :
Sub cleardata()
For Each c As Control In Pnldata.Controls If TypeOf c Is TextBox Then c.Text = "" End If Next txtld.Text = GetAutonum("newdata", "ld") txtname.Select() Btnadd.Enabled = True btnupdate.Enabled = False btndelete.Enabled = False DataGridView1.ClearSelection() End Sub
شرح الكود قمنا بانشاء اجراء اسميناه cleardata استخدمنا دالة for ومعرف c اي اذا وجدت c فاضي وتحت جملة next كتبنا جملة txtname.select( ) وفائدتها عند تنفيذ البرنامج وعند الضغط على زر clear سوف يعلم الزر على تكس بوكس ld… بعد ذلك نقوم بكتابة cleardata في نافذة التحميل ـform1_load ثم نذهب الى نافذة تصميم البرنامج وننقر نقرتين على زر clear ونكتب الكود التالي Cleardata( ) 🌅لاحظ الكود في الصورة كتوضيح
…… سوف نقوم ببرمجة ازرار الاضافة والتعديل والمسح والبحث تباعاً..
1⃣ اولا سوف نقوم ببرمجة زر الاظافة ننقر نقرتين على زر الاظافة (add) ونكتب الكود التالي : r
runcommand("insert into newdata values(" & txtld.Text & ",'" & txtname.Text & "','" & txtaddress.Text & "','" & txtcountry.Text & "')", "newdata is added") For x As Integer = 0 To DataGridView1.Rows.Count - 1 Next filldata() cleardata() End Sub
شرح الكود استخدمنا امر runcommand وبين قوسين استخدمنا جملة insert وكتبنا اسم الجدول في قاعدة البيانات وبين قوسين كتبنا جميع اسماء التكس بوكس مثلا " & txtld.Text & ", ' " ⚠️ملاحظة اخي المبرمج تستطيع برمجة اي زر في اي قاعدة بيانات بهذا الطريقة اعلاه المختصرة 🌅لاحظ الكود في الصورة كتوضيح
2⃣ ثانيًا برمجة زر التعديل update ننقر نقرتين على زر التعديل ونكتب الكود التالي
If MsgBox("do you want to delete?", MsgBoxStyle.YesNo) = vbYes Then
runcommand("delete from newdata where ld=" & txtld.Text, "newdata is deleted") End If filldata() cleardata()
⚠️ملاحظة الكود سطر واحد ماعدا for x يكون سطر ثاني 🌅لاحظ الصور للكود كتوضيح
3⃣ برمجة زر المسح delet
ننقر نقرتين على زر delet ونكتب الكود التالي
If MsgBox("do you want to delete?", MsgBoxStyle.YesNo) = vbYes Then
runcommand("delete from newdata where ld=" & txtld.Text, "newdata is deleted") End If filldata() cleardata()
شرح الكود استخدمنا رسالة if MsgBox اي عند الحذف تظهر رسالة للمستخدم مكتوب فيها do you want to delete ؟ هل تريد المسح مع ازرار تاكيد مسح yes no وعند مسح وضغط على yes تظهر رسالة ثانية توكد على حذف الحقل Newdata is deleted 🌅لاحظ الصورة كتوضيح لكود المسح delet
4⃣ برمجة زر بحث search
ننقر نقرتين على زر البحث search ونكتب الكود التالي
: Private Sub btnsearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsearch.Click
Dim strsearch As String = "select * from newdata where " If rdonumber.Checked Then strsearch &= " [ld] like'%" & txtsearch.Text & "%' " ElseIf rdoname.Checked Then strsearch &= " [namn] like'%" & txtsearch.Text & "%' " ElseIf rdoaddress.Checked Then strsearch &= " [address] like'%" & txtsearch.Text & "%' " ElseIf rdosalary.Checked Then strsearch &= " [country] like'%" & txtsearch.Text & "%' " End If filldata(strsearch) End Sub
🌅لاحظ الصورة رقم 1
كتوضيح لكود البحث search بعد ذلك ننقر نقرتين على تكس بوكس الذي نبحث من خلالة ونكتب الكود التالي :
سنعمل شي حلو اخي المبرمج لو راجعت صورة تصميم البرنامج ستلاحظ وضعنا Label وكتبنا قيمته 0 سوف نكتب كود فائدة عند تنفيذ البرنامج وعند البحث سوف يعطيك رقم الحقل الذي تبحث على معلومة فية…… نذهب الى الاجراء الذي قمنا بنشائه سابقًا واسمه filldata ونكتب الكود التالي :
Label5.Text = DataGridView1.Rows.Count
🌅لاحظ الصورة كتوضيح للكود
صورة بعد تنفيذ البرنامج وعند البحث عن معلومة لاحظ الليبل سوف يتغير رقمة عند البحث
كيف عمل تقرير ( Report) لقاعدة بيانات اكسس
على بركة الله نبدا اول خطوه نعملها هي اضافة فروم form ثاني الى مشروعنا ، من project ثم Add window from ثم تظهر لك نافذة اختر منها Windows Form بعد اضافه الفروم قم بتكبير حجمها ثم من خصائص اختر window state اختر Maximized ادرج واحد Button الى الفروم الاول بجنب ازرار الاضافة والتعديل والحذف ومن الخصائص سميه Report ثم انقر نقرتين على زر Report واكتب الكود التالي : Dim d as new form2 d.showDialog ثم ادرج اداة من صندوق toolbox اسمها ReportViewer كما في صورة رقم 1
بعد ادراج الاداة اضغط على السهم الي على الاداة اختر dock in parent container كما في صورة رقم 2
ثم من نفس سهم على الاداة اختر Design a new report كما في الصورة رقم 3
سوف تلاحظ ضهور صفحه اختر منها Database ثم اضغط على next ثم اختر Dataset واضغط على next ثم اختر new constitution ثم اختر Browser ثم حدد مكان قاعدة بيانات اكسس وضغط open ثم اضغط ok ثم اضغط على next ثم اضغط على yes ثم ضع علامة صح على جميع حقول ثم اضغط على finish… سوف تظهر لك نافذة Report wizard وعلى جهة اليمين ضهرت جميع حقول قاعدة البيانات بعد ذلك اضغط على next ثم قم بسحب جميع حقول قاعدة البيانات الى جهه اليمين الى مربع Values عن طريق السحب والافلات بعد ذلك اضغط على next ثم اضغط next ثم اختر اي شكل لـ Report ثم اضغط على Finish…… . ثم اضغط كلك ايمن على شكل واختر lnsert ومن القائمة المنسدلة اختر page Header كذلك اضغط كلك ايمن على شكل ومن lnsert اختر page footer…… الى هنا انتهينا من اضافة تقرير ويمكنك اخي المبرمج اضافة وقت عند طباعة تقرير وكذلك يمكنك اضافه صورة للتقرير وايضا يمكنك ترقيم صفحات تقرير اذا كانت هناك بيانات كبيرة تريد طباعتها …… اضغط كلك ايمن ومن lnsert اختر lmage ومن نافذة اختر lmport ثم حدد مكان اي صورة وضغط على open ثم اضغط على ok ستلاحظ تم ادراج صورة ثم اضغط كلك ايمن على صورة وختر lmage properties ستضهر لك نافذة على جهه يسار اختر Size وعلم على fit to size ثم اضغط على ok الان قم بتكبير حجم صورة كما تشاء من خلال اسهم تحديد علئ صورة…… 🕓ولدراج الوقت والتاريخ اذهب الى نافذة ـReport data واذا لم تكن ظاهرة هذه نافذة اذهب الى View واختر Report data بعد ضهور نافذة لديك افتح ـ Built-in fields واختر اداة ـExecution Time وذلك بسحب الاداة وافلاتها على تقرير اذا اردت اضافه عنوان وسط تقرير اضغط كلك ايمن على مكان فارغ على تقرير واختر lnsert ومنها اختر Text Box ثم انقر نقرتين على نص واكتب ماتشاء