منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : إظهار طلبة الدور الثاني حسب مواد الرسوب
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته
عندي جدول درجات الدور الثاني باسم TBL_Final5
وحقول مجموع المواد الدراسية عددها 12 وهى:  TR1 . TR2 . TR3 ..... إلى  (TR12)
درجات النجاح لكل مــادة هى (40) ماعدا مــادة واحــدة درجة النجاح هى (tr5 = 80)

المطلــوب:
أريد فقط كيفية عرض الطلبــة الراسبين في الدور الأول حسب مواد الرسوب في الليست بوكس وكذلك الفليكس قريد
بمعنى عندما اختار مادة من الكومبوكس يعرض الطلبة الراسبين في هذه المــادة في الليست بوكس والفليكس بوكس

ملاحظة:
الفورم Form_Exim2 خاص بعرض الطلبة الراسبين في الليست بوكس (L1)
الفورم Form_Semester3 خاص بعرض الطلبة الراسبين في (MSHFlexGrid1)
حقل الدور الأول يُرمز له بالرقـــم (3) في حقل (Semester) و (tag)

أرجــو أن تكون الصــورة قد وضحت وهى عرض الطلبـة الراسبين في الدور الأول حسب المــادة

مثال في المرفقات
[attachment=27216]
عذرا على الازعاج؛ ولكنه حب الإطلاع واستعجال النتائج وانتظار الجواب.
ههههههه
وإذا لم يكن أحدٌ من الأساتذة له وقتٌ لينظر هذا السؤال ويحلَّ الإشكال فليعدل على هذا الكود فقط
حيث استطعتُ أن أعرض مادة رسوب واحدة مثل ما في هذا الكود ( tr1 < 40)  حسب الاختيار من الكومبوس Combo1
ولكن أريدُ أن أعرض 12 مـادة إذا كانت درجة النجاح أقل من 40 ماعدا مادة واحدة درجة النجاح أقل من 80 وهى tr5
tr1 - tr2 - tr3 - tr4 - tr5 - tr6 - tr7 - tr8 - tr9 - tr10 - tr11 - tr12

كود :
Call ConnectionDatabase
If rs.State = adStateOpen Then rs.Close
rs.Open "SELECT * FROM [TB1] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr1 < 40 AND [Category] = '" & Trim(CombCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

L1.Clear
For I = 0 To rs.RecordCount - 1
L1.AddItem rs![Name_Student]
L1.ItemData(L1.NewIndex) = rs![ID]
rs.MoveNext
Next
'
تم حل المشكلة بهذا الكود الطويل والمزعج فمن يريد تطوير هذا الكود فياهلا به
كود :
' عرض الطلبــة الراسبين حسب المــادة الراسبين فيه
Select Case CombSClas.ListIndex
'
Case 0

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND Semester=3 AND tag=3 AND tr1 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 1

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr2 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 2

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr3 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 3

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=5 AND tr4 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 4

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr5 < 80 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 5

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr6 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 6

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr7 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 7

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr8 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 8

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=2 AND tr9 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 9

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final4] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr10 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 10

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr11 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

Case 11

Call ConnectionDatabase
If RS.State = adStateOpen Then RS.Close
RS.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
"' AND [Clas] = '" & Trim(CombClass.Text) & _
"' AND tag=3 AND tr12 < 40 AND [Category] = '" & Trim(TextCategory.Text) & _
"'", DB, adOpenStatic, adLockOptimistic

End Select
'
L1.Clear
For I = 0 To RS.RecordCount - 1
L1.AddItem RS![Name_Student]
L1.ItemData(L1.NewIndex) = RS![ID]
RS.MoveNext
Next
'
Form_Exim2.LCount.Caption = " عدد الطلبــة الراسبين في مــادة : " & " " & Form_Exim2.CombSClas.Text & "  -  " & RS.RecordCount & ""
'
Exit Sub
'
ShowDegree 1
''''''''''''''
TextB_GotFocus
السلام عليكم رحمة الله وبركاته،،
هل هذا الاختصار يعتبر مريح ؟؟

كود :
   ' عرض الطلبــة الراسبين حسب المــادة الراسبين فيها

Dim strSearh As String

Select Case CombSClas.ListIndex
   Case 0
       strSearh = "Semester=3 AND tr1 < 40"
   Case 1
       strSearh = "tr2 < 40"
   Case 2
       strSearh = "tr3 < 40"
   Case 3
       strSearh = "tr4 < 40"
   Case 4
       strSearh = "tr5 < 80"
   Case 5
       strSearh = "tr6 < 40"
   Case 6
       strSearh = "tr7 < 40"
   Case 7
       strSearh = "tr8 < 40"

   Case 8
       strSearh = "tr9 < 40"
   Case 9
       strSearh = "tr10 < 40"
   Case 10
       strSearh = "tr11 < 40"
   Case 11
       strSearh = "tr12 < 40"
End Select

Call ConnectionDatabase

If Rs.State = adStateOpen Then Rs.Close
Rs.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & "' AND [Clas] = '" & Trim(CombClass.Text) & "' AND tag=3 " & strSearh & " AND [Category] = '" & Trim(TextCategory.Text) & "'", DB, adOpenStatic, adLockOptimistic

