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

كل الانشطه

هذه الصفحة تحدث تلقائياً

  1. الساعة الأخيرة
  2. ان شاء الله يعمل معي استاذ والان عندي مشكلة في تحميل الملفين المرفقين من طرف الاستاذ جعفر مانعرف ضعف الانترنت ام الملفين بهما اشكالية
  3. Today
  4. تم تعديل الملف ::::::::::::: عدلنا الحقل CorrectionCommittee في الجدول Teachers الى تاريخ/وقت عدلنا الكود تحت الزر بهذا الشكل ........ Dim db As DAO.Database Dim rsA As DAO.Recordset, rsB As DAO.Recordset Dim rsRooms As DAO.Recordset, rsDays As DAO.Recordset, rsTarget As DAO.Recordset Dim supervisionDate As Date, roomName As String Dim teacherAssignedA As Boolean, teacherAssignedB As Boolean Dim dayKey As String Dim safeName As String Dim teacherName As String On Error GoTo ErrorHandler Set db = CurrentDb() ' 1. التهيئة: مسح الجدول وتصفير العدادات db.Execute "UPDATE Teachers SET SupervisionCount = 0" db.Execute "DELETE FROM TeacherAssignment" ' 2. التحقق من توفر عدد كافٍ من المعلمين Dim totalSupervisionsNeeded As Long Dim availableA As Long, availableB As Long Dim daysCount As Long, roomsCount As Long daysCount = DCount("*", "SupervisionDays") roomsCount = DCount("*", "ExamRooms") totalSupervisionsNeeded = daysCount * roomsCount ' معلم A ومعلم B لكل قاعة ' حساب المعلمين المتاحين مع مراعاة جميع شروط الاستثناء ' (هنا نستخدم شرط التحقق من تاريخ المراقبة فقط) availableA = DCount("*", "Teachers", "TeacherCategory = 'A' " & _ "AND (ExamDate Is Null OR ExamDate Not In (SELECT SupervisionDate FROM SupervisionDays))") availableB = DCount("*", "Teachers", "TeacherCategory = 'B' " & _ "AND (ExamDate Is Null OR ExamDate Not In (SELECT SupervisionDate FROM SupervisionDays))") If availableA < totalSupervisionsNeeded Or availableB < totalSupervisionsNeeded Then Dim response As VbMsgBoxResult response = MsgBox("تحذير: عدد المعلمين غير كافي!" & vbCrLf & _ "المطلوب: " & totalSupervisionsNeeded & " معلم A و " & totalSupervisionsNeeded & " معلم B" & vbCrLf & _ "المتاح: " & availableA & " معلم A و " & availableB & " معلم B" & vbCrLf & _ "هل تريد المتابعة مع وضع 'غير مغطاة' للقاعات غير المكتملة؟", _ vbYesNo + vbExclamation, "تنبيه") If response = vbNo Then MsgBox "تم إلغاء التوزيع بناءً على طلبك.", vbInformation Exit Sub End If End If ' 3. بدء عملية التوزيع Set rsDays = db.OpenRecordset("SELECT * FROM SupervisionDays ORDER BY SupervisionDate", dbOpenDynaset) Set rsRooms = db.OpenRecordset("SELECT * FROM ExamRooms ORDER BY RoomName", dbOpenDynaset) Set rsTarget = db.OpenRecordset("TeacherAssignment") ' إنشاء قاموس لتتبع المعلمين في كل يوم على حدة Dim dailyTeachers As Object Set dailyTeachers = CreateObject("Scripting.Dictionary") ' حلقة على كل الأيام Do While Not rsDays.EOF supervisionDate = rsDays!supervisionDate ' تهيئة القاموس لهذا اليوم فقط (ليسمح بالتكرار في الأيام الأخرى) dailyTeachers.RemoveAll ' حلقة على كل القاعات rsRooms.MoveFirst Do While Not rsRooms.EOF roomName = rsRooms!roomName teacherAssignedA = False teacherAssignedB = False ' تعيين معلم فئة A Set rsA = db.OpenRecordset("SELECT * FROM Teachers WHERE TeacherCategory='A' " & _ "AND (ExamDate Is Null OR ExamDate <> #" & Format(supervisionDate, "mm/dd/yyyy") & "#) " & _ "AND (CorrectionCommittee Is Null OR CorrectionCommittee <> #" & Format(supervisionDate, "mm/dd/yyyy") & "#) " & _ "ORDER BY SupervisionCount ASC", dbOpenDynaset) If Not rsA.EOF Then rsA.MoveFirst Do Until rsA.EOF Or teacherAssignedA teacherName = rsA![teacherName] If Not dailyTeachers.Exists(teacherName) Then ' تعيين المعلم A rsTarget.AddNew rsTarget!teacherName = teacherName rsTarget!TeacherCategory = "A" rsTarget!ExamRoom = roomName rsTarget!supervisionDate = supervisionDate rsTarget.Update ' تحديث العداد safeName = Replace(teacherName, "'", "''") db.Execute "UPDATE Teachers SET SupervisionCount = SupervisionCount + 1 WHERE [TeacherName] = '" & safeName & "'" ' إضافة المعلم للقاموس اليومي فقط dailyTeachers.Add teacherName, 1 teacherAssignedA = True End If rsA.MoveNext Loop End If rsA.Close ' إذا لم يتم تعيين معلم A، تسجيل "غير مغطاة" If Not teacherAssignedA Then rsTarget.AddNew rsTarget!teacherName = "غير مغطاة" rsTarget!TeacherCategory = "A" rsTarget!ExamRoom = roomName rsTarget!supervisionDate = supervisionDate rsTarget.Update End If ' تعيين معلم فئة B Set rsB = db.OpenRecordset("SELECT * FROM Teachers WHERE TeacherCategory='B' " & _ "AND (ExamDate Is Null OR ExamDate <> #" & Format(supervisionDate, "mm/dd/yyyy") & "#) " & _ "AND (CorrectionCommittee Is Null OR CorrectionCommittee <> #" & Format(supervisionDate, "mm/dd/yyyy") & "#) " & _ "ORDER BY SupervisionCount ASC", dbOpenDynaset) If Not rsB.EOF Then rsB.MoveFirst Do Until rsB.EOF Or teacherAssignedB teacherName = rsB![teacherName] If Not dailyTeachers.Exists(teacherName) Then ' تعيين المعلم B rsTarget.AddNew rsTarget!teacherName = teacherName rsTarget!TeacherCategory = "B" rsTarget!ExamRoom = roomName rsTarget!supervisionDate = supervisionDate rsTarget.Update ' تحديث العداد safeName = Replace(teacherName, "'", "''") db.Execute "UPDATE Teachers SET SupervisionCount = SupervisionCount + 1 WHERE [TeacherName] = '" & safeName & "'" ' إضافة المعلم للقاموس اليومي فقط dailyTeachers.Add teacherName, 1 teacherAssignedB = True End If rsB.MoveNext Loop End If rsB.Close ' إذا لم يتم تعيين معلم B، تسجيل "غير مغطاة" If Not teacherAssignedB Then rsTarget.AddNew rsTarget!teacherName = "غير مغطاة" rsTarget!TeacherCategory = "B" rsTarget!ExamRoom = roomName rsTarget!supervisionDate = supervisionDate rsTarget.Update End If rsRooms.MoveNext Loop rsDays.MoveNext Loop ' 4. التنظيف وإغلاق الموارد rsTarget.Close rsRooms.Close rsDays.Close Set rsTarget = Nothing Set rsRooms = Nothing Set rsDays = Nothing Set rsA = Nothing Set rsB = Nothing Set db = Nothing Set dailyTeachers = Nothing MsgBox "تم الانتهاء من التوزيع بنجاح!" & vbCrLf & _ "تم تعيين معلم A ومعلم B لكل قاعة" & vbCrLf & _ "مع مراعاة الشروط التالية:" & vbCrLf & _ "- عدم تكرار المعلم في نفس اليوم" & vbCrLf & _ "- السماح بتكرار المعلم في أيام مختلفة" & vbCrLf & _ "- استثناء المعلمين الذين لديهم اختبار في نفس اليوم" & vbCrLf & _ "- استثناء المعلمين الموجودين في لجنة تصحيح لنفس تاريخ المراقبة فقط" & vbCrLf & _ "- العدالة في التوزيع حسب عدد المراقبات السابقة", _ vbInformation, "إنجاز" Exit Sub ErrorHandler: MsgBox "حدث خطأ أثناء التنفيذ: " & vbCrLf & _ "رقم الخطأ: " & Err.Number & vbCrLf & _ "الوصف: " & Err.Description & vbCrLf & _ "في الإجراء: " & Erl, vbCritical, "خطأ" Resume Next تقضل المرفق ....................... ‏‏NA_3.accdb
  5. يعمل بدون مشاكل Windows 11 Pro الاصدار 24h2 واوفيس 2021 " 64 بت" فقط عدلت ليتوافق مع اصدار 64
  6. الكلام دا لي أخي الفاضل ولا أرسلته لي وتقصد ترسله لشخص آخر
  7. وانا كذلك ، ولكني ارفقت ملفين بعد تنظيفها 🙂
  8. عمل على جهازي بدون مشاكل الوندز 2010 .. 64 الاوفيس 2010 .. 32
  9. لم يقبل التحويل لذا فتحت قاعدة 2003 وجلبت اليها جميع الكائنات الموجودة لا اعلم ان كانت ستعمل معك على الوجه الأكمل وعذرا على التأخر في تحقيق طلبك db2003.rar
  10. تمام بالنسبة للشهادات
  11. تفضل 1628.2_Import_New_DB_Compact_Repair.accdb 1628.1_Fixed_Errors_Decompile_CompactRepair_4.accdb
  12. اليك البرنامج كاملا استاذ جعفر تم تغيير الاسماء و الالقاب نظرا للخصوصيات الشخصية وهو الان بدون مشاكل على ونداوز 7و 8 اوفيس2010 أتمنى ان اجد حلا لكي يفتح على ونداوز 2010اوفيس 2010 بدون مشاكل حذف الاكواد ش ع 2025.rar
  13. وعليكم السلام ورحمة الله وبركاته.. كان لي تجربة شخصية مع أخي @سلمان الشهراني في أحد المواضيع هنا . حاول التواصل معه عله يفيدك 🤗 .
  14. اخى محمد هشام الكود يعمل بكفاءه عاليه جزاك الله خيرا اخى محمد عامل السرعه فى كود تحويل الملفات هل الغاء الرسائل يعمل على زيادة سرعة الكود
  15. أهلاُ بحضرتك ياهندسة دى صور المشاكل اللى بتوجهنى عند فتح الملف ياريت لو تحاول تفتح اى اسم الاسماء مثل النخلة البحرية بتظهر الرسائل الموجود فى الصور
  16. @ابوخليل سلمت وبارك الله فيك ورزقك من حيث لاتحتسب 🤗 اشكرك كثيرا
  17. جربي الآن اضفت معيار معرف العميل في مصدر بيانات التقرير Bill_info subreport databasebalance4.rar
  18. لا يصلح هكذا بل الافضل ... زر للصف الأول والثاني يعرض تقرير خاص الفصلين الدراسيين زر للصف الثالث يعرض الفصلين الدراسيين زر للصفوف 4 ، 5 ، 6 يعرض الفصلين الدراسيين ........... العمل بحاجة الى اعادة ترتيب في نموذج التقارير واضافة ازرار وتعديل الاكواد المصاحبة ايضا نحن بحاجة الى تصحيح الاكواد داخل الشهادة السابقة والشهادات الجديدة
  19. @ابوخليل انظر عند اختيار كشف حساب عميل معين يظهر معه حساب عميل اخر
  20. يمكن اجاريك في تخصيص شهادة للصفوف الدنيا .. لحصر ظهور موادهم فقط ولكن : هذا غير مفهوم المواد كلها صفر .. ليش تعرض درجة المواد هل تعلم من اجل اخراج هذا التقرير يجب عمل اكثر من استعلام .. استعلام تجميعي يخص الاصفار ثم استعلام جدولي يعرض الأصفار لم افهم الى اين تريد ان تصل يكفي حصر الطلاب بقائمة في تقرير .. وعنوان التقرير (( الحاصلين على اصفار في النتيجة ))
  21. @ابوخليل يعطيك العافية سلمت
  22. المعذرة نحن نلهو ونلعب هنا .. فضلا قليلا من ادب طالب العلم تفضلي .. هذه النتيجة في التقرير يمكنك العمل والتعديل على بقية التقارير كما في التقرير Bill_info subreport databasebalance3.rar
  23. لم افتح التقارير عملت لك الرصيد الآلي على النموذج المفترض انك تخبرني هل ما تم في النموذج هو المطلوب ؟ التقارير شيء آخر يوجد لديك اكثر من تقرير .. اي تقرير تريد التعديل عليه ..؟
  24. سلام عليكم ورحمة الله وبركاته حاليا جالس احول اربط مع هية الزكاة والدخل وشفت الموضع إلى هنا وحملت الملفات وجالس اطبق بس هل احد منكم ضبط معه وربط فعلا وهل احصل عند أحد منك برنامج جهاز أو وسيط لربط. خبرتي ضعيفه شوي او احد يشاركنا تجربته في الموضع وشكرا.
  1. أظهر المزيد
×
×
  • اضف...

Important Information