تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعديل على استدعاء الدرجات حسب الاختيار
#12
(15-04-25, 05:25 PM)مصمم هاوي كتب :
(15-04-25, 05:25 AM)princelovelorn كتب : السلام عليكم ورحمة الله وبركاته

بعد الكثير من المحاولات توصلت لحل بفضل الله تعالى
تفضل المثال في المرفقات

مجهــودٌ كبيــرٌ، وعملٌ جبـارٌ، وتعديلٌ مسددٌ، ومثالٌ موفقٌ
لا يسعُنـي إلا أن أقولَ لك أخــي الكريم الذي أزاحَ عن كاهلـي حملاً ثقيلاً وأراحنـي من السهر الطويل والمحاولات المكررة والتي باءت بالفشل كلها

فباركـــــــــ اللهُ فيكــــ (princelovelorn)
وجزاكـــــــ كل خيراً
وفتح عليكــــــــ  من خيري الدنيا والآخــرة
وزادكــــــــ اللهُ بسطةً في العلم
وفرج همَّك ، ونفَّس كربكَ

بقـى تعديل صغير في كود حفظ الدرجـات يعمل تمام غير أنه لا يحفظ قيمـة IDClas  في الجدول TBL_Final1

كود :
Private Sub Save_Grade()
       Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; " & "Data Source=" & Application.StartupPath & "\DataBase\Data_Base.accdb")
       If DataGridView1.Rows.Count = 0 Then Exit Sub
       con.Open()
       For i As Integer = 0 To DataGridView1.Rows.Count - 2
           Dim IDStudent As Integer = Val(DataGridView1.Rows(i).Cells(0).Value)
           Dim IDClas As Integer = Val(listClas.GetItemText(listClas.SelectedItem(0)).Split("-")(0)) ' تحديد قيمة IDClas من listClas
           Dim IDSemester As Integer = Val(CombSemester.Text)
           Dim ONValue As Integer = Val(DataGridView1.Rows(i).Cells(6).Value)

           Dim query As String = "SELECT * FROM TBL_Final1 WHERE IDStudent = ? AND IDClas = ? AND IDSemester = ?"
           Dim command As New OleDbCommand(query, con)
           command.Parameters.AddWithValue("?", IDStudent)
           command.Parameters.AddWithValue("?", IDClas)
           command.Parameters.AddWithValue("?", IDSemester)
           Dim reader As OleDbDataReader = command.ExecuteReader()
           If reader.HasRows Then
               reader.Close()
               query = "UPDATE TBL_Final1 SET ON" & CombCourses.SelectedIndex + 1 & " = ? WHERE IDStudent = ? AND IDClas = ? AND IDSemester = ?"
               command = New OleDbCommand(query, con)
               command.Parameters.AddWithValue("?", ONValue)
               command.Parameters.AddWithValue("?", IDStudent)
               command.Parameters.AddWithValue("?", IDClas)
               command.Parameters.AddWithValue("?", IDSemester)
               command.ExecuteNonQuery()
           Else
               reader.Close()
               query = "INSERT INTO TBL_Final1 (IDStudent, IDClas, IDSemester, ON" & CombCourses.SelectedIndex + 1 & ") VALUES (?, ?, ?, ?)"
               command = New OleDbCommand(query, con)
               command.Parameters.AddWithValue("?", IDStudent)
               command.Parameters.AddWithValue("?", IDClas)
               command.Parameters.AddWithValue("?", IDSemester)
               command.Parameters.AddWithValue("?", ONValue)
               command.ExecuteNonQuery()
           End If
       Next
       con.Close()
       MsgBox("تم رصد درجــات الصــف : " & " " & listClas.Text & Chr(13) & " لمــادة : " & CombCourses.Text & " * بنجــاح " & "", MsgBoxStyle.Information, "الإجـــراء")
       ' إفراغ عمود درجات الأعمال
       For Each row As DataGridViewRow In DataGridView1.Rows
           row.Cells(6).Value = DBNull.Value
       Next
   End Sub

