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

نسخة كاملة : تحويل كود فيجوال6 إلى الدوت نت
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
هل يتكرم أحد الأساتذة الكرام والخبراء الأفاضل بتحويل كود فيجوال بيسك 6 إلى الدوت نت
الكود خاص بمجاميع الدرجات والمعدل والتقدير وعدد مواد الرسوب والنتيجة النهائية

الكود
كود :
Sub SaveTotl()

Set Rs = New Recordset
SQL = "select * from TBL_Final1"
Rs.Open SQL, DB, adOpenStatic, adLockOptimistic
Rs.MoveFirst
For j = 0 To Rs.RecordCount - 1
ct = 0: cc = 0

For I = 1 To 6
If Rs.Fields(20 + I).Value >= 50 Then ct = ct + Rs.Fields(20 + I).Value:  bo = False
If Rs.Fields(20 + I).Value < 50 Then ct = ct + Rs.Fields(20 + I).Value: cc = cc + 1: bo = True

Next I
Rs.Fields(28) = ct
Rs.Fields(31) = cc

Select Case cc
Case 0: Rs.Fields(32) = "ناجح"
Case 1 To 3: Rs.Fields(32) = "مكمل"
Case Is > 3: Rs.Fields(32) = "راسب"
End Select


tt = (ct / 600) * 100
Rs.Fields(29) = tt
If tt >= 85 Then Rs.Fields(30) = "ممتاز"
If tt >= 75 And tt <= 85 Then Rs.Fields(30) = "جيد جداً"
If tt >= 65 And tt <= 75 Then Rs.Fields(30) = "جيد"
If tt >= 50 And tt <= 65 Then Rs.Fields(30) = "مقبول"

Rs.Update
Rs.MoveNext
Next j

End Sub

Function aa(ss As Integer)
Select Case cc
Case 0: Rs.Fields(32) = "ناجح"
Case 1 To 3: Rs.Fields(32) = "مكمل"
Case Is > 3: Rs.Fields(32) = "راسب"
End Select
End Function

وهذا مثال صغير على الفكرة بالفيجوال بيسك 6
[attachment=29527]
مرحبا بك
جرب الكود التالي الذي تحويله :
ولا تنس إضافة مرجع references لمكتبة
Microsoft ActiveX Data Objects
كود :
Sub SaveTotl()
   Dim Rs As New ADODB.Recordset
   Dim SQL As String = "select * from TBL_Final1"
   Rs.Open(SQL, DB, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
   Rs.MoveFirst
   Dim j As Integer
   For j = 0 To Rs.RecordCount - 1
       Dim ct As Integer = 0
       Dim cc As Integer = 0
       Dim bo As Boolean = False

       Dim I As Integer
       For I = 1 To 6
           If Rs.Fields(20 + I).Value >= 50 Then
               ct += Rs.Fields(20 + I).Value
               bo = False
           ElseIf Rs.Fields(20 + I).Value < 50 Then
               ct += Rs.Fields(20 + I).Value
               cc += 1
               bo = True
           End If
       Next I

       Rs.Fields(28).Value = ct
       Rs.Fields(31).Value = cc

       Select Case cc
           Case 0
               Rs.Fields(32).Value = "ناجح"
           Case 1 To 3
               Rs.Fields(32).Value = "مكمل"
           Case Is > 3
               Rs.Fields(32).Value = "راسب"
       End Select

       Dim tt As Double = (ct / 600) * 100
       Rs.Fields(29).Value = tt

       If tt >= 85 Then
           Rs.Fields(30).Value = "ممتاز"
       ElseIf tt >= 75 AndAlso tt <= 85 Then
           Rs.Fields(30).Value = "جيد جداً"
       ElseIf tt >= 65 AndAlso tt <= 75 Then
           Rs.Fields(30).Value = "جيد"
       ElseIf tt >= 50 AndAlso tt <= 65 Then
           Rs.Fields(30).Value = "مقبول"
       End If

       Rs.Update()
       Rs.MoveNext()
   Next j
End Sub

Function aa(ByVal cc As Integer)
   Select Case cc
       Case 0
           Rs.Fields(32).Value = "ناجح"
       Case 1 To 3
           Rs.Fields(32).Value = "مكمل"
       Case Is > 3
           Rs.Fields(32).Value = "راسب"
   End Select
End Function
(04-05-24, 01:45 AM)أبو خالد الشكري كتب : [ -> ]مرحبا بك
جرب الكود التالي الذي تحويله :
ولا تنس إضافة مرجع references لمكتبة
Microsoft ActiveX Data Objects
كود :
Sub SaveTotl()
   Dim Rs As New ADODB.Recordset
   Dim SQL As String = "select * from TBL_Final1"
   Rs.Open(SQL, DB, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
   Rs.MoveFirst
   Dim j As Integer
   For j = 0 To Rs.RecordCount - 1
       Dim ct As Integer = 0
       Dim cc As Integer = 0
       Dim bo As Boolean = False

       Dim I As Integer
       For I = 1 To 6
           If Rs.Fields(20 + I).Value >= 50 Then
               ct += Rs.Fields(20 + I).Value
               bo = False
           ElseIf Rs.Fields(20 + I).Value < 50 Then
               ct += Rs.Fields(20 + I).Value
               cc += 1
               bo = True
           End If
       Next I

       Rs.Fields(28).Value = ct
       Rs.Fields(31).Value = cc

       Select Case cc
           Case 0
               Rs.Fields(32).Value = "ناجح"
           Case 1 To 3
               Rs.Fields(32).Value = "مكمل"
           Case Is > 3
               Rs.Fields(32).Value = "راسب"
       End Select

       Dim tt As Double = (ct / 600) * 100
       Rs.Fields(29).Value = tt

       If tt >= 85 Then
           Rs.Fields(30).Value = "ممتاز"
       ElseIf tt >= 75 AndAlso tt <= 85 Then
           Rs.Fields(30).Value = "جيد جداً"
       ElseIf tt >= 65 AndAlso tt <= 75 Then
           Rs.Fields(30).Value = "جيد"
       ElseIf tt >= 50 AndAlso tt <= 65 Then
           Rs.Fields(30).Value = "مقبول"
       End If

       Rs.Update()
       Rs.MoveNext()
   Next j
End Sub

Function aa(ByVal cc As Integer)
   Select Case cc
       Case 0
           Rs.Fields(32).Value = "ناجح"
       Case 1 To 3
           Rs.Fields(32).Value = "مكمل"
       Case Is > 3
           Rs.Fields(32).Value = "راسب"
   End Select
End Function

بارك الله فيك أخي أبو خالد على سرعة ردّك
ولكن ظهر خطأ وسأرفق مثالاً بسيطاً بالدوت نت أتمنى منك مشكوراً أن تعدل عليه

هذا مثال صغير للتعديل عليه

[attachment=29528]

أسف أرفقتُ قاعدة البيانات الخطأ

هذه قاعدة البيانات الصحيحة
[attachment=29529]
بارك الله فيك أخي الكريم 3sem أجرب الكود وأعطيك النتيجة
أخي 3sem
الكود شغال 100% أعذرني على التأخير، وذلك لاكتمال الحصة الشهرية للنت.
المهم أن الكود يشتغل على أحسن ما يرام، وهذا كله بفضل الله تعالى ثم بمساعدتك أخي الكريم.
ولا أنسى أخي الحبيب أبو خالد على مساعدته ووقوفه الدائم مع الأعضاء، فله الشكر والتقدير.