نكمل مشروعنا ان شاء الله الى هنا نكون قد انتهينا من برمجة فورم العملاء customers ، فورم الموردين lmporter فورم الشركة company فورم المستخدمين users .
اليوم سنبرمج فورم خاص بجدول Company اي الشركة وهذا الفورم تابع لفورم الاصناف ltems الذي لم نبرمجه بعد وفائده هذا الفورم الخاص بالشركة يفيدنا عندما نريد معرفة الشركة التي انتجت او التي اشترينا منها الصنف التابع للشركه وسترون كيف نربط هذا الفورم بفورم الاصناف ltems ,
نبدا على بركة الله نقوم بادراج فورم forms ونسميه ltemcompanies ثم كالعادة نقوم بفتح قاعدة بيانات مشروعنا من DateSources ونختار جدول Company ونضغط على سهم بجوار جدول ونختار خيار Details ثم نضغط على اسم جدول ونسحبه باكملة على الفورم ايضا كالعادة نقوم بتغير اسماء الحقول برمجياً ، ثم نقوم بادراج button عدد 4 ونغير اسماء كل واحد منهم للاضافة والحذف والحفظ والتعديل , وندرج ايضا اداة datagridview .
ملاحظه
في هذا الفورم لا نحتاج إلى زر البحث اما انتم اذا تردون تضيفون زر البحث لا اشكال في ذلك وايضا كود بحث شرحنا مراراً وتكراراً يمكنكم اخذه وتضعونه في هذا فورم ,و في حقل الوقت والتاريخ اي تكستات خاصه بهم نقوم بالاتي نحدد تكس بوكس تاريخ Companydate ومن خصائص نختار CustomFormat ونكتب الاتي Yayyy/MM/dd حرفين MM نكتبهم كابتل لتر اي حرف كبير . ومن نفس خصائص تبع تاريخ نختار خيار Format ونختار خاصية Custom , ايضا نحدد تكس بوكس Companytime ومن خصائص نختار CustomFormat ونكتب الاتي yyyy/MM/dd ss:MM:tt اكتبه كما كتبته انا👆👆👆 ومن نفس خصائص نختار Format ونختار خاصية Custom… . وسترون فائده 👆👆👆 هذه الخصائص عند تطبيق…
• كما في الصورة التالية يصبح الفورم بالشكل النهائي .
نقوم الآن بالاتصال بجدول Company كالعادة نذهب إلى مديول module الخاص بنا ونقوم بانشاء متغيرات للداتا تيبل وداتا ادبتر و ld ولود load تحميل بيانات جدول وكود ترقيم تلقائي لجلب اعلى رقم في جدول Company .
ثم نقوم اولا بانشاء متغيرات للداتا تيبل وداتا ادبتر و ld كما ياتي :
Public companiesdt As New DataTable Public companiesda As New OleDbDataAdapter Public mynewldcompanies As Integer
ثانيا نقوم بانشاء متغير لود load لتحميل بيانات جدول وكما ياتي :
Public Sub load_companies() companiesdt.Clear() companiesda = New OleDbDataAdapter("select * from company", con) companiesda.Fill(companiesdt) End Sub
ثالثا نقوم بانشاء متغير كود Code لجلب اعلى رقم في جدول كما يلي :-
Public Sub code_companies() Dim dt As New DataTable Dim da As New OleDbDataAdapter("select max(companyld) from company", con) da.Fill(dt) If IsDBNull(dt(0)(0)) = True Then mynewldcompanies = 1 Else mynewldcompanies = dt(0)(0) + 1 End If End Sub
• كما في الصورة التالية تصبح الاكواد الثلاثه .
بعد ذلك نقوم بالذهاب لفورم Company ونضغط ضغطتين على فورم وفي حدث لود load الخاص بالفورم نكتب الكود التالي لتحميل بيانات جدول :
DataGridView1.DataSource = companiesdt load_companies()
• كما في الصورة التالية نقوم بتنفيذ البرنامج وسنرى ظهور جميع حقول الجدول .
نقوم بعد ذلك ببرمجة ازرار الحذف والحفظ والتعديل والأضافة .
1⃣ برمجة زر الاضافة
ننقر نقرتين على الفورم وتحت
public class ltemcompany
نقوم بانشاء اجراء خاص بالاضافة ونسميه newCompanies ونكتب الكود كالتالي :
Public Sub newcompanies() code_companies() Companydate.Text = Now.Date Companyld.Text = mynewldcompanies Companyname.Text = "" Companytime.Text = Now Companyuser.Text = "" End Sub
و في حدث لود load الفورم نستدعي الاجراء newcompanies .
وايضا ننقر نقرتين على زر الاضافة ونستدعي الاجراء newcompanies
• كما في الصورة التالية .
2⃣ برمجة زر الحفظ
ننقر نقرتين على زر الحفظ ونكتب الكود التالي : '=============كود الحفظ
companiesdt.Rows.Add() Dim last As Integer = companiesdt.Rows.Count - 1 companiesdt.Rows(last).Item ("Companydate") = Companydate.Value companiesdt.Rows(last).Item ("Companyld") = Companyld.Text companiesdt.Rows(last).Item ("Companyname") = Companyname.Text companiesdt.Rows(last).Item ("Companytime") = Companytime.Value companiesdt.Rows(last).Item ("Companyuser") = Companyuser.Text Dim save As New OleDbCommandBuilder (companiesda) companiesda.Update (companiesdt) companiesdt.AcceptChanges() load_companies() MsgBox("تم حفظ البيانات") newcompanies() End Sub
تم شرح الكود مراراً وتكراراً ولاحظ كود الحفظ كما في الصورة .
3⃣ برمجة كود وضع بيانات على تكس بوكس
أولا نحدد اداة datagridview و من الاحداث نختار selectionchanged وننقر نقرتين على الحدث ونكتب الكود التالي :
Try Dim pos As Integer = BindingContext(companiesdt).Position Companyld.Text = companiesdt.Rows(pos).Item ("companyld") Companyname.Text = companiesdt.Rows(pos).Item ("companyname") Companydate.Text = companiesdt.Rows(pos).Item ("companydate") Companytime.Text = companiesdt.Rows(pos).Item ("companytime") Companyuser.Text = companiesdt.Rows(pos).Item ("companyuser") Catch ex As Exception End Try End Sub
• كما في الصورة التالية تم شرح الكود عدة مرات لاحظ كود وضع بيانات على تكس بوكس .
4⃣ برمجة زر التعديل
ننقر نقرتين على زر التعديل ونكتب الكود التالي : ======كود التعديل
Dim pos As Integer = BindingContext(companiesdt).Position companiesdt.Rows(pos).Item ("companyld") = Companyld.Text companiesdt.Rows(pos).Item ("companyname") = Companyname.Text companiesdt.Rows(pos).Item ("companydate") = Companydate.Text companiesdt.Rows(pos).Item ("companytime") = Companytime.Text companiesdt.Rows(pos).Item ("companyuser") = Companyuser.Text Dim save As New OleDbCommandBuilder (companiesda) companiesda.Update (companiesdt) companiesdt.AcceptChanges() MsgBox("تم حفظ التعديل") load_companies() End Sub
• كما في الصورة التالية تم شرح الكود ايضا عده مرات لاحظ كود التعديل .
5⃣ برمجة زر الحذف
ننقر نقرتين على زر الحذف ونكتب الكود التالي : =========كود الحذف
If MsgBox("هل تريد حذف الشركة", MsgBoxStyle.OkCancel, "تاكيد الحذف") = MsgBoxResult.Ok Then Dim pos As Integer = BindingContext(companiesdt).Position companiesdt.Rows(pos).Delete( ) Dim save As New OleDbCommandBuilder (companiesda) companiesda.Update (companiesdt) companiesdt.AcceptChanges() MsgBox("تم الحذف") load_companies() Else End If End Sub
• كما في الصورة التالية تم شرح الكود ايضا عده مرات لاحظ كود الحذف .
صورة لتجربة الفورم وادخلنا بيانات افتراضية وحفظنا وكله تمام .