تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعديل في جزئية من الكود
#1
السلام عليكم
أريد التعديل على الجزئية الأخيرة من الكود الخاص بشروط الاستعلام حسب الصف والمادة
فعند حذف شرط المـادة يشتغل الاستعلام 100%
لكن عند إضافة شرط استدعاء درجات المـادة هل تم رصد درجاتها أم لا فإنه يظهر خطأ في الاستعلام

مع العلم أريد أن يتم استدعاء أسماء الطلبـة حسب الصف الدراسي المحدد حتى لو لم يتم رصد درجة المادة؛ ليتم رصد الدرجات

وهذا هو الكود المستخدم في الاستعلام

كود :
arrListQuery.Add( _
                    "SELECT TBL_Student.IDStudent " & _
                    ", TBL_Student.NameStudent " & _
                    ", TBL_Student.IDClas " & _
                    ", TBL_Student.SETNO1 " & _
                    ", TBL_Student.SETNO2 " & _
                    ", TBL_Final1.IDSemester " & _
                    ", TBL_Final1.NameSClas " & _
                    ", TBL_Final1.on, TBL_Final1.to, TBL_Final1.tr " & _
                    "FROM TBL_Final1 RIGHT JOIN TBL_Student ON TBL_Final1.IDStudent = TBL_Student.IDStudent " & _
                    "Where TBL_Student.IDClas=" & CInt(i + 1).ToString & "' and  TBL_Final1.ISDClas=" & CInt(i + 1).ToString)


والخطأ في الجزء التالي

كود :
"Where TBL_Student.IDClas=" & CInt(i + 1).ToString & "' and  TBL_Final1.ISDClas=" & CInt(i + 1).ToString)

قمتُ بتعديل هذا الجزء ولكن عند التنفيذ يظهر الخطأ أيضا
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته

