تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
جلب القسم بناء على قيمة
#1
أريد
كود :
التعديل على كود جلب الأقسام الدراسية في الكومبوكس
Classroom في الفورم FormSemester1
بناء على اختيار الصف من  ListBox الموجود في الفورم الرئيسي

هذا كود تعبئة الليست بوكس  بأسماء الصفوف الدراسية’
   Private Sub fillNameClas(listBox As ListBox)
       ' إفراغ الكومبوكس من البيانات
       ListBoxClas.Items.Clear()

       Dim Sql_Str As String = "SELECT NameClas From TBL_Clas ORDER BY IDClas asc"
       Dim InfoAdapter As OleDbDataAdapter = New OleDbDataAdapter(Sql_Str, Con)
       Dim InfoTable As DataSet = New DataSet
       InfoTable.Clear()
       InfoAdapter.Fill(InfoTable, "TBL_Clas")
       For Each rw As DataRow In InfoTable.Tables("TBL_Clas").Rows
           ListBoxClas.Items.Add(rw(0).ToString())
       Next

   End Sub

وهذا كود لتعبئة الأقسام الدراسية التابعة للصفوف الدراسية
   Private Sub fillcmb_TBL_Classroom()
       Combroom.Items.Clear()
       Dim Sql_Str As String = "SELECT DISTINCT Classroom From TBL_SClassroom Where ClassName = '" & listClas.Text & "'"
       Dim InfoAdapter As OleDbDataAdapter = New OleDbDataAdapter(Sql_Str, Con)
       Dim InfoTable As DataSet = New DataSet
       InfoTable.Clear()
       InfoAdapter.Fill(InfoTable, "TBL_SClassroom")
       For Each rw As DataRow In InfoTable.Tables("TBL_SClassroom").Rows
           Combroom.Items.Add(rw(0).ToString())
       Next
   End Sub
---------------------------------------------------------------------------------------
كود تعبئة الصفوف موجود في الفوره الرئيسي FormMin
وكود تعبئة الأقسم الدراسية موجود في الفورم FormSemester1  - FormSemester2

المطلوب: هل يمكن تعبئة كومبوكس الأقسام الدراسية الموجود في الفورمين FormSemester1  - FormSemester2
عوذلك عند اختيار الصف الدراسي من الليست بوكس الموجود في الفورم الرئيسي  FormMin

جربت هذه الأكواد ولم انجح

إضافة حدث SelectedIndexChanged إلى الليست بوكس في الفورم الرئيسي FormMin، ثم استدعاء دالة تعبئة الأقسام الدراسية في الفورمين FormSemester1 و FormSemester2.

في FormMin:
```
Private Sub ListBoxClas_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBoxClas.SelectedIndexChanged
   If FormSemester1.Visible Then
       FormSemester1.fillcmb_TBL_Classroom()
   ElseIf FormSemester2.Visible Then
       FormSemester2.fillcmb_TBL_Classroom()
   End If
End Sub
```

ثم إضافة حدث SelectedIndexChanged إلى الليست بوكس في الفورم الرئيسي FormMin، ثم استدعاء دالة تعبئة الأقسام الدراسية في الفورمين FormSemester1 و FormSemester2 عن طريق إنشاء واجهة أو فئة مشتركة بين الفورمين.

وهذا كود في الفورمين الموجود فيهما كومبوكس Classroom
Public Sub fillcmb_TBL_Classroom()
   Combroom.Items.Clear()
   Dim Sql_Str As String = "SELECT DISTINCT Classroom From TBL_SClassroom Where ClassName = '" & FormMin.ListBoxClas.Text & "'"
   Dim InfoAdapter As OleDbDataAdapter = New OleDbDataAdapter(Sql_Str, Con)
   Dim InfoTable As DataSet = New DataSet
   InfoTable.Clear()
   InfoAdapter.Fill(InfoTable, "TBL_SClassroom")
   For Each rw As DataRow In InfoTable.Tables("TBL_SClassroom").Rows
       Combroom.Items.Add(rw(0).ToString())
   Next
End Sub
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#2
بارك الله فيكم تم حلَّ المشلكة بهذا الكود

في الفورم الرئيسي
كود :
Dim frm As New FormSemester1 : frm.MdiParent = Me : frm.Show() : frm.fillcmb_TBL_Classroom()

