كيف لاقوم بعمل قائمة منسدلة القيم الموجودة فيها عبارة عن محتويات حقل موجود على الداتا بيس
المشروع مصمم ب vb2008 قاعدة البيانات بالاكسس
توضيح
القائمة تظهر اسماء الموظفين فاذا قمت باضافة موظف جديد فى قاعدة البانات يظهر الاسم فى القائمة
كيف لاقوم بعمل قائمة منسدلة القيم الموجودة فيها عبارة عن محتويات حقل موجود على الداتا بيس
المشروع مصمم ب vb2008 قاعدة البيانات بالاكسس
توضيح
القائمة تظهر اسماء الموظفين فاذا قمت باضافة موظف جديد فى قاعدة البانات يظهر الاسم فى القائمة
مرحباً أخي الكريم .
عليّك استخدام حلقة تكرارية تقوم بقراءة أسماء الموظفين من الـ Acess DB, مثال :
نسخ المعلومات الى DataTable ومن ثم معالجة إضافة الى قائمة منسدلة .
Imports [color= #990000;]System[color= #339933;].Data[color= #339933;].SqlClient
Imports [color= #990000;]System[color= #339933;].Data[color= #339933;].OleDb
[color= #000000; font-weight: bold;]Public [color= #000000; font-weight: bold;]Class Form1
[color= #000000; font-weight: bold;]Private MenuStrip1 [color= #b1b100;]As [color= #000000; font-weight: bold;]New MenuStrip
[color= #000000; font-weight: bold;]Private Servant [color= #b1b100;]As [color= #000000; font-weight: bold;]New DataTable
[color= #000000; font-weight: bold;]Private Sub Form1_Load[color= #009900;](ByVal sender [color= #b1b100;]As [color= #990000;]System[color= #339933;].Object[color= #339933;], [color= #990000;]_
ByVal e [color= #b1b100;]As [color= #990000;]System[color= #339933;].EventArgs[color= #009900;]) Handles MyBase[color= #339933;].Load
Dim Conn [color= #b1b100;]As String [color= #339933;]= [color= #0000ff;]"Provider=Microsoft.Jet.OLEDB.4.0;" [color= #339933;]& [color= #990000;]_
[color= #0000ff;]"Data Source=AccessFileName.mdb;Persist Security Info=False"
Dim CMD [color= #b1b100;]As String [color= #339933;]= [color= #0000ff;]"Select Servant From Servants"
Dim ADB [color= #b1b100;]As [color= #000000; font-weight: bold;]New OleDbDataAdapter[color= #009900;](CMD[color= #339933;], Conn[color= #009900;])
ADB[color= #339933;].Fill[color= #009900;](Servant[color= #009900;])
Controls[color= #339933;].Add[color= #009900;](MenuStrip1[color= #009900;])
Dim MNUServants [color= #b1b100;]As [color= #000000; font-weight: bold;]New ToolStripMenuItem[color= #009900;]([color= #0000ff;]"Servants"[color= #009900;])
[color= #b1b100;]For [color= #990000;]Each Ro [color= #b1b100;]As DataRow In Servant[color= #339933;].Rows
Dim MNUServant [color= #b1b100;]As [color= #000000; font-weight: bold;]New ToolStripMenuItem[color= #009900;](Ro[color= #339933;].Item[color= #009900;]([color= #0000ff;]"Column Names's Name"[color= #009900;])[color= #339933;].ToString[color= #009900;])
AddHandler MNUServant[color= #339933;].Click[color= #339933;], AddressOf MNUServant_Click
MNUServants[color= #339933;].DropDownItems[color= #339933;].Add[color= #009900;](MNUServant[color= #009900;])
[color= #990000;]Next
MenuStrip1[color= #339933;].Items[color= #339933;].Add[color= #009900;](MNUServants[color= #009900;])
[color= #990000;]End Sub
[color= #000000; font-weight: bold;]Private Sub MNUServant_Click[color= #009900;](ByVal Sender [color= #b1b100;]As [color= #990000;]System[color= #339933;].Object[color= #339933;], [color= #990000;]_
ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].EventArgs[color= #009900;])
Dim MNUServant [color= #b1b100;]As ToolStripMenuItem [color= #339933;]= DirectCast[color= #009900;](Sender[color= #339933;], ToolStripMenuItem[color= #009900;])
[color= #0000ff;]' Your code here
[color= #0000ff;] ' Remove the following when you finish testing
MsgBox[color= #009900;](MNUServant[color= #339933;].Text[color= #009900;])
[color= #990000;]End Sub
[color= #990000;]End [color= #000000; font-weight: bold;]Classكل ماعليك فعله هو استبدال MenuStrip1 أو إذا كان لدي نفس الأسم فقط أحذف السطر ( Private MenuStrip1 As New MenuStrip ), في الحالتين عليك حذف هذا السطر .
بالنسبة للإتصال عليك استبدال ( AccessFileName ) بـ ( الوصلة الى قاعدة البيانات ), أما بالنسبة للأوامر فستبدل ( Servant ) و ( Servants ) بما يلائم الجدول المستهدف من قاعدة البيانات .
وبالنسبة للحدث Servant_Click, اكتب ماتريد عمله عند الضغط على إحدا عناصر القائمة المنسدلة .
بالتوفيق .
تم تعديل هذه المشاركة بواسطة Bashar Rabat في 22 يناير 2009 في 12:42
The important thing is not so much
that every child should be taught,
as that every child should be given the wish to learn.
مشكوووووووووووووور اخوى كتير
بس لاحظت الكود menu strip
وانا سالت combo box
بس لو بالامكان مساعدتى رجاء
ولك شكرى
القائمة المنسدلة بشكل عام لها عدة أشكال وبالنسبة للأكثر استخداماً فهي MenuStrip, لم توضح بشكل جيد أنك تريد التعامل مع الـ ComboBox
sudaswim كتب:القائمة تظهر اسماء الموظفين فاذا قمت باضافة موظف جديد فى قاعدة البيانات يظهر الاسم فى القائمة
Imports [color= #990000;]System[color= #339933;].Data[color= #339933;].OleDb
[color= #000000; font-weight: bold;]Public [color= #000000; font-weight: bold;]Class Form1
[color= #000000; font-weight: bold;]Private Servants [color= #b1b100;]As [color= #000000; font-weight: bold;]New DataTable
[color= #000000; font-weight: bold;]Private Sub Form1_Load[color= #009900;](ByVal sender [color= #b1b100;]As [color= #990000;]System[color= #339933;].Object[color= #339933;], [color= #990000;]_
ByVal e [color= #b1b100;]As [color= #990000;]System[color= #339933;].EventArgs[color= #009900;]) Handles MyBase[color= #339933;].Load
Dim Conn [color= #b1b100;]As String [color= #339933;]= [color= #0000ff;]"Provider=Microsoft.Jet.OLEDB.4.0;" [color= #339933;]& [color= #990000;]_
[color= #0000ff;]"Data Source=AccessFileName.mdb;Persist Security Info=False"
Dim CMD [color= #b1b100;]As String [color= #339933;]= [color= #0000ff;]"Select * From Servants"
Dim ADB [color= #b1b100;]As [color= #000000; font-weight: bold;]New OleDbDataAdapter[color= #009900;](CMD[color= #339933;], Conn[color= #009900;])
ADB[color= #339933;].Fill[color= #009900;](Servants[color= #009900;])
[color= #b1b100;]For [color= #990000;]Each Ro [color= #b1b100;]As DataRow In Servants[color= #339933;].Rows
ComboBox1[color= #339933;].Items[color= #339933;].Add[color= #009900;]( Ro[color= #339933;].Item[color= #009900;]([color= #0000ff;]"Column Names's Name"[color= #009900;])[color= #339933;].ToString [color= #009900;])
[color= #990000;]Next
[color= #990000;]End Sub
[color= #000000; font-weight: bold;]Private Sub ComboBox1_SelectedIndexChanged[color= #009900;](ByVal Sender [color= #b1b100;]As [color= #990000;]System[color= #339933;].Object[color= #339933;], [color= #990000;]_
ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].EventArgs[color= #009900;]) Handles ComboBox1[color= #339933;].SelectedIndexChanged
MsgBox[color= #009900;](Servants[color= #339933;].Rows[color= #009900;]( ComboBox1[color= #339933;].SelectedIndex [color= #009900;])[color= #339933;].Item[color= #009900;]( [color= #0000ff;]"Age" [color= #009900;])[color= #009900;]) [color= #0000ff;]' To show how old is the
selected servant
[color= #0000ff;] End Sub
[color= #0000ff;]
[color= #0000ff;]End Class
[color= #0000ff;]
[color= #0000ff;]
[color= #0000ff;]أضف Code لإضافة إسم العامل الجديد تحت Code "Insert.........." أي
ComboBox1.Items.Add( Source.Text )
بالتوفيق .
تم تعديل هذه المشاركة بواسطة Bashar Rabat في 24 يناير 2009 في 21:36
The important thing is not so much
that every child should be taught,
as that every child should be given the wish to learn.
شكرا لك اخى
لكن للاسف لم ينفذ معى بيعطى خطاء فى عبارة
For Each ro As DataRow In visitor.Rows
تحديد فى كلمة ro
حسناً, كتابتي لذلك الـ Code هو إيصال الفكرة ( فكرة قراءة بيانات داخل اي Class ) .
الطريقة المثالية هي :
Imports [color= #990000;]System[color= #339933;].Data[color= #339933;].OleDb
[color= #000000; font-weight: bold;]Public [color= #000000; font-weight: bold;]Class Form1
[color= #000000; font-weight: bold;]Private Servants [color= #b1b100;]As [color= #000000; font-weight: bold;]New DataTable
[color= #000000; font-weight: bold;]Private Sub Form1_Load[color= #009900;](ByVal sender [color= #b1b100;]As [color= #990000;]System[color= #339933;].Object[color= #339933;], [color= #990000;]_
ByVal e [color= #b1b100;]As [color= #990000;]System[color= #339933;].EventArgs[color= #009900;]) Handles MyBase[color= #339933;].Load
Dim Conn [color= #b1b100;]As String [color= #339933;]= [color= #0000ff;]"Provider=Microsoft.Jet.OLEDB.4.0;" [color= #339933;]& [color= #990000;]_
[color= #0000ff;]"Data Source=I:Info.mdb;Persist Security Info=False"
Dim CMD [color= #b1b100;]As String [color= #339933;]= [color= #0000ff;]"Select * From Servants"
Dim ADB [color= #b1b100;]As [color= #000000; font-weight: bold;]New OleDbDataAdapter[color= #009900;](CMD[color= #339933;], Conn[color= #009900;])
ADB[color= #339933;].Fill[color= #009900;](Servants[color= #009900;])
ComboBox1[color= #339933;].DataSource [color= #339933;]= Servants
ComboBox1[color= #339933;].ValueMember [color= #339933;]= [color= #0000ff;]"Column Names's Name"
ComboBox1[color= #339933;].DisplayMember [color= #339933;]= ComboBox1[color= #339933;].ValueMember
[color= #990000;]End Sub
[color= #000000; font-weight: bold;]Private Sub ComboBox1_SelectedIndexChanged[color= #009900;](ByVal Sender [color= #b1b100;]As [color= #990000;]System[color= #339933;].Object[color= #339933;], [color= #990000;]_
ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].EventArgs[color= #009900;]) Handles ComboBox1[color= #339933;].SelectedIndexChanged
MsgBox[color= #009900;](Servants[color= #339933;].Rows[color= #009900;](ComboBox1[color= #339933;].SelectedIndex[color= #009900;])[color= #339933;].Item[color= #009900;]([color= #0000ff;]"Age"[color= #009900;])[color= #009900;]) [color= #0000ff;]' To show how old is the sel
ected servant
[color= #0000ff;] End Sub
[color= #0000ff;]End Classأمل أنك فهمت الفكرة .
بالتوفيق :P, اعذرني على تأخيرك :( .
The important thing is not so much
that every child should be taught,
as that every child should be given the wish to learn.
ايضاً بعد كل عملية إضافة (او حذف او تغيير اسم) الموظف، لازم تعيد تعبئة القائمة المنسدلة من جديد.
[وسط]لا اله الا انت سبحانك انى كنت من الظالمين
[/وسط]
لا اريد ان اشكرك بس انت تستاهل اكتر من كدة