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

jjafferr

أوفيسنا
  • Posts

    9,752
  • تاريخ الانضمام

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

  • Days Won

    396

كل منشورات العضو jjafferr

  1. العفو اخي الكريم ، رجاء اعطنا تفاصيل وامثلة اكثر ، علشان نفهم الموضوع كاملا ، ولا تنسى ان مرفقك مافيه بيانات علشان ممكن نفهم منها !! وشو قصدك في: ساعدنا بامثلة وبيانات علشان نساعدك في الحل
  2. السلام عليكم 🙂 استعملت برنامج اخوي عمر ضاحي ، وعملت عليه التعديل المطلوب حسب طريقة استخدامي للباركود في برامجي ، انا استخدم Code39 ، لعمل البرنامج ، ما لك علاقة بخط الباركود ، البرنامج تلقائيا ينصبه عند فتح البرنامج ، ويحذفه عند الانتهاء من البرنامج 🙂 هناك خاصية لعمل الليبلات في تقارير الاكسس ، مجرد تختار من الليبلات العالمية الموجودة ، او تعمل ليبلك الخاص (كما عملته انا بهذه الخطوات) : . . فيقوم الاكسس بتعديل مسافات الحواف 1587.Label.zip
  3. وعليكم السلام 🙂 القائمة موجودة ، إلا اذا انت اخفيتها 🙂
  4. السلام عليكم 🙂 اعطنا بعض الامثلة لكلمات نُدخلها في Text16 وماذا تريد ان ترى في Text18
  5. وعليكم السلام 🙂 بدلا عن Listbox ، اعمل نموذج جدولي ، واضبط الاعدادات ، وخليه مثل Listbox ، وبتقدر تعمل طلبك 🙂
  6. السلام عليكم 🙂 - تم الغاء الجدول tbl_V_Seq ، - تم اضافة الحقل Seq الى الجدول tblVacations ، - يمكنك نقل هذه الدالة الى برنامج الواجهة ، واستعماله هناك ، - يجب استعمال هذه الدالة مرة واحدة فقط ، لأنها في كل مرة تحذف البيانات السابقة ، - اقترح اضافة الحقل Seq الى نموذج الاجازات ، ويدويا تعطيه: رقم التسلسل للاجازة السابقة ، اذا كانت الاجازة الجديدة استمرار للاجازة السابقة ، الرقم التسلسل التالي. Option Compare Database Option Explicit Function Make_Groups() 'نريد عمل لكل اجازات مستمرة ، مجموعة خاصة بها 'وبما انه لا توجد معلومة مميزة في السجل لتوضح الفرق بين الاجازة العادية والاجازة المستمرة 'فوجب التفكير في عمل هذه المجموعات 'ورأيت ان اسهل طريقة لعمل هذه المجموعات ، هو عمل رقم مسلسل لكل سجل 'فالاجازات المستمرة يكون لها نفس الرقم ، وعند انتهائها ، فالسجل التالي يحصل على الرقم المسلسل التالي ' ' 'بعد تحليل البيانات، اتضح ان الاجازة المستمرة معناها 'تاريخ بداية الاجازة الجديدة = تاريخ نهاية الاجازة السابقة + 1 (يوم واحد) ' 'فعليه، بدأنا بأول اجازة وتم اعطاءها رقم مسلسل 'ثم ننتقل الى السجل التالي ، ونتأكد من نتائج المعادلة اعلاه 'فإذا كانت النتيجة نفسها ، فمعناه انها اجازة مستمرة ونعطي السجل نفس الرقم 'واذا كانت الاجازة منقطعة ، فنقوم بإضافة 1 الى الرقم المسلسل ، وهكذا ' ' 'tbl_V_Seq تم الغاء الجدول 'واضافة الحقل Seq 'الى الجدول 'tblVacations ' Dim rstV As DAO.Recordset Dim rstVG As DAO.Recordset Dim Seq As Long Dim Last_EndDate As Date 'rstV = tblVacation بيانات الجدول 'rstVG = tblVacation Group By emp_code ارقام الموظفين بدون تكرار من الجول 'تنظيف الحقل Seq من البيانات السابقة CurrentDb.Execute ("UPDATE tblVacation SET Seq = Null") 'ارقام الموظفين بدون تكرار، والفرز تصاعدي Set rstVG = CurrentDb.OpenRecordset("SELECT emp_code FROM tblVacation GROUP BY emp_code ORDER BY emp_code") rstVG.MoveFirst 'حلقة دوران حتى نشمل جميع الموظفين Do Until rstVG.EOF 'سجلات كل موظف Set rstV = CurrentDb.OpenRecordset("SELECT * FROM tblVacation WHERE emp_code=" & rstVG!emp_code) 'اذا لا توجد بيانات للموظف، ابدأ التسلسل 1 If rstV.RecordCount = 0 Then 'No Record Seq = 1 End If 'اول قيمة للمقارنة ، ونجعلها فارغة Last_EndDate = 0 'حلقة دوران لمقارنة سجلات الموظف Do Until rstV.EOF 'اذا تاريخ نهاية الاجازة تساوي تاريخ نهاية الاجازة السابقة+1 If rstV!VacationStartDate = Last_EndDate Then 'نعم 'اعمل تعديل على السجل، واعطيه رقم التسلسل السابق rstV.Edit rstV!Seq = Seq rstV.Update Else 'لا 'اعمل تعديل على السجل، واعطيه رقم التسلسل السابق+1 rstV.Edit Seq = Seq + 1 rstV!Seq = Seq rstV.Update End If 'تاريخ نهاية الاجازة+1 Last_EndDate = rstV!VacationEndDate + 1 rstV.MoveNext Loop rstVG.MoveNext Loop rstV.Close: Set rstV = Nothing rstVG.Close: Set rstVG = Nothing MsgBox "Done" End Function جعفر 1581.1.سجل المحضرين_be.accdb.zip
  7. السلام عليكم 🙂 للتجربة والتأكد من اني فهمت الموضوع ، رجاء عمل التالي: 1. شغل الدالة Make_Groups ، وذلك بكتابة اسمها في الاسفل ، ورجاء التأكد ان علامة الاستفهام بالانجليزي ، ثم انقر على زر Enter على الكيبورد . عندما تنتهي الدالة من عملها ، ستظهر لك رسالة "Done" ، عندها رجاء تشغيل الاستعلام qry_Vacations والتأكد بأن بياناتها كما تريد 🙂 الدالة تضع بياناتها في الجدول tbl_V_Seq ، وهو جدول تجميع الاجازات المستمرة 🙂 1581.سجل المحضرين_be.accdb.zip
  8. في احد برامجي عملت نفس طريقتك ، "برواز" نموذج فرعي ، واستعملت النماذج الفرعية داخله (بدلا عن عمل تبويب لكل نموذج فرعي) ، في الواقع العمل كان اكثر صعوبة واخذ جهد اكبر في العمل ، لأنه يجب ان نشير "للبرواز" في كل خطوة ، وفي نفس الوقت نشير لإسم النموذج الفرعي لكل عملية خاصة به ، وبدلا عن التبويب للإنتقال من نموذج فرعي لآخر ، استعمل Navigation buttons ، والتي لا يمكن ربطها/لصقها مع النموذج ، سواء الرئيسي او الفرعي !! ولكن ، البرنامج لا يزال الافضل ولا يوجد له مثيل في المؤسسات 🙂
  9. وهل جربت مثالي؟ للعلم ، انت لم تخبرنا الى الآن كيف تريد عمل النموذج الفرعي ، فنحن هنا اعطيناك الكود الذي يقوم بالعمل ، وانت تضع الكود الصحيح على الزر الصحيح على الحدث الصحيح
  10. تفضل 🙂 اضف النموذج الفرعي ، ثم قم بالتعديل على البيانات ، ثم انقر على زر تعديل ، وحاول تعديل البيانات. كود عدم السماح بتعديل بيانات النموذج الفرعي: Private Sub x22_Click() Me.frm.Form.AllowEdits = False End Sub 1583.Database32.accdb True يعني اسمح (بالتعديل ، او الاضافة او ... ) False يعني لا تسمح (بالتعديل ، او الاضافة او ... )
  11. عملت لك التعديل في مشاركتي السابقة 🙂
  12. وعليكم السلام 🙂 لما تحدد النموذج الفرعي بالطريقة : me.frm.SourceObject = "frm3" . تستطيع استعمال التالي للتحكم فيه: me.frm.form.AllowEdits = true 'اسمح بتغيير البيانات me.frm.form.AllowDeletions = true 'اسمح بحذف السجل me.frm.form.AllowAdditions = true 'اسمح بإضافة سجلات جديدة
  13. حيا الله اخوي ابوخليل 🙂 نعم ملاحظتي انه دمج قيمتين في حقل واحد ، معرف الطالب - والصف ، لهذا السبب اقترحت عليه ان يفصلهم ويكون لكل واحد منهم حقل مستقل ، اذا الشباب نجحوا جميعا ، فسهل تنقل الصف كله مرة واحدة ، ولكن اذا عندك راسب ، وعندك حقل ناجح/راسب ، وحقل قيمة معرف الطالب ، وحقل الصف ، فببساطة تنقلهم 🙂 بس بما ان اخوي ابوخليل توسط لك ، فاليك الحل بطريقتك : الجدول: . استعلام لتحديث جميع الصفوف ، للناجحين فقط : . والشرح: ناخذ مثلا الرقم 11-002 لا تنسى انك تتعامل مع حقل نص اول حرفين من القيمة (يبدأ باول الحقل ، ويأخذ حرفين) Mid([Class_ID],1,2) وبما ان القيمة نص ، فيجب تحويلها الى رقم Val(Mid([Class_ID],1,2)) ثم نضيف اليها واحد (للانتقال الى الصف التالي) +Val(1) بهذه الطريقة يتم تحويل الرقم 11 الى 12 وتحويل الرقم 13 الى 14 ، وهكذا ثم نريد نستخرج معرّف الطالب (يبدأ من الحرف الثالث ، ويأخذ 4 قيم) Mid([Class_ID],3,4) ولما ندمج جميع الخطوات اعلاه ، تصبح لدينا قيمة التحديث Val(Mid([Class_ID],1,2))+Val(1) & Mid([Class_ID],3,4) 1582.update_student_next_class.accdb.zip
  14. وعليكم السلام اذا البرنامج مقسم عندك الى جزئين: - جزء الجداول (الجزء الخلفي او BE) : فالمنتدى مليء بطرق اخذ النسخ الاحتياطية ، بما لذ وطاب ، فقط استخدم خاصية البحث فيه ، - جزء البرنامج (الجزء امام المستخدم او FE) : فهذا تاخذ منه نسخة واحدة فقط عند عمل تغيير به ، ولا تحتاج الى عمل نسخ اضافية اخرى منه.
  15. اخي الفاضل عبدالعزيز ، اجابتي واجابة الدكتور حسين لا تخص النموذج.
  16. اخي الفاضل ، رجاء تخبرنا وين البيانات ، فلا يوجد تقرير اسمه بيان حالة !!
  17. رجاء تخبرنا وين البيانات
  18. الظاهر من بياناتك في الصورة في او مشاركة ، الاجازة المتصلة: تاريخ بداية الاجازة = تاريخ نهاية الاجازة السابقة + 1 يوم يمكننا عمل كود ليعمل المطلوب ، ولا ارى طريقة لعمله في استعلام !! اذن نحن بحاجة الى بيانات كثيرة ومتنوعة لتحليل وعمل اللازم 🙂
  19. شو تحليلك لهذا المصطلح من واقع بياناتك ؟
  20. وعليكم السلام 🙂 اعمل استعلام تجميعي بنوع الاجازة (Group by) ، واختار الاقل (Min) للتاريخ الاعتباري ، واختار الاكبر (Max) لتاريخ نهاية الاجازة.
  21. السلام عليكم 🙂 او عمل نموذج جدولي ، للنموذج الرئيسي والفرعي: 1579.DataSheet_Form_inside_DS_Form.accdb.zip
  22. وعليكم السلام 🙂 الطريقة الصحيحة هي ، بإعطاء الطالب رقم لا يتغير (حقل رقم الطالب) ، وحقل آخر للصف ، وكلما انتقل الطالب الى الصف التالي ، يمكنك اضافة رقم 1 الى الصف الحالي 🙂 خذها قاعدة: في قواعد البيانات ، وبما ان السرعة مطلوبة ، فإجعل لكل معلومة حقل خاص بها ، وهذا سيسهل عليك ربط الجداول بطريقة مباشرة كذلك.
  23. المنتدى به الكثير من المواضيع لجلب الوقت من الانترنت ، ولكن لم ارى موضوع لتوحيد تاريخ/وقت كمبيوترات الشبكة ، وهذا هو صلب الموضوع 🙂 قمت بإضافة شرح لسبب استخدامي لهذا الموضوع 🙂 جعفر
×
×
  • اضف...

Important Information