وفي الفورم تم إنشاء صب
كود :
Public Sub fillcmb_TBL_Classroom()
        If FormMin.ListBoxClas.SelectedItem IsNot Nothing Then
            Me.Combroom.Items.Clear()
            Dim Sql_Str As String = "SELECT DISTINCT Classroom From TBL_SClassroom Where ClassName = '" & FormMin.ListBoxClas.Text() & "'"
            Dim InfoAdapter As OleDbDataAdapter = New OleDbDataAdapter(Sql_Str, Con)
            Dim InfoTable As DataSet = New DataSet
            InfoTable.Clear()
            InfoAdapter.Fill(InfoTable, "TBL_SClassroom")
            For Each rw As DataRow In InfoTable.Tables("TBL_SClassroom").Rows
                Me.Combroom.Items.Add(rw(0).ToString())
            Next
        Else
            MessageBox.Show(" عفواً ، يجب اختيـار فصـل دراســي", "تنبيــه", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
        End If
    End Sub
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: princelovelorn , princelovelorn , princelovelorn
#3
السلام عليكم ورحمة الله وبركاته
جرب الأكواد التالية أخي
في FormSemester1 و FormSemester2 اضف الدالة التالية

كود :
Public Sub UpdateClassroomCombo(selectedClassName As String)
   Combroom.Items.Clear()

   Dim Sql_Str As String = "SELECT DISTINCT Classroom FROM TBL_SClassroom WHERE ClassName = @ClassName"
   Using cmd As New OleDbCommand(Sql_Str, Con)
       cmd.Parameters.AddWithValue("@ClassName", selectedClassName)
       Using adapter As New OleDbDataAdapter(cmd)
           Dim dt As New DataTable()
           adapter.Fill(dt)
           For Each row As DataRow In dt.Rows
               Combroom.Items.Add(row("Classroom").ToString())
           Next
       End Using
   End Using
End Sub

وفي FormMin اضف الدالة التالية

كود :
rivate Sub ListBoxClas_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBoxClas.SelectedIndexChanged
   Dim selectedClass As String = ListBoxClas.SelectedItem?.ToString()
   If String.IsNullOrEmpty(selectedClass) Then Return

   Dim f1 = Application.OpenForms().OfType(Of FormSemester1)().FirstOrDefault()
   If f1 IsNot Nothing Then
       f1.UpdateClassroomCombo(selectedClass)
   End If

   Dim f2 = Application.OpenForms().OfType(Of FormSemester2)().FirstOrDefault()
   If f2 IsNot Nothing Then
       f2.UpdateClassroomCombo(selectedClass)
   End If
End Sub

(22-04-25, 08:33 PM)مصمم هاوي كتب : بارك الله فيكم تم حلَّ المشلكة بهذا الكود

في الفورم الرئيسي
كود :
Dim frm As New FormSemester1 : frm.MdiParent = Me : frm.Show() : frm.fillcmb_TBL_Classroom()

وفي الفورم تم إنشاء صب
كود :
Public Sub fillcmb_TBL_Classroom()
        If FormMin.ListBoxClas.SelectedItem IsNot Nothing Then
            Me.Combroom.Items.Clear()
            Dim Sql_Str As String = "SELECT DISTINCT Classroom From TBL_SClassroom Where ClassName = '" & FormMin.ListBoxClas.Text() & "'"
            Dim InfoAdapter As OleDbDataAdapter = New OleDbDataAdapter(Sql_Str, Con)
            Dim InfoTable As DataSet = New DataSet
            InfoTable.Clear()
            InfoAdapter.Fill(InfoTable, "TBL_SClassroom")
            For Each rw As DataRow In InfoTable.Tables("TBL_SClassroom").Rows
                Me.Combroom.Items.Add(rw(0).ToString())
            Next
        Else
            MessageBox.Show(" عفواً ، يجب اختيـار فصـل دراســي", "تنبيــه", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
        End If
    End Sub

الحمد لله أنك توصلت لحل المشكلة
وجزاك الله خيرا على مشاركتك للحل
لا إله إلا الله وحده لا شريك له له الملك وله الحمد وهو على كل شئ قدير
سبحان الله وبحمده سبحان الله العظيم
سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولا حول ولا قوة إلا بالله العلى العظيم
رب أغفر لي 

الرد }}}
تم الشكر بواسطة: مصمم هاوي


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف نضبط قيمة progressbar في حال العد العكسي justforit 2 150 01-11-25, 09:43 AM
آخر رد: justforit
  كيفية احتساب الفرق بين تاريخين بناء على عدد معين مصمم هاوي 2 537 15-01-25, 02:02 PM
آخر رد: مصمم هاوي
  ايجاد قيمة المجموع العام العيدروس 7 622 06-12-24, 09:28 PM
آخر رد: العيدروس
  ابغي ارجع قيمة الداتا قراد فيو من جديد عندي مشكله khalidalwdi 3 619 05-12-24, 02:21 AM
آخر رد: aljzazy
  حذف قيمة من الريجيستري العيدروس 0 256 29-10-24, 02:15 PM
آخر رد: العيدروس
  حساب قيمة حسب زمن التأخر العيدروس 2 517 23-06-24, 07:28 PM
آخر رد: العيدروس
  [VB.NET] استدعاء بيانات في TextBox بناء على combobox loay775 2 688 18-01-24, 05:07 PM
آخر رد: loay775
  [سؤال] كيف نستعيد قيمة من دالة ضمن مسار مستقل justforit 2 670 21-11-23, 10:51 AM
آخر رد: justforit
  كيف اجعل قيمة dateTimePicker2 تساوي dateTimePicker1 Adel27213 2 616 09-11-23, 09:07 PM
آخر رد: Adel27213
  كيفية جمع قيمة على تاريخ معين واستنتاج تاريخ أخر Ahmed.vb 1 611 02-11-23, 03:52 AM
آخر رد: Taha Okla

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


يقوم بقرائة الموضوع: