الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قائمة منسدلة

بدأه sudaswim في 21 يناير 2009 · 7 رد · 997 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

المشروع مصمم ب vb2008 قاعدة البيانات بالاكسس

توضيح

القائمة تظهر اسماء الموظفين فاذا قمت باضافة موظف جديد فى قاعدة البانات يظهر الاسم فى القائمة

#2

مرحباً أخي الكريم .

عليّك استخدام حلقة تكرارية تقوم بقراءة أسماء الموظفين من الـ 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.

#3

مشكوووووووووووووور اخوى كتير

بس لاحظت الكود menu strip

وانا سالت combo box

بس لو بالامكان مساعدتى رجاء

ولك شكرى

#4

القائمة المنسدلة بشكل عام لها عدة أشكال وبالنسبة للأكثر استخداماً فهي 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.

#5

شكرا لك اخى

لكن للاسف لم ينفذ معى بيعطى خطاء فى عبارة

For Each ro As DataRow In visitor.Rows

تحديد فى كلمة ro

#6

حسناً, كتابتي لذلك الـ 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.

#7

ايضاً بعد كل عملية إضافة (او حذف او تغيير اسم) الموظف، لازم تعيد تعبئة القائمة المنسدلة من جديد.

[وسط]لا اله الا انت سبحانك انى كنت من الظالمين

[/وسط]

#8

لا اريد ان اشكرك بس انت تستاهل اكتر من كدة

مواضيع مشابهة