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

Gamal.Saad

الخبراء
  • Posts

    211
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    3

كل منشورات العضو Gamal.Saad

  1. File Dialog يحتاج لاضافة Reference : MicroSoft Office 14 Object Library ورقم 14 هو اصدار الأوفيس ويتغير حسب ما لديك بنظام التشغيل
  2. بعد اذن أستاذ أبوياسين : الخطأ بسبب قيمة NULL لمربع النص X بالنموذج والحل: اكتب بعد السطر الرابع (بعد تعيين قيمة Y ) : x = y
  3. يارب يبارك فيك ... ويعطيك مثلما تدعو ... ويزيدك من فضله
  4. أنت عملت في التقرير control Source لمربع نوع الانذار الكود السابق وهو تقريبا صحيح لكن طبعا لن يتم تنفيذه لأن الشرط في جميع حالات Switch يحتوي على معامل مقارنة + قيمة المقارنة ولكن لا يحتوى على العنصر المراد تطبيق الشرط عليه بمعنى اكتبه في التقرير هكذا : =Switch([S]>=26;"راسب بسبب الغياب";[S]>=25;"انذار نهائي";[S]>=20;"إنذار رابع";[S]>=15;"إنذار ثالث";[S]>=10;"إنذار ثاني";[S]>=5;"انذار اول") وفي الاستعلام هكذا : A: Switch([All_Sum]>=26;"راسب بسبب الغياب";[All_Sum]>=25;"انذار نهائي";[All_Sum]>=20;"إنذار رابع";[All_Sum]>=15;"إنذار ثالث";[All_Sum]>=10;"إنذار ثاني";[All_Sum]>=5;"انذار اول")
  5. تم قسمة مجموع الهروب على 4 راجع النتيجة غياب 7.mdb
  6. جهازك أصيب بأحد أنواع البرمجيات الخبيثة Malware اختصار ل Malicious Software وهذا النوع يسمى : فيروسات الفدية Ransomware و يقوم بالدخول الي جهازك و تشفير ملفاتك علي القرص الصلب و يطلب منك فدية او مال لفك تشفير ملفاتك وعندما تتواصل إما تدفع الفدية وتحصل علي مفتاح فك التشفير وإما تتعرض لضرر أكبر وعملية نصب واختراق جديد وبرامج الحماية من الفيروسات المفترض لا تزيل الفيروسات فقط وإنما تحتوى على أدوات لازالة باقي أنواع المالوير Malware والمعروف منها : Virus Worm Trojan Spyware Adware Crimeware Crapware Bot والحل : أقترح تبحث في الانترنت عن أداة لإزالة Ransomware pezi أو قم بتحميل برنامج قوي للحماية من الفيروسات أو نظام تشغيل به جدار ناري محدث Firewall وبعض الأحيان تجد ملفات تم تغيير امتداداها ولم يحدث لها تشفير لكن هذا احتمال ضعيف بس جرب تغير الامتداد مش هتخصر حاجة
  7. عند فتح التقرير ضع المعيار : DoCmd.OpenReport "rpt_To_Father_Fail", acViewPreview, , "SumOfwww > 25" وبهذا سيقوم باظهار السجل بالكامل المحتوى على هذا الشرط ويخفي باقي السجلات غياب 6.mdb
  8. فعلا الكودين متطابقين من النظرة الأولى وبصراحة أنا لم ألاحظ أي خطأ بالكود تبعك بس لما جربته ونسخته كما هو أعطى رسالة خطأ وعندما كتبته بنفسي اشتغل تمام وزي الفل ولما رجعت أنسخ كودك أعطى خطأ ولما كتبته بنفسي وأنا أنظر إلى كودك أعطي رسالة خطأ
  9. شهر فبراير أو شهر شباط February هو الشهر رقم 2 شهر إبريل أو شهر نيسان April هو الشهر رقم 4 وشهر مايو أو شهر آيار May هو الشهر رقم 5 وهو المسجل بالجدول والمفروض بجدول الأشهر أن يكون ترتيب شباط هو رقم 2 وليس رقم 5 ID month_name 1 كانون الثاني 2 شباط 3 آذار 4 نيسان 5 آيار 6 حزيران 7 تموز 8 آب 9 أيلول 10 تشرين الأول 11 تشرين الثاني 12 كانون الأول جرب المرفق غياب 5 وشغل شهر مايو آيار غياب 5.mdb
  10. يعطيك رسالة خطأ أم ماذا ؟ لأنه التقرير يعمل عندي التقرير التسلسل به أبجدي ، وطبعاً ترتيب اسم : "علي" قبل اسم "قاسم" ع غ ف ق ك ل م ن ه و ي على ما أتذكر وممكن تجعل الترتيب حسب الكود كما بالجدول مفيش مشكلة فعلاً يوجد للطالب "علي" غياب واحد فقط مسجل كما بالمثال المرفق الأخير غياب 3 وهو يوم 12/5/2020 وهو موجود بالجدول Subst وموجود بالاستعلام Qry_Student_Type وموجود بالتقرير Form3 وٍسأرفق لك تعديل الترتيب حسب الكود بالجدول غياب 4.mdb
  11. يا باشا ايه اللمحات الفنية دي دي لوحة فنية مش نموذج أنا أقترح تعلقها على سور المدرسة هههههه نعم حدثت مشكلة ، ومشكلة كبيرة كمان وهذه المرة ربنا ستر في التقرير مربع نص اسمه month2 يأخذ قيمته من كومبوبكس month_no داخل نموذج Form1 وطبعا حاليا Form1 تغير إلى Form3 والتحديث التلقائي لاسم الكائن لا يتم إلا في أجزاء معينة من البرنامج وفي أجزاء أخرى لا يتم مثل داخل كود Vba أو كود SQL أو خصائص control source المهم إما ترجع اسم Form1 أو تغير مصدر بيانات مربع month2 بالتقرير وتشير إلى Form3
  12. Me.Recordset.FindFirst "[inv_id_h] = 0 And [inv_type_h] = 2" Me.Recordset.FindFirst "[inv_id_h] = " & Me.inv_id_h & " And [inv_type_h] = " & Me.inv_type_h & "" شغال ، جرب المرفق مثال اوفيسنا الانتقال الى سجل محدد 2.accdb
  13. تمام جرب فكرة الحل المرفق وهي باختصار : تقرير عن جميع الطلبة وأمام كل منهم يوم محدد من الشهر هل غاب أم لا (Choice box) وهو يوضح أيام الغيابات فقط (وطبعا ممكن نضيف باقي الحالات شرط أن توضح مكانها بالتقرير) مربع المجموع ومصدر بياناته مجموع قيم مربعات الاختيار choice وطبعا هيكون المجموع بالسالب ووقتها تضيف دالة ABS واستعلام واحد فقط أهم به حقل كود الطالب واسمه وفي التقرير كل مربع اختيار عن يوم محدد به معادلة عامة : DCount("MainId";"subst";" Day([Tdate]) = '1' And Month([Tdate]) = " & [Reports]![قيمة من التقرير وممكن من النموذج] & " AND [MainId] = " & [Reports]![rpt_Absent_All]![MainId] & " And [type] = 'K'") ومعنى الشروط لكي يكون قيمة مربع الاختيار = -1 هي: Day([Tdate]) = '1' اليوم الأول من التاريخ المسجل بالجدول الموضح للحالة غياب أم هروب وخلافه Month([Tdate]) = أن يكون قيمة الشهر لهذا التاريخ تساوي قيمة الشهر المختار من النموذج أو التقرير Type = 'K' طبعاً حالة الغياب MainID = كود الطالب غيابات 2.mdb
  14. تمام الجزء الأول: الجزء الثاني الجزء الثالث أجيبك على الجزء الثالث كما أرى بالصورة أنت تحتاج أن تسجل أمام كل يوم من الشهر هل تغيب الطالب أم لا ؟ أم تحتاج أن تسجل مجموع الغياب خلال الشهر في مربع نص خاص بذلك أمام كل طالب ؟
  15. جرب تعمل حقل جديد بالاستعلام مثلاً اسمه www: www : w + ww وفي التجميع بيكون Expression
  16. الله يكرمك أستاذنا العزيز ، هذا نتيجة جزء مما استفدته منك ومن باقي الأساتذة بالمنتدى، والزميل khasem يتحمل المسئولية عن عدم انتشار الفيروس بين طلاب قاعاته الموزعين بالبرنامج 😊 ربنا يحفظه وأبناءنا وطلابنا وأهالينا والمسلمين من كل سوء ممتاز ...وحلول مليئة بالافكار المبتكرة - وهذا هو جوهر الحل لذلك النوع من المواضيع أن يتم التفكير منطقيا أولاً في حل المشكلة ثم تطويع الاستعلامات و الكود للتنفيذ وبالطبع سأحتفظ بغالبية المواضيع مما ذكرت كمكتبة مرجعية للفكرة والتنفيذ وكدراسة لاحقاً لبعض الأكواد فيها وجزاكم الله خيرا أنت وكل من شارك فيها مقدماً يد العون للسائلين
  17. صدق الله العظيم وجزاكم خيراً أخي الكريم ورزقنا وإياكم بالجنة إن شاء الله هذا الترتيب للكائنات أجمل من الذي أرفقته لك أ . khasem
  18. أنا قلت أبعد الطلبة عن بعض علشان الوقاية من فيروس كورونا على العموم تنسيق التقرير تقدر تغيره لأي عدد من الأعمدة بس تراعي عرض الصفحة مع عرض كل عمود تقسيم والهوامش علشان يتم عرض المحتوى كاملا توزيع 25.accdb
  19. ههههههه ياباشا أنا مليش دعوة ، هما اللي طلبوا مساعدة الكمبيوتر من خصائص Group رقم القطاع اختر كما بالصورة : توزيع 24.accdb
  20. إن شاء الله ممكن في أقرب فرصة ، ولو تحب تضع كل طالب في ورقة ، ماشي
  21. شكرا أخي على دعواتك وربنا يوفقك بالبرنامج وأي مشكلة تظهر فيه أعلمني بها بالعكس أنا استفدت من البرنامج وتعلمت اشياء جديدة وأخرى تذكرتها بعدما نسيتها وبالمناسبة أنا صممت من قبل برنامج لتوزيع المعلمين عشوائيا على لجان الامتحانات بالمدارس لتجنب المحسوبية وبعد مجهود كبير كان أغلب المعلمين يقومون بالدعاء على الكمبيوتر وعلى من صمم البرنامج ههههه لأن المسئول الاداري بالتعليم وقتها رفض طلبي بوضع شرط للتوزيع أن لا يبتعد المعلم عن محل سكنه بالوحدة المحلية لوحدة محلية أخرى فكان تجمع حاشد من المعلمين لتقديم اعتذارات عن المشاركة باللجان وقالوا الكمبيوتر مش عارف يوزع ومش يراعي ظروف الناس علشان كده قلت لك خلي بالك وضع نفسك مكان المتأثرين بتنفيذ البرنامج حتى لو كانوا مدخلي البيانات
  22. تسلم يا غالي ممكن بعد التجربة زي ما تحب ، أنت فقط تحتاج تجربة الكود أنت قدر المستطاع أعطيت عنوان داخل الكود للأجزاء الرئيسية توضح عمل الكود والفكرة لتسهيل التعديل طالما سيكون القطاع يساوي عدد مقاعد القاعة مقسوما على 2 فليس هناك صعوبة الصعوبة كانت في عدد مقاعد القاعة لو 17 مقعد عدد فردي لأن مش هنعرف ناخد نصف مقعد يجلس عليه طالب والنصف الآخر بقاعة أخرى لذلك عدلت لك في اللوب Loop الخاص بالترقيم ليراعي وجود رقم فردي For i = 1 To Labs ' المرور على السجلات داخل الجدول لترقيم القاعات حسب عددها section_no = 1 Lab_no = Lab_no + 1 For h = 1 To 2 ' المرور على صفوف كل قاعة For j = 1 To Me.Rows_count / 2 '.......... عدد قطاعين بكل قاعة Call R("R") ' دالة اجرائية لتسجيل رقم القاعة ورقم القطاع If Not rsTbl.EOF Then rsTbl.MoveNext Next section_no = 2 If Val(Me.Rows_count) Mod 2 <> 0 Then '........ زيادة صف للعدد الفردي Call R("R") If Not rsTbl.EOF Then rsTbl.MoveNext End If Next If Val(Me.Rows_count) Mod 2 <> 0 And Not rsTbl.EOF Then rsTbl.MovePrevious Next وبالنسبة للتقرير قدر الامكان هذا تنسيقه ويناسب عدد مقاعد قليل داخل القاعة حتى تكون بصفحة واحدة للطباعة توزيع 23.accdb
  23. احتمال نعم كما بالصورة توزيع 21.accdb
  24. هناك 4 طرق توزيع للطلاب بالمرفق : 1 - "صف مختلف + مادة مختلفة" 2 - "نفس الصف أو صف مختلف + نفس المادة أو مادة مختلفة" 3 - "صف مختلف + نفس المادة" 4 - "صف مختلف وتجاهل المادة" وهذا يحافظ على الترنيب طبقاً لرقم الجلوس والصف إن كانوا في ترتيب تسلسلي ولكن جميعها يستند لتوزيع المقعد الأول في كامل القاعات أولاً وهذا هو الهيكل الرئيسي أو العقل المدبر للكود الذي يمكن العمل عليه لاجقاً للتعديل و جاري تعديل الكود للاختصار وحذف الزيادات ، واذا أتيح الوقت فهناك طريقة اضافية للتوزيع المتزامن للمقعدين معاً بكل صف بالقاعة 'Start ..................... إنشاء الجدول المؤقت من جديد ........................ Call Clear_data_first 'start.......................................------ توزيع الحقل الأول بعدد نصف الصفوف ---- الطلاب ................. DoCmd.RunSQL "INSERT INTO Table1 ( Seat1_class, Seat1_Exam, Seat1_name, Jloss1_no ) " _ & "SELECT Qry1.Safe, Qry1.[N-EXSAM], Qry1.St_name, Qry1.Jloss_no FROM" _ & "(SELECT TOP 50 PERCENT Jloss_tpl.Jloss_no, * FROM Jloss_tpl " _ & "ORDER BY Jloss_no , Jloss_tpl.Safe, Jloss_tpl.[N-EXSAM], Jloss_tpl.St_name ) Qry1;" DoCmd.RunSQL GetSQL.update_action 'start......................................... توزيع الحقل الثاني ............................................. Set rsQry = CurrentDb.OpenRecordset(GetSQL.select_action) Set rsTbl = CurrentDb.OpenRecordset(GetSQL.select_tbl1) 'start......................................... المرور على سجلات الجدول المؤقت لإضافة الطالب بالمقعد الثاني ............................................. For h = 0 To rsTbl.RecordCount Set rsQry = CurrentDb.OpenRecordset(GetSQL.select_action) rsQry.MoveFirst 'start......................................... المرور على سجلات الاستعلام من الجدول الاساسي لاختيار طالب حسب الشروط للمقعد الثاني ............................................. For i = 0 To rsQry.RecordCount 'start................... دالة اختيار طالب واحد عشوائي لأول ثلاثة اختيارات من الكومبوبكس Set rsQry = CurrentDb.OpenRecordset("SELECT top 1 Jloss_no , * FROM Jloss_tpl WHERE (((Jloss_tpl.Action) = False) ) ORDER BY rnd(Jloss_no),Safe;") s = Nz(DLookup("Jloss2_no", "Table1", "[Jloss2_no] = " & rsQry!Jloss_no & ""), 0) ' شرط عدم اختيار مسبق y = (Val(rsTbl!Seat1_Exam) <> Val(rsQry("N-EXSAM"))) ' شرط اختلاف المادة x = (Val(rsTbl!Seat1_Exam) = Val(rsQry("N-EXSAM"))) ' شرط تشابه المادة 'start................................. اختيارات طريقة التوزيع من النموذج Select Case Combo_choice Case 1 If IsNull(rsTbl!Seat2_name) And rsTbl!Seat1_class <> rsQry!Safe And s = 0 And y = True Then: Call dist Case 2 If IsNull(rsTbl!Seat2_name) And s = 0 Then: Call dist Case 3 If IsNull(rsTbl!Seat2_name) And rsTbl!Seat1_class <> rsQry!Safe And s = 0 And x = True Then: Call dist Case 4 'start................... إعادة اختيار بدون العشوائية للمحافظة على ترتيب رقم الجلوس للاختيار الرابع من الكومبوبكس Set rsQry = CurrentDb.OpenRecordset("SELECT Jloss_no , * FROM Jloss_tpl WHERE (((Jloss_tpl.Action) = False) ) ORDER BY Jloss_no;") s = Nz(DLookup("Jloss2_no", "Table1", "[Jloss2_no] = " & rsQry!Jloss_no & ""), 0) If IsNull(rsTbl!Seat2_name) And rsTbl!Seat1_class <> rsQry!Safe And s = 0 Then: Call dist End Select Next ' السجل التالي للاستعلام If rsTbl.EOF Then: rsTbl.MoveFirst: Else: rsTbl.MoveNext Next ' السجل التالي الجدول توزيع 20.accdb
×
×
  • اضف...

Important Information