المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
السلام عليكم
أريد التعديل على الجزئية الأخيرة من الكود الخاص بشروط الاستعلام حسب الصف والمادة
فعند حذف شرط المـادة يشتغل الاستعلام 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)
قمتُ بتعديل هذا الجزء ولكن عند التنفيذ يظهر الخطأ أيضا
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
المشاركات : 1,262
المواضيع 16
الإنتساب : May 2016
السمعة :
291
الشكر: 801
تم شكره 2223 مرات في 1168 مشاركات
السلام عليكم ورحمة الله وبركاته
شيك على علمة التنصيص المفردة ( ' )
قبل وبعد العبارة التي تبحث بواسطتها أو تشترط بها
إذا كان الحقل نصي عليك أن تضعها قبل وبعد
وإذا كان الحقل في قاعدة البيانات رقمي يجب ألا تضعها
قال صلى الله عليه وسلم:
«كلمتان خفيفتان على اللسان
ثقيلتان في الميزان،حبيبتان إلى الرحمن:
سبحان الله وبحمده، سبحان الله العظيم».
المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
(22-02-23, 07:14 PM)Taha Okla كتب : السلام عليكم ورحمة الله وبركاته
شيك على علمة التنصيص المفردة ( ' )
قبل وبعد العبارة التي تبحث بواسطتها أو تشترط بها
إذا كان الحقل نصي عليك أن تضعها قبل وبعد
وإذا كان الحقل في قاعدة البيانات رقمي يجب ألا تضعها
بارك الله فيك أستاذ طه الحقلين رقميين ولكن لا يزال الخطا
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
المشاركات : 7,397
المواضيع 802
الإنتساب : Sep 2013
السمعة :
853
الشكر: 13167
تم شكره 18826 مرات في 4421 مشاركات
اخي الكريم علامة التنصيص المفردة هذه لا بد لها من اخت اما قبلها او بعدها او احذفها
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
للأسف يوجد خطأ ولم يتبين لي هذا الخطأ، والرجاء منكم التعديل حتى يتم استدعاء الدرجات حسب المادة
بحيث إذا لم يتم إدخال درجات لإحدى المواد الدراسية فإنه يتم إدخال درجتها
Exam.rar (الحجم : 183.52 ك ب / التحميلات : 17)
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
المشاركات : 1,262
المواضيع 16
الإنتساب : May 2016
السمعة :
291
الشكر: 801
تم شكره 2223 مرات في 1168 مشاركات
(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
قال صلى الله عليه وسلم:
«كلمتان خفيفتان على اللسان
ثقيلتان في الميزان،حبيبتان إلى الرحمن:
سبحان الله وبحمده، سبحان الله العظيم».
المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
(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
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
المشاركات : 1,262
المواضيع 16
الإنتساب : May 2016
السمعة :
291
الشكر: 801
تم شكره 2223 مرات في 1168 مشاركات
اذن ذا:
كود :
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
قال صلى الله عليه وسلم:
«كلمتان خفيفتان على اللسان
ثقيلتان في الميزان،حبيبتان إلى الرحمن:
سبحان الله وبحمده، سبحان الله العظيم».
المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
(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 المـــــادة
للأسف مازلتُ في طـور التدرب على الدوت نت فتحملوني أساتذتي الكرام
Exam.rar (الحجم : 184.73 ك ب / التحميلات : 18)
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
(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 المـــــادة
ألا يوجد حلاً لمشكلة الحفظ
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
|