L1.Clear

For I = 0 To Rs.RecordCount - 1
   L1.AddItem Rs![Name_Student]
   L1.ItemData(L1.NewIndex) = Rs![ID]
   Rs.MoveNext
Next

'
Form_Exim2.LCount.Caption = " عدد الطلبــة الراسبين في مــادة : " & " " & Form_Exim2.CombSClas.Text & "  -  " & Rs.RecordCount & ""
'
Exit Sub
'
ShowDegree 1
''''''''''''''
TextB_GotFocus
بارك الله فيك أخي طه فهو كودٌ مختصرٌ ولكن يظهر خطأ في هذا الجزء من الكود كما هو موضحٌ في الصورة

كود :
If Rs.State = adStateOpen Then Rs.Close
Rs.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & "' AND [Clas] = '" & Trim(CombClass.Text) & "' AND tag=3 " & strSearh & " AND [Category] = '" & Trim(TextCategory.Text) & "'", DB, adOpenStatic, adLockOptimistic

التصحيح : 

كود :
Rs.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
       "' AND [Clas] = '" & Trim(CombClass.Text) & "' AND tag=3 And " & strSearh & _
       " AND [Category] = '" & Trim(TextCategory.Text) & "'", DB, adOpenStatic, adLockOptimistic
(18-11-21, 03:36 AM)Taha Okla كتب : [ -> ]التصحيح : 

كود :
Rs.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
       "' AND [Clas] = '" & Trim(CombClass.Text) & "' AND tag=3 And " & strSearh & _
       " AND [Category] = '" & Trim(TextCategory.Text) & "'", DB, adOpenStatic, adLockOptimistic

كم أنــت أروع بهـــذا الكود الرائـــع, فهــو كودٌ مختصــرٌ ومفيد وقد أدى الغرض المطلــوب
لقد خففتَ عني كثيراً من الضغط النفسي والإرهاق الجسدي
بارك الله فيك, وجزاك كلَّ خيرٍ, وجعلَ ما قدمتَ في ميزان حسناتكَ
ورفع الله قدركَ في الدنيا والآخرة
ولا زال بالامكان اختصاره أكثر - 
بحيث نختصر حالة Select على ثلاث حالات فقط 
وبها نناقش كل الحالات الـ 12 لديك 
..
ولكن توقفت عند هذا الحد 
لأنه أسهل للفهم متى رجعت إليه مستقبلاً ..

..
وهذا من فضل ربي  - فـ لله الحمد من قبل ومن بعد ..
(18-11-21, 04:37 PM)Taha Okla كتب : [ -> ]ولا زال بالامكان اختصاره أكثر - 
بحيث نختصر حالة Select على ثلاث حالات فقط 
وبها نناقش كل الحالات الـ 12 لديك 
..
ولكن توقفت عند هذا الحد 
لأنه أسهل للفهم متى رجعت إليه مستقبلاً ..

..
وهذا من فضل ربي  - فـ لله الحمد من قبل ومن بعد ..

بعد الأستاذ الفاضل أحمد منصور والأستاذ المبدع أحمد عبد العليم وأخي الحبيب الرائع أمير الزبيدي
فإنه يبدو لي جازماً أنني أمام قامة آخرى من القامات العربية التي تزخر بالإبداع البرمجي،
وكم كنتُ أتمنى منك أن توافيني بهذا الكود المختصر اكثر من هذا للاستزادة البرمجية ,
فإنني مازلتُ هاوياً أتعلم من الأساتذة الكرام والأعضاء الأفاضل
تفضل :

كود :
' عرض الطلبــة الراسبين حسب المــادة الراسبين فيها

Dim strSearh As String

Select Case CombSClas.ListIndex
   Case 0
       strSearh = "Semester=3 AND tr1 < 40"
   Case 1, 2, 3, 5, 6, 7, 8, 9, 10, 11
       strSearh = "tr" & CStr(CombSClas.ListIndex + 1) & " < 40"
   Case 4
       strSearh = "tr5 < 80"
End Select

Call ConnectionDatabase

If Rs.State = adStateOpen Then Rs.Close
Rs.Open "SELECT * FROM [TBL_Final5] WHERE [CClas]='" & Trim(CombCClass.Text) & _
      "' AND [Clas] = '" & Trim(CombClass.Text) & "' AND tag=3 And " & strSearh & _
      " AND [Category] = '" & Trim(TextCategory.Text) & "'", DB, adOpenStatic, adLockOptimistic
     
L1.Clear

For I = 0 To Rs.RecordCount - 1
   L1.AddItem Rs![Name_Student]
   L1.ItemData(L1.NewIndex) = Rs![ID]
   Rs.MoveNext
Next

Form_Exim2.LCount.Caption = " عدد الطلبــة الراسبين في مــادة : " & " " & Form_Exim2.CombSClas.Text & "  -  " & Rs.RecordCount & ""
'
Exit Sub
'
ShowDegree 1
''''''''''''''
TextB_GotFocus
الصفحات : 1 2