بعد ما انتهينا من انشاء قاعدة بيانات اكسس والجداول التي فيها وصلنا الى المرحلة الثانيه وهي
المرحلة الثانية :
ربط قاعدة بيانات اكسس والجداول التي فيها بالفيجوال بيسك
نقوم بانشاء مشروعنا بالفيجوال
نفتح الفيجوال ونقوم بانشاء مشروع جديد باسم Mr_vbs او اي اسم تختاره انت اخي المبرمج ……
ملاحظه
نقوم بنقل قاعدة بيانات اكسس الى مسار مشروعنا داخل ملف bin /Debug .
ملاحظه
ربط قاعدة البيانات والجداول التي فيها بالفيجوال سوف يكون بالاتصال المباشر اي عن طريق المعالج وعرفنا في دروس سابقة كيف ربطنا قواعد البيانات عن طريق المعالج .
طيب بعد ما عرفنا نوع الاتصالن نقومبانشاء اول فورم خاص بالعملاء ونسمي الفورم باسم customers
ثم نقوم بجعل خط فورم حجم 12
بعد ذلك نقوم بالاتصال بقاعدة البيانات عن طريق المعالج .
في دروس سابقة تعلمنا كيف نقوم بالاتصال المباشر بين قاعدة البيانات والفجيوال ولا اتطرق لهذا شرح لانه انا قمت بشرحه اكثر من مره في قناه وضحته بالصور وانت عليك اخي المبرمج ان تراجع دروس في قناه
بعد ما قمنا بالاتصال المباشر مع قاعدة البيانات نقوم بفتح نافذة
Date Sources
🌆كما في الصورة
سوف نلاحظ ظهور جميع جداول قاعدة البيانات بعد ذلك نقوم بالضغط ضغطه واحده كلك ايمن على سهم بجنب اسم جدول Customers .
ونختار Details لاضهار تفاصيل الجدول
كما في الصورة
ثم نضغط ضغطتين كلك ايمن على اسم جدول ونفتحه وتظهر لنا جميع حقول متعلقه بجدول Customers .
بعد ذلك نعمل التالي :
نقوم بضغط ضغطه واحده كلك ايمن
على سهم بجنب حقل Customergender
ونختار ComboBox باعتبار هذا حقل سوف يكون خاص للجنس اي ذكر وانثى
ولازم نعمل له ComboBox .
كما في الصورة
وايضا نفس الكلام نعمل لحقل Customertype كومبو بوكس .
بعد ذلك نقوم بسحب جميع حقول خاصه بجدول customers على الفورم وذلك من خلال الضغط والسحب على اسم جدول وسحبه الى الفورم وافلاته سنلاحظ تم ادراج حقول على الفورم .
بعد ذلك نقوم بترتيب التكس بوكس على الفورم اي الحقول وانت اخي المبرمج رتب الحقول بما يحلو لك
ملاحظه مهمه جداً :
نقوم بتغير اسماء تكس بوكس برمجياً حتى نتعامل معها بالاكواد بدون اي مشاكل ، عندما سحبنا تكس بوكس الخاصه بالحقول , البرنامج اعطى اسماء ل لهن مثلا اسم حقل customergender
الموجود ضمن جدول Customers اعطاء اسم CustomergenderTextbox
اي اضافه كلمة Textbox على الاسم ونحن بدورنا نقوم بمسح هذه الاضافة من الاسم ليصبح الاسم Customergender كما هو في جدول ضمن قاعدة البيانات وهكذا في جميع حقول باقية نقوم بمسح الاضافة وهي Textbox ليصبح اسم التكس بوكس هو نفسه في جدول اي تكس بوكس يقابل اسم حقل في جدول كما هو .
ثم نقوم بادراج Button عدد 5
ونسمي كل واحد منهم للاضافة والحذف والحفظ والتعديل والبحث .
ونقوم ايضا بادراج تكس بوكس واحد خاص بالبحث عن البيانات
وندرج ايضا اداة DataGridView لتحميل البيانات عليها .
ونضيف اداة كروب بوكس لنضعه على حقول تكس بوكس ونكتب اسمه بيانات العميل
نفذ البرنامج ليصبح الفورم بالشكل النهائي كما في الصورة التالية .
Public con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=mrkdt.accdb")
Public customersdt As New DataTable
Public customersda As New OleDbDataAdapter
Public mynewldcustomers As Integer
Public Sub load_customers() customersdt.Clear() customersda = New OleDbDataAdapter("select * from customers", con) customersda.Fill(customersdt) End Sub
Public Sub code_customers() Dim dt As New DataTable Dim da As New OleDbDataAdapter("select max(customerld) from customers", con) da.Fill(dt) If IsDBNull(dt(0)(0)) = True Then mynewldcustomers = 1 Else mynewldcustomers = dt(0)(0) + 1 End If End Sub
load_customers()
DataGridView1.DataSource
Public Sub newcustomer() code_customers() Customeraddress.Text = "" Customerbalance.Text = 0 Customerdate.Value = Now.Date Customergender.Text = "" Customerld.Text = mynewldcustomers Customername.Text = "" Customerphone.Text = "" Customertime.Value = Now Customertype.Text = "" Customeruser.Text = " " End Sub
customersdt.Rows.Add() Dim last As Integer = customersdt.Rows.Count - 1 customersdt.Rows(last).Item ("Customeraddress") = Customeraddress.Text customersdt.Rows(last).Item ("Customerbalance") = Customerbalance.Text customersdt.Rows(last).Item ("Customerdate") = Customerdate.Value customersdt.Rows(last).Item ("Customergender") = Customergender.Text customersdt.Rows(last).Item ("Customerld") = Customerld.Text customersdt.Rows(last).Item ("Customername") = Customername.Text customersdt.Rows(last).Item ("Customerphone") = Customerphone.Text customersdt.Rows(last).Item ("Customertime") = Customertime.Value customersdt.Rows(last).Item ("Customertype") = Customertype.Text customersdt.Rows(last).Item ("Customeruser") = Customeruser.Text Dim save As New OleDbCommandBuilder(customersda) customersda.Update (customersdt) customersdt.AcceptChanges() MsgBox("تم حفظ البيانات بنجاح") load_customers() newcustomer() End Sub
Try Dim pos As Integer = BindingContext(customersdt) .Position Customeraddress.Text = customersdt.Rows(pos).Item ("Customeraddress") Customerbalance.Text = customersdt.Rows(pos).Item ("Customerbalance") Customerdate.Value = customersdt.Rows(pos).Item ("Customerdate") Customergender.Text = customersdt.Rows(pos).Item ("Customergender") Customerld.Text = customersdt.Rows(pos).Item ("Customerld") Customername.Text = customersdt.Rows(pos).Item ("Customername") Customerphone.Text = customersdt.Rows(pos).Item ("Customerphone") Customertime.Value = customersdt.Rows(pos).Item ("Customertime") Customertype.Text = customersdt.Rows(pos).Item ("Customertype") Customeruser.Text = customersdt.Rows(pos).Item ("Customeruser") Catch ex As Exception End Try End Sub
Dim pos As Integer = BindingContext(customersdt) .Position customersdt.Rows(pos).Item ("Customeraddress") = Customeraddress.Text customersdt.Rows(pos).Item ("Customerbalance") = Customerbalance.Text customersdt.Rows(pos).Item ("Customerdate") = Customerdate.Value customersdt.Rows(pos).Item ("Customergender") = Customergender.Text customersdt.Rows(pos).Item ("Customerld") = Customerld.Text customersdt.Rows(pos).Item ("Customername") = Customername.Text customersdt.Rows(pos).Item ("Customerphone") = Customerphone.Text customersdt.Rows(pos).Item ("Customertime") = Customertime.Value customersdt.Rows(pos).Item ("Customertype") = Customertype.Text customersdt.Rows(pos).Item ("Customeruser") = Customeruser.Text Dim save As New OleDbCommandBuilder (customersda) customersda.Update (customersdt) customersdt.AcceptChanges() MsgBox("تم تعديل البيانات بنجاح") load_customers() End Sub
If MsgBox("هل تريد حذف العميل", MsgBoxStyle.OkCancel, "تاكيد الحذف") = MsgBoxResult.Ok Then Dim pos As Integer = BindingContext(customersdt) .Position customersdt.Rows(pos).Delete() Dim save As New OleDbCommandBuilder (customersda) customersda.Update (customersdt) customersdt.AcceptChanges() MsgBox("تم الحذف") load_customers() Else End If End sub
customersdt.Clear() customersda = New OleDbDataAdapter("select * from customers where customername like '%" & TextBox1.Text & "%'", con) customersda.Fill(customersdt)