منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
إظهار طلبة الدور الثاني حسب مواد الرسوب - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18)
+---- قسم : قسم أسئلة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=28)
+---- الموضوع : إظهار طلبة الدور الثاني حسب مواد الرسوب (/showthread.php?tid=39986)

الصفحات: 1 2


إظهار طلبة الدور الثاني حسب مواد الرسوب - مصمم هاوي - 14-11-21

السلام عليكم ورحمة الله وبركاته
عندي جدول درجات الدور الثاني باسم TBL_Final5
وحقول مجموع المواد الدراسية عددها 12 وهى:  TR1 . TR2 . TR3 ..... إلى  (TR12)
درجات النجاح لكل مــادة هى (40) ماعدا مــادة واحــدة درجة النجاح هى (tr5 = 80)

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

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

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

مثال في المرفقات
[attachment=27216]


RE: إظهار طلبة الدور الثاني حسب مواد الرسوب - مصمم هاوي - 15-11-21

عذرا على الازعاج؛ ولكنه حب الإطلاع واستعجال النتائج وانتظار الجواب.
ههههههه
وإذا لم يكن أحدٌ من الأساتذة له وقتٌ لينظر هذا السؤال ويحلَّ الإشكال فليعدل على هذا الكود فقط
حيث استطعتُ أن أعرض مادة رسوب واحدة مثل ما في هذا الكود ( 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
'



RE: إظهار طلبة الدور الثاني حسب مواد الرسوب - مصمم هاوي - 18-11-21

تم حل المشكلة بهذا الكود الطويل والمزعج فمن يريد تطوير هذا الكود فياهلا به
كود :
' عرض الطلبــة الراسبين حسب المــادة الراسبين فيه
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



RE: إظهار طلبة الدور الثاني حسب مواد الرسوب - Taha Okla - 18-11-21

السلام عليكم رحمة الله وبركاته،،
هل هذا الاختصار يعتبر مريح ؟؟

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

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



RE: إظهار طلبة الدور الثاني حسب مواد الرسوب - مصمم هاوي - 18-11-21

بارك الله فيك أخي طه فهو كودٌ مختصرٌ ولكن يظهر خطأ في هذا الجزء من الكود كما هو موضحٌ في الصورة

كود :
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




RE: إظهار طلبة الدور الثاني حسب مواد الرسوب - Taha Okla - 18-11-21

التصحيح : 

كود :
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



RE: إظهار طلبة الدور الثاني حسب مواد الرسوب - مصمم هاوي - 18-11-21

(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

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


RE: إظهار طلبة الدور الثاني حسب مواد الرسوب - Taha Okla - 18-11-21

ولا زال بالامكان اختصاره أكثر - 
بحيث نختصر حالة Select على ثلاث حالات فقط 
وبها نناقش كل الحالات الـ 12 لديك 
..
ولكن توقفت عند هذا الحد 
لأنه أسهل للفهم متى رجعت إليه مستقبلاً ..

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


RE: إظهار طلبة الدور الثاني حسب مواد الرسوب - مصمم هاوي - 18-11-21

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

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

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


RE: إظهار طلبة الدور الثاني حسب مواد الرسوب - Taha Okla - 19-11-21

تفضل :

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

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