الحمد لله نجح هذا الكود في حفظ قيمة IDCLAS
كود :
Private Sub Save_Grade()
       Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; " & "Data Source=" & Application.StartupPath & "\DataBase\Data_Base.accdb")
       If DataGridView1.Rows.Count = 0 Then Exit Sub
       con.Open()
       For i As Integer = 0 To DataGridView1.Rows.Count - 2
           Dim IDStudent As Integer = Val(DataGridView1.Rows(i).Cells(0).Value)
           Dim IDClas As Integer = CInt(listClas.SelectedIndices(0) + 1) ' تحديد قيمة IDClas من SelectedIndex
           Dim IDSemester As Integer = Val(CombSemester.Text)
           Dim ONValue As Integer = Val(DataGridView1.Rows(i).Cells(6).Value)

           Dim query As String = "SELECT * FROM TBL_Final1 WHERE IDStudent = ? AND IDClas = ? AND IDSemester = ?"
           Dim command As New OleDbCommand(query, con)
           command.Parameters.AddWithValue("?", IDStudent)
           command.Parameters.AddWithValue("?", IDClas)
           command.Parameters.AddWithValue("?", IDSemester)
           Dim reader As OleDbDataReader = command.ExecuteReader()
           If reader.HasRows Then
               reader.Close()
               query = "UPDATE TBL_Final1 SET ON" & CombCourses.SelectedIndex + 1 & " = ? WHERE IDStudent = ? AND IDClas = ? AND IDSemester = ?"
               command = New OleDbCommand(query, con)
               command.Parameters.AddWithValue("?", ONValue)
               command.Parameters.AddWithValue("?", IDStudent)
               command.Parameters.AddWithValue("?", IDClas)
               command.Parameters.AddWithValue("?", IDSemester)
               command.ExecuteNonQuery()
           Else

               reader.Close()
               query = "INSERT INTO TBL_Final1 (IDStudent, IDClas, IDSemester, ON" & CombCourses.SelectedIndex + 1 & ") VALUES (?, ?, ?, ?)"
               command = New OleDbCommand(query, con)
               command.Parameters.AddWithValue("?", IDStudent)
               command.Parameters.AddWithValue("?", IDClas)
               command.Parameters.AddWithValue("?", IDSemester)
               command.Parameters.AddWithValue("?", ONValue)
               command.ExecuteNonQuery()
           End If
       Next
       con.Close()
       MsgBox("تم رصد درجــات الصــف : " & " " & listClas.Text & Chr(13) & " لمــادة : " & CombCourses.Text & " * بنجــاح " & "", MsgBoxStyle.Information, "الإجـــراء")
       ' إفراغ عمود درجات الأعمال
       For Each row As DataGridViewRow In DataGridView1.Rows
           row.Cells(6).Value = DBNull.Value
       Next
   End Sub

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

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


الردود في هذا الموضوع
RE: تعديل على استدعاء الدرجات حسب الاختيار - بواسطة princelovelorn - 15-04-25, 06:16 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مساعدة تعديل على الكود ZEEN4ZEEN 2 207 08-10-25, 02:20 PM
آخر رد: salamandal
  تعديل كود تحديث البيانات مصمم هاوي 1 780 26-04-25, 06:07 PM
آخر رد: مصمم هاوي
  [VB.NET] استدعاء داتا كريت فيو من فورم اخر EMADW 1 417 16-04-25, 06:10 PM
آخر رد: مصمم هاوي
  ارجو تعديل الكود بواستطة الاجراء المخزن new_programer 3 673 03-04-25, 02:44 PM
آخر رد: princelovelorn
  تعديل مسار مكان حفظ النسخة الاحتياطية مصمم هاوي 6 798 02-03-25, 01:06 PM
آخر رد: atefkhalf2004
  محتاج تعديل على كود الحذف new_programer 2 649 17-02-25, 06:50 PM
آخر رد: new_programer
  مساعدة في كود عدم تكرار استدعاء نفس السؤال من المصفوفة fireswored1 5 541 10-02-25, 05:11 PM
آخر رد: fireswored1
  ارجو تعديل الكود جلب البيانات عن طريق اجراء مخزن - مرفق مثال new_programer 0 619 05-02-25, 01:51 AM
آخر رد: new_programer
  طلب تعديل كود جلب اسم الملف ومساره مصمم هاوي 4 529 25-01-25, 12:45 AM
آخر رد: مصمم هاوي
  تعديل كود الحذف مصمم هاوي 2 477 10-01-25, 03:03 PM
آخر رد: عبد العزيز البسكري

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


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