تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال بخصوص الجمع في جدول الداتا قريد
#1
سؤال بخصوص جدول الداتا قريد
أريد جمع درجات الأعمال والامتحان دفعة واحدة ووإظهار المجموع الكلي والنسبة والتقدير والنتيجة
وذلك عند تسجيل درجات الطلبة في مادة معينة.
أعذروني على طلبي، ولكن للأسف المشروع توقف عند هذه النقطة التي لم استطع إيجاد حلاً لها.

المثال من تعديل الأستاذ الفاضل أحمد منصور


.rar   Exim.rar (الحجم : 110.88 ك ب / التحميلات : 34)
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: awidan76
#2
انتظر الإجابة من الأساتذة الكرام
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: awidan76
#3
كود :
Call ConnectionDatabase


Dim zTotalall As String
Dim znisba As String

Dim fro As Date
Dim Too As Date
fro = Format(DTPicker1, "mm/dd/yyyy")
Too = Format(DTPicker2, "mm/dd/yyyy")

zTotal = "(Select sum(marks) From DrjatTB where DrjatTB.stuID=studentTB.stuID And DrjatTB.FileDate BETWEEN #" & CDate(fro) & "# AND #" & CDate(Too) & "#)"

znisba = "(Select   marks *100/zTotal From DrjatTB where falowTB.ECase= 2  And DrjatTB.stuID=studentTB.stuID AND DrjatTB.FileDate BETWEEN #" & CDate(fro) & "# AND #" & CDate(Too) & "#)"


                                                                                                                                                                                     ' ÌÏæá ÇáÏÑÌÇÊ
RS.Open "Select studentTB.stuID,studentTB.StuN ," & zTotal & " as Total ," & znisba & " as Totansba FROM studentTB INNER JOIN DrjatTB On DrjatTB.DstuID=studentTB.stuID Where DrjatTB.FileDate BETWEEN #" & CDate(fro) & "# AND #" & CDate(Too) & "# Group by studentTB.stuID,studentTB.stuN"
Set DataGrid1.DataSource = RS


اضن ان الكود بيكون بهذا الشكل بخصوص النسبة  
او خذ الفكرة منه  - 
تعليمات اخوانا الغالي احمد منصور
اعز معلمين :
1) Ahmed _Mansoor
2) sniper.ps 
3) myalsailamy
4) ahmedabdelaliem 
5) sendbad100
6)Amir_alzubidy

الرد }}}
تم الشكر بواسطة:
#4
(17-09-19, 01:03 PM)awidan76 كتب :
كود :
Call ConnectionDatabase


Dim zTotalall As String
Dim znisba As String

Dim fro As Date
Dim Too As Date
fro = Format(DTPicker1, "mm/dd/yyyy")
Too = Format(DTPicker2, "mm/dd/yyyy")

zTotal = "(Select sum(marks) From DrjatTB where DrjatTB.stuID=studentTB.stuID And DrjatTB.FileDate BETWEEN #" & CDate(fro) & "# AND #" & CDate(Too) & "#)"

znisba = "(Select   marks *100/zTotal From DrjatTB where falowTB.ECase= 2  And DrjatTB.stuID=studentTB.stuID AND DrjatTB.FileDate BETWEEN #" & CDate(fro) & "# AND #" & CDate(Too) & "#)"


                                                                                                                                                                                     ' ÌÏæá ÇáÏÑÌÇÊ
RS.Open "Select studentTB.stuID,studentTB.StuN ," & zTotal & " as Total ," & znisba & " as Totansba FROM studentTB INNER JOIN DrjatTB On DrjatTB.DstuID=studentTB.stuID Where DrjatTB.FileDate BETWEEN #" & CDate(fro) & "# AND #" & CDate(Too) & "# Group by studentTB.stuID,studentTB.stuN"
Set DataGrid1.DataSource = RS


اضن ان الكود بيكون بهذا الشكل بخصوص النسبة  
او خذ الفكرة منه  - 
تعليمات اخوانا الغالي احمد منصور

سامحني أخي الكريم لم أفهم الكود جيداً، أرفقت المثال؛ ليتم التعديل عليه، وربما يتجشم الأستاذ الكبير أحمد منصور أو الأستاذ الفاضل أمير لهذا المثال.
وهذا كود الجمع بالتكست يشتغل تمام ولكن في الداتا قريد لم أنجح
كود :
On Error Resume Next: Err.Clear

