تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] سؤال حول ربط combobox
#1
Heart 
السلام عليكم
سؤال حول كيفية ربط combo عدد 2 ببعضهم
حيث combo 2 تأخذ قيمتها من combo 1

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

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


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


مرفق مثال عن المشروع


الملفات المرفقة
.rar   Test_Relation.rar (الحجم : 192.59 ك ب / التحميلات : 13)
الرد
تم الشكر بواسطة:
#2
السلام عليكم
تفضل اخي الكريم
كود :
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
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: سعود , Moneam
#3
أخي بارك الله بجهودك الرائعة وحياك الله
لكن سؤالي حول ملء ال combo 2 من combo 1 عبر ربط علاقة وليس عبر الكود

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

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

هذا هو مقصدي
الرد
تم الشكر بواسطة: ابراهيم ايبو , سعود
#4
السلام عليكم اخي الكريم
لم اجرب ماتريد سابقا ربما يجيبك احد الزملاء 
دمت بخير
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: سعود
#5
بارك الله بك أخي وبجهودك
شكرا لك على الإهتمام
الرد
تم الشكر بواسطة: سعود , ابراهيم ايبو



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم