اذهب الي المحتوي
أوفيسنا

توزيع اللجان


إذهب إلى أفضل إجابة Solved by hussinabdo1111@hotmail.com,

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

السلام عليكم اخوتي الكرام لدي مرفق وهو عبارة عن توزيع اللجان علي الطلاب وارقام الجلوس 

بحيث بعد اختيار الصف واختار عدد اللجان داخل الصف وبداية اللجنة يتم توزيع اللجان حسب العدد المطلوب لكل صف وايضا بداية كل لجنة الصورة توضح المطلوب 

ولكم منا جزيل الشكر 

اعداد اللجان.png

اعداد اللجان.rar

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

هل التوزيع يكون بشكل عشوائي أم له نظام معين ؟
ماذا تقصد بـ بداية اللجنة ؟ و بداية رقم الجلوس ؟

من الجيد لو تعطينا نموذج للشكل النهائي الذي تريده ... لكي لا يكون العمل مبني على تقديرنا الشخصي 🙂 

تم تعديل بواسطه Moosak
رابط هذا التعليق
شارك

أرجو منك أخى الفاضل ان تنتبه الى ما أشار اليه استاذنا أبو البشر

بالقاعدة كل ما تبتغى أرقام الجلوس حبيبى تدخل أولا  ثم الخطوة التالية تبدأ تسكن اللجان من رقم كذا الى كذا لجنه 1 مثلا وهكذا

                                                     بالتوفيق

                                                                                                             

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

أخي حسين تفضل قمت بعمل المطلوب 🙂 :

image.png.a6c1c9288d09104d5389749257a72a34.png

 

ولكن انتبه إلى أن عدد أرقام الجلوس التي وضعتها هي أقل من العدد الفعلي للطلاب ... لذلك بعض الطلاب لم يتم توزيعهم ..

image.png.111d8d66aa553b41290be09f01cba28c.png

وهذا الكود الذي تم استخدامه :

Private Sub LejanBtn_Click()

On Error GoTo HandleError
    
    Dim db As DAO.Database
    Dim rsP As DAO.Recordset
    Dim rsL As DAO.Recordset
    Dim x As Integer

    CurrentDb.Execute "UPDATE astkbal SET astkbal.golos1 = 0, astkbal.lagna = 0;"
    
    Set db = CurrentDb
    Set rsP = db.OpenRecordset("tb_Prepare")
    If Not rsP.BOF And Not rsP.EOF Then
        rsP.MoveFirst
        While (Not rsP.EOF)
            Set rsL = db.OpenRecordset("SELECT * FROM astkbal WHERE [saf]= '" & rsP!saf & "' and lagna = 0 And golos1 = 0;")
                    If Not rsL.BOF And Not rsL.EOF Then
                        rsL.MoveFirst
                            For x = rsP!frist_golos To rsP!end_golos
                                rsL.Edit
                                rsL!lagna = rsP!lagna
                                rsL!golos1 = x
                                rsL.Update
                                rsL.MoveNext
                            Next x
                    End If
            rsP.MoveNext
        Wend
    End If
    
    rsP.Close
    rsL.Close
    Set db = Nothing
    Set rsP = Nothing
    Set rsL = Nothing
    
    Me.Requery
    MsgBox "تم توزيع اللجان بنجاح"
    
HandleExit:
Exit Sub

HandleError:
If Err.Number = 0 Then
Exit Sub
Else
MsgBox Err.Number & vbNewLine & vbNewLine & Err.Description
End If
Resume HandleExit
End Sub

 

اعداد الجان_تعديل.rar

تم تعديل بواسطه Moosak
رابط هذا التعليق
شارك

أولا : متأكد أن إجايتك هي أفضل إجابة ؟  😏

image.png.70e4a94cb83d214cafab48ff37c1aa63.png

ثانيا هذا شرح مترجم للكود :

يبدأ الكود بالتصريح عن المتغيرات التي سيتم استخدامها في البرنامج.

تم التصريح عن المتغير db ككائن DAO.Database ، وتم التصريح عن rsP ككائن DAO.Recordset.

يفتح الرمز بعد ذلك عبارة SQL لتحديث جميع السجلات في جدول astkbal بقيم 0 لحقول golos1 و lagna ، ولكن فقط إذا لم يتم تعيينها بالفعل على 0 (BOF).

إذا لم يتم العثور على سجلات (EOF) ، فإنه يمر عبر كل سجل حتى يعثر على سجل تم فيه تحديث كل من lagna و golos1 إلى الصفر (LOF).

ثم ينتقل للعثور على سجل آخر حيث تم تحديث lagna من قيمته الحالية ، والتي تم تعيينها مسبقًا بواسطة rsP! lagna = rsP! lagna؛ تستمر هذه الحلقة حتى تصل إلى x = rsP! frist_golos-rsP! end_golos أو حتى تصل إلى نهاية الملف (EOF) في rsL.

بعد تحديث جميع السجلات في قاعدة البيانات ، يتم إغلاقها قبل إغلاق نفسها باستخدام Close ().

يستخدم الكود لتحديث جدول الاستقبال من أجل توزيع الطلاب على الفصول الدراسية. يبدأ الكود بفتح مجموعة سجلات لـ tb_Prepare. يتم فحص BOF و EOF قبل متابعة الحلقة. إذا لم يكن هناك خطأ ، فسيستمر مع حلقة while التي ستتكرر خلال جميع السجلات في rsP حتى يتم الوصول إلى rsL.

بمجرد الوصول إلى rsL ، سيتم الانتقال إلى السجل التالي وتحريره بحيث يتم تعيين lagna = 0 و golos1 = 0 لكل طالب في صف rsL.

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information