With Co
.ActiveConnection = DB
.CommandType = adCmdTable
.CommandText = "Q_omran"
End With
Set Rs1 = New Recordset
Rs1.Open Co, , adOpenStatic, adLockOptimistic
For I = 0 To Rs1.RecordCount - 1
Set rs = New Recordset: total = 0: PP = False
   rs.Open "select * from TBL_FSl where id =" & Rs1.Fields(0) & " and tag = 2", DB, adOpenStatic, adLockOptimistic
   If rs.RecordCount = 0 Then
   rs.AddNew
          rs.Fields(0) = Rs1.Fields(0)
          rs.Fields(1) = Rs1.Fields(1)
          rs.Fields(2) = Rs1.Fields(2)
          rs.Fields(3) = Rs1.Fields(3)
          rs.Fields(4) = 3

   For j = 5 To 40
       rs.Fields(j) = Rs1.Fields(j)
       Select Case Ks
       Case 1
           If j >= 29 Then
           If Rs1.Fields(j).Value >= 40 Then rs.Fields(j) = Rs1.Fields(j): total = total + Rs1.Fields(j) Else rs.Fields(j) = 0: PP = True
           End If
       Case 2
           If j >= 29 And j <= 40 Then
               If Rs1.Fields(j).Value >= 40 Then rs.Fields(j) = Rs1.Fields(j): total = total + Rs1.Fields(j) Else rs.Fields(j) = 0: total = 0: PP = True
           End If
       Case 3
           If j >= 29 And j <= 40 Then
               If Rs1.Fields(j).Value >= 40 Then rs.Fields(j) = Rs1.Fields(j): total = total + Rs1.Fields(j) Else rs.Fields(j) = 0: total = 0: PP = True
           End If
       End Select
   Next j
   If PP = False Then
          rs.Fields(41) = total
          rs.Fields(42) = Format(total / 1040 * 100, "00.00")
          If rs.Fields(42) < 50 Then rs.Fields(43) = "/": rs.Fields(44) = "راسب"
          If rs.Fields(42) >= 50 And rs.Fields(42) <= 64.99 Then rs.Fields(43) = "مقبول": rs.Fields(44) = "ناجح"
          If rs.Fields(42) >= 65 And rs.Fields(42) <= 74.99 Then rs.Fields(43) = "جيد": rs.Fields(44) = "ناجح"
          If rs.Fields(42) >= 75 And rs.Fields(42) <= 84.99 Then rs.Fields(43) = "جيد جداً": rs.Fields(44) = "ناجح"
          If rs.Fields(42) >= 85 And rs.Fields(42) <= 100 Then rs.Fields(43) = "ممتاز": rs.Fields(44) = "ناجح"
          rs.Fields(45) = 2
   Else: rs.Fields(41) = total: rs.Fields(42) = 0: rs.Fields(43) = "/": rs.Fields(44) = "راسب": rs.Fields(45) = 2: End If
   rs.Update ': MsgBox "تم جمع درجات الفصلين بنجاح", vbInformation + vbOKOnly + vbMsgBoxRight, "مجموع درجات الفصلين"
   Else: MsgBox "عفواً ... الرجاء التأكد من رصد درجات الفصلين", , "": Exit Sub: End If
   Rs1.MoveNext
Next
MsgBox "تم جمع درجات الفصلين بنجاح", vbInformation + vbOKOnly + vbMsgBoxRight, "مجموع درجات الفصلين"
End Sub
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: awidan76
#5
الحمد لله نجحتُ في جمع الدرجات داخل جدول الداتا قريد بهذا الكود، وأي تطوير لهذا الكود فمرحباً به

كود :
Dim X As Integer
For X = 0 To DataGrid1.ApproxCount - 1

DataGrid1.Col = 1
DataGrid1.Row = X
DataGrid1.Columns(10) = Val(DataGrid1.Columns(9)) + Val(DataGrid1.Columns(8))
Next
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: awidan76


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [vb6.0] طريقة تصدير بيانات الداتا ريبورت datareport لصيغة pdf hamada salah90 6 1,479 19-01-24, 07:59 PM
آخر رد: hamada salah90
  سؤال بخصوص الحلقات التكرارية / اضافة درجة بشروط haiderkh 14 4,068 19-01-24, 02:39 PM
آخر رد: cls
  [vb6.0] سؤال كيف يتم تحديد عدد مرات تنصيب الملف التنفيذي لبرنامج Hassan.syria 2 193 02-01-24, 10:07 AM
آخر رد: Hassan.syria
  بخصوص اعادة الترقيم abde6726 4 299 12-12-23, 02:01 PM
آخر رد: abde6726
  سؤال بخصوص الكتيف ربورت abde6726 2 324 20-11-23, 10:54 AM
آخر رد: abde6726
  [vb6.0] سؤال حول كيفية عمل زر كوماند داخل عمود Msflexgrid جلال اليمني 5 551 14-09-23, 05:12 AM
آخر رد: جلال اليمني
  [vb6.0] سؤال حول تحويل الرقم لعملة في Msflexgrid جلال اليمني 3 409 28-08-23, 07:19 PM
آخر رد: جلال اليمني
  نقل بيانات الجدول الى جدول اخر بعد تجميع البيانات haithamelareny 1 359 10-08-23, 11:54 PM
آخر رد: ahmedabdelaliem
  سؤال عن البحث بجدولين مختلفين ziadshhab 1 346 03-06-23, 10:35 PM
آخر رد: ahmedabdelaliem
Question [vb6.0] اكثر من سؤال حول كريستال ريبورت ؟؟ Microformt 0 477 20-05-23, 09:54 PM
آخر رد: Microformt

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم