اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

يرجى المساعدة في تعديل كود توزيع الدارسين


obaid70
إذهب إلى أفضل إجابة Solved by kanory,

الردود الموصى بها

السلام عليكم

وجدت هذا الملف في منتدانا العزيز وقمت بالتعديل عليه وفق حاجتي وهو مثال رائع للاستاذ عبد الفتاح كيرة 

أرجو من الاخوة الخبراء التعديل على الكود بحيث عند وجود درجة في نهاية الاختيار مشابهة للدرجة التي شملها الاختيار وفق العدد المحدد الموضوع في الاعلى ان يضم كل العلامات المتساوية ويضع حرف f امامها بشكل تلقائي كما في الصور العدد المطلوب هو 16 وآخر درجة وقف عندها الاختيار هي 10 لكن يوجد بعد هذه العلامة طالبين لهما نفس الدرجة فيجب ضمها الى الاختيار ووضع حرف f 

عذرا على الاطالة 

image.png.7dcbce888cbe1b2c539495d153416711.png

‏‏test1.accdb

رابط هذا التعليق
شارك

اولا شكرا على الرد السريع

اخي الكريم 16 هي عدد الطلاب المراد اختيارهم وليس درجة 

يعني عند وضع العدد 16 سوف يقوم البرنامج باختيار 16 طالب ووضع حرف f في الحقل رقم القاعة فكانت النتيجة ان آخر طالب درجته 10 

المطلوب ان يختار كل الطلاب الذين لديهم درجة 10 ووضع حرف f 

في المثال الوارد في الصور يصبح عدد الطلاب 18 طالبا لديهم حرف f

رابط هذا التعليق
شارك

جرب الكود هذا 

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim xNUMBER As Double
    Set db = CurrentDb
    Set rs = db.OpenRecordset("T1", dbOpenDynaset)
    xNUMBER = mh1.Value
    Do While Not rs.EOF
        If rs!daraja >= xNUMBER Then
            rs.Edit
            rs!CurrFasl = "F"
            rs.Update
        Else
            rs.Edit
            rs!CurrFasl = ""
            rs.Update
        End If

        rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing

    db.Close
    Set db = Nothing
    
    MsgBox "DONE"
    Me.Form.Requery

 

رابط هذا التعليق
شارك

اخي الكريم جزاك الله الف خير على المتابعة 

لكن عندك اشكالية في الموضوع الرقم 12 هو عدد الطلاب وليس له علاقة بالدرجات 

انا اريد 12 طالب لكن اذا كان هناك تماثل او تساوي في اخر درجة يتم اختيار الطلاب الذين لهم نفس الدرجة الاخيرة ويضمهم الى قائمة الاختيار

ارجو ان تكون وضحت الفكرة

قمت بتعديل الصورة للتوضيح

وألف شكر لجهودك

ما قمت به ممتاز جدا لكن كان يجب ان يقف التوزيع عند آخر علامة 20 ولا يأخذ الطالب الذي علامته 15

image.png.e76ba3d4a43df05556762ebb5baea48f.png

رابط هذا التعليق
شارك

جرب الكود ده 

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim recordCount As Integer
    Dim updateCount As Integer
    Dim xNUMBER As Double

    Set db = CurrentDb
    Set rs = db.OpenRecordset("t1", dbOpenDynaset)
    xNUMBER = mh1.Value

    Do While Not rs.EOF
        If rs!daraja > 0 Then
            If updateCount < 12 Then
                rs.Edit
                rs!CurrFasl = "F"
                rs.Update
                updateCount = updateCount + 1
            Else

                Exit Do
            End If
        End If

        rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing

    db.Close
    Set db = Nothing

 

رابط هذا التعليق
شارك

بعرف اني تعبت معي سامحني

الكود يجب ان ينظر الى درجة آخر طالب وقع ضمن الاختيار فإذا وجد بعده طالب له نفس الدرجة يدخل ايضا ضمن الاختيار

اخي الكريم لاحظ الصورة الاولى قبل تعديل الكود اخترت 3 طلاب فكانت درجة الطالب الثالث هي 30 لكن يوجد 7 طلاب ايضا لهم نفس الدرجة وهي 30 فالمطلوب اضافتهم الى المجموعة ووضع حرف f لهم بسبب تماثل الدرجة فتكون النتيجة كما في الصورة الثانية

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

 

02.png.256824c64b404dd8dbb29ff5b1422742.png01.png.91e293a5499063e7867ff4db64a8d3e4.png

رابط هذا التعليق
شارك

بص انا تهت منك 

اكتبلى الشروط بتعتك رياضيا وانا انفذ 

لان كده عندي احساس غيرب ان فى حاجه غلط (او انا مش فاهمك)

يعنى اكتبلى الشروط بشكل كامل وواضح قدر الامكان انت عاوز عدد ولا عاوز درجات 

 

وعموما هحاول اجرب فكره ثانية يمكن تنفع لحد ما ترد 

 

 

  • Like 1
رابط هذا التعليق
شارك

الله يطولي بعمرك

محتاج هالموضوع اليوم

انا رح اشرحلك مرة تانية

انا بدي اختار3 طلاب بحط رقم 3 فوق بمربع قاعة رقم 1 ماشي؟

بضغط ع زر ابدأ التوزيع فبيختار اول 3 طلاب 

الشرط هوا لما اختارلي 3 طلاب كانت علامة آخر واحد 30 بس في بعدو طلاب الهم نفس العلامة 30 بدياهم ضمن القاعة

يعني في هاي الحالة لازم ياحد كلشي علامتو 30 ويحط حرف f الهم

رابط هذا التعليق
شارك

  • أفضل إجابة
5 ساعات مضت, obaid70 said:

انا بدي اختار3 طلاب بحط رقم 3 فوق بمربع قاعة رقم 1 ماشي؟

بضغط ع زر ابدأ التوزيع فبيختار اول 3 طلاب 

الشرط هوا لما اختارلي 3 طلاب كانت علامة آخر واحد 30 بس في بعدو طلاب الهم نفس العلامة 30 بدياهم ضمن القاعة

يعني في هاي الحالة لازم ياحد كلشي علامتو 30 ويحط حرف f الهم

مشاركة مع الغالي @عمر ضاحى جرب واعلمنا بالنتيجة <><><><><><><><><>

DoCmd.GoToRecord , , acFirst
For i = 1 To Me.mh1
        kan = ""
        If Me.daraja <> "" Then
            Me.CurrFasl = "F"
            kan = Me.daraja
        End If
DoCmd.GoToRecord , , acNext
Next i
            For ii = 1 To Me.Recordset.RecordCount
                If Me.daraja = kan Then
                 Me.CurrFasl = "F"
                 DoCmd.GoToRecord , , acNext
                End If
            Next ii
MsgBox "لقد تم  بنجاح", vbOKOnly

 

تم تعديل بواسطه kanory
  • Like 2
رابط هذا التعليق
شارك

جزاكم الله ألف ألف خير

هذا هو المطلوب تماما

شكرا استاذنا  kanory  متعكم الله بالصحة والعافية وجعله في ميزان حسناتكم

والشكر موصولا للاستاذ عمر ضاحي جزاكم الله ألف خير

 

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information