منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : سؤال حول ربط combobox
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
سؤال حول كيفية ربط combo عدد 2 ببعضهم
حيث combo 2 تأخذ قيمتها من combo 1

لدي في combo 1 إسم البلدان وكل بلد لديه عدة مدن
أريد أن تظهر في combo 2 المدن المرتبطة بالبلد فقط الذي أختاره في combo 1

قمت بربط combo 1 مباشرة من جدول الأكسس عبر DataSet1
أنا حللت الأمر عبر الكود لملء combo 2 ولكن لاحظت بأن هناك بطء في إستدعاء البيانات وخاصة عندما تصبح البيانات كثيرة


السؤال هل من الممكن ربط combo 2  من جدول الأكسس عبر DataSet1 ويعمل نفس عمل الكود ؟
 وبذلك أستغني عن الكود
 الرجاء التفضل بكامل الإحترام


مرفق مثال عن المشروع
السلام عليكم
تفضل اخي الكريم
كود :
Imports System.Data.OleDb
Public Class Form1
   Public con As New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;" & "data source=MyData.accdb")

   ' صب لملء اي كومبو
   Private Sub fillCombo(strsql As String, Cmb As ComboBox)
       Try
           Dim dtf As New DataTable
           Dim da As New OleDbDataAdapter(strsql, con)
           dtf.Clear()
           da.Fill(dtf)
           Cmb.DataSource = dtf
       Catch ex As Exception

       End Try
   End Sub
   Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

       fillCombo("SELECT * FROM Data_Country WHERE ID_Country = " & ComboBox1.SelectedValue, ComboBox2)
       ComboBox2.DisplayMember = "City"
       ComboBox2.SelectedIndex = -1
   


   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       fillCombo("SELECT * FROM Country", ComboBox1)
       ComboBox1.DisplayMember = "Country"
       ComboBox1.ValueMember = "ID_Country"
       ComboBox1.SelectedIndex = -1
     

 End Sub
End Class
أخي بارك الله بجهودك الرائعة وحياك الله
لكن سؤالي حول ملء ال combo 2 من combo 1 عبر ربط علاقة وليس عبر الكود

في مثالي المرفق قمت بربط combo 1 مباشرة من الاكسس عبر DataSet

لكن أريد ربط combo 2 عبر ال DataSet مثل ال combo 2 ولكن يأخذ فقط المدن المرتبطة بالبلد الذي أختاره في combo 1 وبذلك أستغني عن الكود حيث تبين لي بأن الكود يأخذ بعض الوقت لتنفيذ الملطوب كلما كثرت البيانات المستدعاة

هذا هو مقصدي
السلام عليكم اخي الكريم
لم اجرب ماتريد سابقا ربما يجيبك احد الزملاء 
دمت بخير
بارك الله بك أخي وبجهودك
شكرا لك على الإهتمام
(21-03-20, 04:48 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم
تفضل اخي الكريم
كود :
Imports System.Data.OleDb
Public Class Form1
   Public con As New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;" & "data source=MyData.accdb")

   ' صب لملء اي كومبو
   Private Sub fillCombo(strsql As String, Cmb As ComboBox)
       Try
           Dim dtf As New DataTable
           Dim da As New OleDbDataAdapter(strsql, con)
           dtf.Clear()
           da.Fill(dtf)
           Cmb.DataSource = dtf
       Catch ex As Exception

       End Try
   End Sub
   Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

       fillCombo("SELECT * FROM Data_Country WHERE ID_Country = " & ComboBox1.SelectedValue, ComboBox2)
       ComboBox2.DisplayMember = "City"
       ComboBox2.SelectedIndex = -1
   


   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       fillCombo("SELECT * FROM Country", ComboBox1)
       ComboBox1.DisplayMember = "Country"
       ComboBox1.ValueMember = "ID_Country"
       ComboBox1.SelectedIndex = -1
     

 End Sub
End Class
انت رائع للغاية استاذ ابراهيم .

اخي العزيز Alwilaya
طلبك ممكن ولكن ليس عن طريق الاكواد وانما عن طريق خصائص الكمبوابكس بتلاقي خيار اسمه Data فيه خيارين Application Settings والاخر Data Binding