شيك على علمة التنصيص المفردة ( ' ) 
قبل وبعد العبارة التي تبحث بواسطتها أو تشترط بها
إذا كان الحقل نصي عليك أن تضعها قبل وبعد 
وإذا كان الحقل في قاعدة البيانات رقمي يجب ألا تضعها
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: مصمم هاوي , مصمم هاوي , مصمم هاوي , سعود
#3
(22-02-23, 07:14 PM)Taha Okla كتب : السلام عليكم ورحمة الله وبركاته

شيك على علمة التنصيص المفردة ( ' ) 
قبل وبعد العبارة التي تبحث بواسطتها أو تشترط بها
إذا كان الحقل نصي عليك أن تضعها قبل وبعد 
وإذا كان الحقل في قاعدة البيانات رقمي يجب ألا تضعها

بارك الله فيك أستاذ طه الحقلين رقميين ولكن لا يزال الخطا
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: سعود
#4

اخي الكريم علامة التنصيص المفردة هذه لا بد لها من اخت اما قبلها او بعدها او احذفها
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
#5
للأسف يوجد خطأ  ولم يتبين لي هذا الخطأ، والرجاء منكم التعديل حتى يتم استدعاء الدرجات حسب المادة
بحيث إذا لم يتم إدخال درجات لإحدى المواد الدراسية فإنه يتم إدخال درجتها


.rar   Exam.rar (الحجم : 183.52 ك ب / التحميلات : 17)
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#6
(22-02-23, 10:15 PM)مصمم هاوي كتب : للأسف يوجد خطأ  ولم يتبين لي هذا الخطأ، والرجاء منكم التعديل حتى يتم استدعاء الدرجات حسب المادة
بحيث إذا لم يتم إدخال درجات لإحدى المواد الدراسية فإنه يتم إدخال درجتها


ذا :

كود :
Private Sub FillStudent()
       Try

           'هنا متغير لحمل القيمة التي ستحدد أثناء النقر على البيان المختار من اللست بوكس
           Dim arrListQuery As New ArrayList

           'هنا حلقة فور نكست لتحدد القيم المختارة من اللست بوكس
           'لا ينبغي عليك استخدام فهرس القائمة عند اختيار القيمة
           'Value ... SelectedIndices(i)

           For i As Integer = 0 To Me.listClas.Items.Count - 1

               If Me.listClas.GetSelected(i) Then
                   'هنا متغير لتعبئة القيمة أثناء النقر على أحد قيم اللست بوكس
                   'لتحديد قيمة الصف المختار من قاعدة البيانات والمعبأ في اللست بوكس
                   arrListQuery.Add(
                       "SELECT TBL_Student.IDStudent " &
                       ", TBL_Student.NameStudent " &
                       ", TBL_Student.IDClas " &
                       ", TBL_Student.SETNO1 " &
                       ", TBL_Student.SETNO2 " &
                       ", TBL_Final1.IDSemester " &
                       ",TBL_Final1.NameCourses " &
                       ",TBL_Final1.on " &
                       ",TBL_Final1.to " &
                       ",TBL_Final1.tr " &
                       " FROM TBL_Final1 RIGHT JOIN TBL_Student ON TBL_Final1.IDStudent = TBL_Student.IDStudent " &
                       " Where TBL_Student.IDClas=" & CInt(i + 1).ToString() & " and TBL_Final1.IDClas=" & CInt(i + 1).ToString)

               End If

           Next

           '==========================

           'تحديد متغير لتعبئة مجموعة البيانات من الاستعلام
           Dim da As OleDb.OleDbDataAdapter

           da = New OleDbDataAdapter(Nothing, Con)
           'هنا تحديد متغير داتا سيت لتخزين البيانات
           Dim ds As New DataSet


           For i As Integer = 0 To arrListQuery.Count - 1

               If Not IsNothing(arrListQuery(i)) Then

                   'Assign the query string.
                   da.SelectCommand.CommandText = arrListQuery(i).ToString

                   'تعبئة مخزن البيانات من الاستعلام المحدد
                   da.Fill(ds, "Student")

               End If
           Next

           DataGridView1.DataSource = ds.Tables("Student")

           'تحديد بيانات الداتا قريد التي ستعبأ

           FillStudent_Load()
           'Destroy object.
           'arrListQuery = Nothing

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try

   End Sub
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: سعود , سعود
#7
(23-02-23, 07:44 AM)Taha Okla كتب :
(22-02-23, 10:15 PM)مصمم هاوي كتب : للأسف يوجد خطأ  ولم يتبين لي هذا الخطأ، والرجاء منكم التعديل حتى يتم استدعاء الدرجات حسب المادة
بحيث إذا لم يتم إدخال درجات لإحدى المواد الدراسية فإنه يتم إدخال درجتها


ذا :

كود :
Private Sub FillStudent()
       Try

           'هنا متغير لحمل القيمة التي ستحدد أثناء النقر على البيان المختار من اللست بوكس
           Dim arrListQuery As New ArrayList

           'هنا حلقة فور نكست لتحدد القيم المختارة من اللست بوكس
           'لا ينبغي عليك استخدام فهرس القائمة عند اختيار القيمة
           'Value ... SelectedIndices(i)

           For i As Integer = 0 To Me.listClas.Items.Count - 1

               If Me.listClas.GetSelected(i) Then
                   'هنا متغير لتعبئة القيمة أثناء النقر على أحد قيم اللست بوكس
                   'لتحديد قيمة الصف المختار من قاعدة البيانات والمعبأ في اللست بوكس
                   arrListQuery.Add(
                       "SELECT TBL_Student.IDStudent " &
                       ", TBL_Student.NameStudent " &
                       ", TBL_Student.IDClas " &
                       ", TBL_Student.SETNO1 " &
                       ", TBL_Student.SETNO2 " &
                       ", TBL_Final1.IDSemester " &
                       ",TBL_Final1.NameCourses " &
                       ",TBL_Final1.on " &
                       ",TBL_Final1.to " &
                       ",TBL_Final1.tr " &
                       " FROM TBL_Final1 RIGHT JOIN TBL_Student ON TBL_Final1.IDStudent = TBL_Student.IDStudent " &
                       " Where TBL_Student.IDClas=" & CInt(i + 1).ToString() & " and TBL_Final1.IDClas=" & CInt(i + 1).ToString)

               End If

           Next

           '==========================

           'تحديد متغير لتعبئة مجموعة البيانات من الاستعلام
           Dim da As OleDb.OleDbDataAdapter

           da = New OleDbDataAdapter(Nothing, Con)
           'هنا تحديد متغير داتا سيت لتخزين البيانات
           Dim ds As New DataSet


           For i As Integer = 0 To arrListQuery.Count - 1

               If Not IsNothing(arrListQuery(i)) Then

                   'Assign the query string.
                   da.SelectCommand.CommandText = arrListQuery(i).ToString

                   'تعبئة مخزن البيانات من الاستعلام المحدد
                   da.Fill(ds, "Student")

               End If
           Next

           DataGridView1.DataSource = ds.Tables("Student")

           'تحديد بيانات الداتا قريد التي ستعبأ

           FillStudent_Load()
           'Destroy object.
           'arrListQuery = Nothing

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try

   End Sub

ليس هذا هو المقصود فهذه الطريقة أعرفها جيداً ولكن ما أريده أن يتم استدعاء جميع طلبة الصف
حتى الطلبة الذين لم تسجل لهم درجات في المادة.
وتسجيل الدرجات يتم في الداتا قريدفيو مباشرةً؛ وبهذه الطريقة لن أستطيع أن أسجل درجات الطلبة الآخرين.
أسف على الإطالة ولكن هذا هو المطلوب.
مع العلم أن هذا الأمر نجح عندي في الفيجوال 6
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: سعود , سعود
#8
اذن ذا:
كود :
Try

           'هنا متغير لحمل القيمة التي ستحدد أثناء النقر على البيان المختار من اللست بوكس
           Dim arrListQuery As New ArrayList

           'هنا حلقة فور نكست لتحدد القيم المختارة من اللست بوكس
           'لا ينبغي عليك استخدام فهرس القائمة عند اختيار القيمة
           'Value ... SelectedIndices(i)

           For i As Integer = 0 To Me.listClas.Items.Count - 1

               If Me.listClas.GetSelected(i) Then
                   'هنا متغير لتعبئة القيمة أثناء النقر على أحد قيم اللست بوكس
                   'لتحديد قيمة الصف المختار من قاعدة البيانات والمعبأ في اللست بوكس
                   arrListQuery.Add(
                       "SELECT TBL_Student.IDStudent " &
                       ", TBL_Student.NameStudent " &
                       ", TBL_Student.IDClas " &
                       ", TBL_Student.SETNO1 " &
                       ", TBL_Student.SETNO2 " &
                       ", TBL_Final1.IDSemester " &
                       ",TBL_Final1.NameCourses " &
                       ",TBL_Final1.on " &
                       ",TBL_Final1.to " &
                       ",TBL_Final1.tr " &
                       " FROM TBL_Final1 RIGHT JOIN TBL_Student ON TBL_Final1.IDStudent = TBL_Student.IDStudent ") ' &
                   '" Where TBL_Student.IDClas=" & CInt(i + 1).ToString() & " and TBL_Final1.IDClas=" & CInt(i + 1).ToString)

               End If

           Next

           '==========================

           'تحديد متغير لتعبئة مجموعة البيانات من الاستعلام
           Dim da As OleDb.OleDbDataAdapter

           da = New OleDbDataAdapter(Nothing, Con)
           'هنا تحديد متغير داتا سيت لتخزين البيانات
           Dim ds As New DataSet


           For i As Integer = 0 To arrListQuery.Count - 1

               If Not IsNothing(arrListQuery(i)) Then

                   'Assign the query string.
                   da.SelectCommand.CommandText = arrListQuery(i).ToString

                   'تعبئة مخزن البيانات من الاستعلام المحدد
                   da.Fill(ds, "Student")

               End If
           Next

           DataGridView1.DataSource = ds.Tables("Student")

           'تحديد بيانات الداتا قريد التي ستعبأ

           FillStudent_Load()
           'Destroy object.
           'arrListQuery = Nothing

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: سعود
#9
(23-02-23, 02:07 PM)Taha Okla كتب : اذن ذا:
كود :
Try

           'هنا متغير لحمل القيمة التي ستحدد أثناء النقر على البيان المختار من اللست بوكس
           Dim arrListQuery As New ArrayList

           'هنا حلقة فور نكست لتحدد القيم المختارة من اللست بوكس
           'لا ينبغي عليك استخدام فهرس القائمة عند اختيار القيمة
           'Value ... SelectedIndices(i)

           For i As Integer = 0 To Me.listClas.Items.Count - 1

               If Me.listClas.GetSelected(i) Then
                   'هنا متغير لتعبئة القيمة أثناء النقر على أحد قيم اللست بوكس
                   'لتحديد قيمة الصف المختار من قاعدة البيانات والمعبأ في اللست بوكس
                   arrListQuery.Add(
                       "SELECT TBL_Student.IDStudent " &
                       ", TBL_Student.NameStudent " &
                       ", TBL_Student.IDClas " &
                       ", TBL_Student.SETNO1 " &
                       ", TBL_Student.SETNO2 " &
                       ", TBL_Final1.IDSemester " &
                       ",TBL_Final1.NameCourses " &
                       ",TBL_Final1.on " &
                       ",TBL_Final1.to " &
                       ",TBL_Final1.tr " &
                       " FROM TBL_Final1 RIGHT JOIN TBL_Student ON TBL_Final1.IDStudent = TBL_Student.IDStudent ") ' &
                   '" Where TBL_Student.IDClas=" & CInt(i + 1).ToString() & " and TBL_Final1.IDClas=" & CInt(i + 1).ToString)

               End If

           Next

           '==========================

           'تحديد متغير لتعبئة مجموعة البيانات من الاستعلام
           Dim da As OleDb.OleDbDataAdapter

           da = New OleDbDataAdapter(Nothing, Con)
           'هنا تحديد متغير داتا سيت لتخزين البيانات
           Dim ds As New DataSet


           For i As Integer = 0 To arrListQuery.Count - 1

               If Not IsNothing(arrListQuery(i)) Then

                   'Assign the query string.
                   da.SelectCommand.CommandText = arrListQuery(i).ToString

                   'تعبئة مخزن البيانات من الاستعلام المحدد
                   da.Fill(ds, "Student")

               End If
           Next

           DataGridView1.DataSource = ds.Tables("Student")

           'تحديد بيانات الداتا قريد التي ستعبأ

           FillStudent_Load()
           'Destroy object.
           'arrListQuery = Nothing

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try

على كلِّ حال هذا الكود لم يحقق المطلوب؛ ولهذا رجعتُ للمثال الأول وقمتٌ ببعض التعديلات وثم المطلوب بفضل الله تعالى
والذي أرجـوه هو التعديل على كود الحفظ حيث أريد أن يتم حفظ الدرجات في الحقول حسب  Index المـــــادة

للأسف مازلتُ في طـور التدرب على الدوت نت فتحملوني أساتذتي الكرام


.rar   Exam.rar (الحجم : 184.73 ك ب / التحميلات : 18)
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: سعود
#10
(27-02-23, 01:42 AM)مصمم هاوي كتب :
(23-02-23, 02:07 PM)Taha Okla كتب : اذن ذا:
كود :
Try

           'هنا متغير لحمل القيمة التي ستحدد أثناء النقر على البيان المختار من اللست بوكس
           Dim arrListQuery As New ArrayList

           'هنا حلقة فور نكست لتحدد القيم المختارة من اللست بوكس
           'لا ينبغي عليك استخدام فهرس القائمة عند اختيار القيمة
           'Value ... SelectedIndices(i)

           For i As Integer = 0 To Me.listClas.Items.Count - 1

               If Me.listClas.GetSelected(i) Then
                   'هنا متغير لتعبئة القيمة أثناء النقر على أحد قيم اللست بوكس
                   'لتحديد قيمة الصف المختار من قاعدة البيانات والمعبأ في اللست بوكس
                   arrListQuery.Add(
                       "SELECT TBL_Student.IDStudent " &
                       ", TBL_Student.NameStudent " &
                       ", TBL_Student.IDClas " &
                       ", TBL_Student.SETNO1 " &
                       ", TBL_Student.SETNO2 " &
                       ", TBL_Final1.IDSemester " &
                       ",TBL_Final1.NameCourses " &
                       ",TBL_Final1.on " &
                       ",TBL_Final1.to " &
                       ",TBL_Final1.tr " &
                       " FROM TBL_Final1 RIGHT JOIN TBL_Student ON TBL_Final1.IDStudent = TBL_Student.IDStudent ") ' &
                   '" Where TBL_Student.IDClas=" & CInt(i + 1).ToString() & " and TBL_Final1.IDClas=" & CInt(i + 1).ToString)

               End If

           Next

           '==========================

           'تحديد متغير لتعبئة مجموعة البيانات من الاستعلام
           Dim da As OleDb.OleDbDataAdapter

           da = New OleDbDataAdapter(Nothing, Con)
           'هنا تحديد متغير داتا سيت لتخزين البيانات
           Dim ds As New DataSet


           For i As Integer = 0 To arrListQuery.Count - 1

               If Not IsNothing(arrListQuery(i)) Then

                   'Assign the query string.
                   da.SelectCommand.CommandText = arrListQuery(i).ToString

                   'تعبئة مخزن البيانات من الاستعلام المحدد
                   da.Fill(ds, "Student")

               End If
           Next

           DataGridView1.DataSource = ds.Tables("Student")

           'تحديد بيانات الداتا قريد التي ستعبأ

           FillStudent_Load()
           'Destroy object.
           'arrListQuery = Nothing

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try

على كلِّ حال هذا الكود لم يحقق المطلوب؛ ولهذا رجعتُ للمثال الأول وقمتٌ ببعض التعديلات وثم المطلوب بفضل الله تعالى
والذي أرجـوه هو التعديل على كود الحفظ حيث أريد أن يتم حفظ الدرجات في الحقول حسب  Index المـــــادة

ألا يوجد حلاً لمشكلة الحفظ
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: سعود , سعود



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


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