بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
7104 -
تاريخ الانضمام
-
Days Won
207
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو ابو جودي
-
استاذى الجليل ومعلمى القدير و والدى الحبيب الاستاذ @ابوخليل جزاكم الله خيــرا اولا على مروركم العطر وزيارتكم الكريمة وشكر الله لكم حسن متابعتكم هذا التفصيل الدقيق هى لوائح وهى هامة جدا جدا لانها تحدد يوميات العاملين داخل المؤسسة وفق لوائح وقوانين طيب قلت سابقا انه شرعت فى البناء فعلا وانتهيت تقريبا وقلت لن اعرض القاعدة لسببين 1- لم اقم بالتجربة بشكل دقيق لظروف اخبرتكم عنها منعتنى آن ذلك 2- انا قممت بالتصميم ووجدت تحديات كثيرة لتعقيد وتداخل قواعد التحققات المتشابكة احيانا والمتداخله والتى قد تكون معقده وقد اجد بعض الخلل اثناء التجارب الكثيرة والدقيقه بشكل مكثف ولكن احببت ان يطرح الموضوع اولا ليتم النقاش فيه وليدلى كل من اساتذتى الكرام العظماء بدلوهم فى عرض مقترحاتهم وافكارهم وسيناريوهات الية التنفيذ بعد التحليل للأسباب الاتية - لأتعلم - ليكون الموضوع مرجعا لطلاب العلم والدارسين - لاهمية الموضوع فى قواعد ادارة الموارد البشرية وشئون العاملين لانه وكما قلت هذه الجزئية فقط ولاهميتها القصوى تعد تقريبا ثلث التطبيق حرفيا قطعا بما انها قوانين ولوائح صارمه المفروض ان لا يتم مخالفتها ولكن هناك حالات شاذه لابد من استخدام روح القانون لذلك الاوجب و من المرونه التعامل مع هذه الحالات بشكل من الاشكل وهذه ثمرة النقاش ان هذه النقطه لم تخطر على بالى فعلا لا بالعكس اى مللاحظات سوف يتم الاستفاده منها على المدى البعيد فى تعلم التفكير والتصور والتحليل للنظم وتخيل وتصور الهيكل العام لهذا التحليل او على المدى القريب فى وضع التصور لاساس صحيح ومتين يتم البناء عليه بأكبر قدر ممكن من الاحترافيه والمرونه وأعلى درجات الامان فى الحصول على المعلومات الدقيقه والغير مغلوطه لذلك اتمنى من اساتذتى العظماء ان يشمروا عن سواعدهم لنخطو كل الخطوات خطوة تلو الاخرى من : التحليل للنظم وضع التصور والهيكل لالية العمل بناء على التحليل وبعد ذلك تأتى عملية البناء تباعا وفق ما سبق وفى النهاية انا لا اطلب من اساتذى تقديم الحل او قاعدة بيانات لعمل كل ماسبق وتقريبا بفضل الله تعالى قادر على تحقيقها جميعا وبفضل الله تعالى سبحانه وهبنى الله تعالى ملكة فى التعامل مع الاكواد والافكار بما يمكننى بمشيئة الله تعالى من انهاء العمل ولكن كما اخبرتكم - لأتعلم تناول تحليل النظم والتخطيط للهيكل بناءً على التحليل بأفكار غير أفكارى أنا لانها قطعا سوف تضيف الى بنك معلوماتى وافكارى وتصوراتى - ليكون الموضوع مرجعا لطلاب العلم والدارسين - لاهمية الموضوع فى قواعد ادارة الموارد البشرية وشئون العاملين لمن يهتم بتلك الامور وخاصة لانه دائما تكون من حين لاخر طلبات واسئلة رواد المنتدى و لانه وكما قلت هذه الجزئية فقط ولاهميتها القصوى تعد تقريبا ثلث تطبيق ادارة الموارد البشرية ومتباعة شئون العاملين داخل المؤسسات الصغيرة والمتوسطة والكبيرة
- 11 replies
-
- ورشة عمل
- يوميات العاملين
- (و8 أكثر)
-
السلام عليكم استاذى الجليل و معلمى القدير و والدى الحبيب رايت مشاركتكم الكريمة ولكن وقتها لم يكن الوقت يسعفنى للتوضيح والرد على حضرتك بالترتيب والتفصيل الممل هذا من واقع جدول العطلات الرسمية : tblHolidaysOfficial قصدت تسجيل كل يوم فى سجل بحيث عند محاولت التحقق من العطلات لا نقوم بعمل لوب داخل الجدول باستمرار هو جدول خدمه يستخدم كدليل ونفس الموضوع مع جدول : tblHolidaysWeekly هو جدول خدمى يستخدم مع الكليندر لتحديد ايام العطلات الاسبوعيه التى سوف تتعامل معها الكليندر بشكل ديناميكة من خلال التأشير على ايام العطلات داخل الجدول بقيم بوليانيه = true هو جدول خدمه يستخدم كدليل ونفس الموضوع مع الجدول : tblDailyType هو جدل خدمى يستخدم كدليل لاضافة اسماء وانواع اليوميات المختلفة فى النهاية الجدول محور العمل واساس هذا الموضوع هو الجدول : tblDailyRecords مطلوب عمل التالى تسجيل كل انواع اليوميات لكل موظف حسب اليومية المطلوب تسجيلها داخل هذا الجدول على ان يكون كل تاريخ فى سجل منفرد اذا كانت اليوميه لها تاريخ بدايه وتاريخ نهايتها اكثر من يوم واحد بالنسبه لتاريخ البداية اما اليوميات التى لها يوم واحد اى ان تاريخ بدايتها وتاريخ نهايتها نفس التاريخ كده كده هيكون سجل واحد فقط طيب لتسجيل كل اليوميات تحقق مشترك وهو 1- أن لا يكون تاريخ البداية ـو تاريخ النهاية أحد ايام العطلات الاسبوعية أو احد ايام العطلات الرسمية من واقع البيانات داخل الجداول الخاصة بها 2- فى حالة كان تاريخ البدايه وتاريخ النهايه نفس التاريخ ان لا يكون هذا التاريخ محجوز بالفعل وتم تسجيله كيوميه لنفس الموظف الحالى 3- فى حالة كان تاريخ النهاية اكبر من تاريخ البدايه لابد التأكد من أنه لم يتم تسجيل أى سجلات بأى نوع من أنواع اليوميات لنفس الموظف الحالى فى هذه الفتره من تاريخ البداية وحتى تاريخ النهاية 4- ان لا يكون تاريخ النهاية اقل من تاريخ البدايه ما عدا اليوميات من النوع : بدل ساعات أو بدل مبيت ولكن هناك تحققات الخاصة للانواع عارضة , اعتيادية , بدل ساعات أو بدل مبيت قواعد تحقق الإجازة العارضة: 1- التحقق من عدد الإجازات العارضة في نفس الشهر: يجب التحقق أنه لا يوجد أكثر من يومين عارضة في نفس الشهر لنفس الموظف الحالى . 2- اجمالى المستحق لكل موظف عدد 2 يوم بحد أقصى لكل شهر ميلادى يعنى يتم التحقق من أن عدد الاجازات السابقة لهذا الشهر فقط فى التاريخ المستخدم لنفس الموظف الحالى من النوع عارضة لا يتعدى 1 يوم ولو كان تاريخ البدايه هو أخر يوم فى أى شهر ميلادى وتاريخ النهاية أول يوم فى الشهر الجديد يتحقق أن عدد الاجازات السابقة من النوع عارضة فى الشهر الذى يوافق شهر تاريخ البداية لم يحصل فيه لنفس الموظف الحالى على اكثر من عدد 1 يوم عارضة ونفس التحقق مع الشهر الجديد التالى وهو تاريخ النهاية بالنسبه للشهر الذى يخص تاريخ النهاية 3- التحقق من الإجازات العارضة المتتالية: يجب التأكد أنه لا يوجد أكثر من يومين عارضة اجمالا متتاليين سواء في نفس الجلسة أو في جلسات مختلفة : يعنى لو تم عمل سجل بتاريخ يوم 5 فى جلسه سابقة وفى الجلسة الجديده يتم محاولة تسجيل يوم 6 اذا المجموع يوميان متتاليان هذا مقبول . اما اذا تم عمل سجل بتاريخ يوم 5 فى جلسه سابقة وفى الجلسة الجديده يتم محاولة تسجيل يوم 6 ويوم 7 اذا المجموع يوم سابق مع يومان متتاليان هذا غير مقبول . وطبعا ممكن ييحصل العكس يكون يكون هناك سجلان بتواريخ متتاليه ويراد تسجيل سجل جديد اما بتاريخ سابق او لاحق ليكون العدد النهائ 3 اايم متتاليه هذا غير مقبول . وللاسف لابد من الاخذ فى الاعتبار انه ممكن يتم تسجيل حديث لاى نوع من انواع اليوميو العارضة او الاعتيايدة حتى ثم فى جلسة عمل جديده يتم محاولة تسجيل ايام قد تكون اقدم من التاريخ الذى تم تسجيله من قبل ولكن فى النهايه التواريخ متتاليه ومتلاحقة ومتصلة التحقق من عدم وجود فجوة بين الإجازات العارضة على ان تكون هذه الفجوة هى عطلات رسمية أو اسبوعية او اعتيادية: يجب التأكد من أن الإجازات العارضة متصلة بشكل فعلي دون أن يكون بينها عطلات رسمية، أسبوعية، أو إجازات اعتيادية. امثله - يوم 3/4/2025 مسجل كاجازة عارضه فى الجدول لنفس الموظف الحالى المفروض لا يقبل عند تسجيل يوم 6/4/2025 اجازة عارضة لان التواريخ 4,5 هى لتواريخ توافق ايام العطلات الاسبوعيه ( الجمعة , السبت ) وذلك وفق جدوال العطلات - يوم 17/4/2025 مسجل كاجازة اعتيادية فى الجدول لنفس الموظف الحالى المفروض لا يقبل عند تسجيل يوم 20/4/2025 كاجازة عارضة لان يوم 18.19 هى لتواريخ توافق ايام العطلات الاسبوعيه ( الجمعة , السبت ) وذلك وفق جدوال العطلات وبذلك يكون يوم 20 الذى نريد تسجيله فى هذه الجلسه متصل مع الاجازة الاعتيادية بشكلل متلاحق غير مباشر لانه يتخللهما عطلات اسبوعيه ونفس ما سبق لو مع عطلات رسمية ونفس ما سبق لو كانت عطلات اسبوعيه يلاحقها بشكل مباشر عطلات رسميه قواعد الإجازة الاعتيادية: التحقق من الإجازات الاعتيادية التي تسبق أو تلي إجازة عارضة: يجب التأكد من أنه لا توجد إجازة اعتيادية تسبق مباشرة إجازة عارضة أو تليها مباشرة. مثل التحقق السابق الذى يخض: التحقق من عدم وجود فجوة بين الإجازات العارضة على ان تكون هذه الفجوة هى عطلات رسمية أو اسبوعية او اعتيادية وهناك قاعدة مشتركة مع الأنواع ( اعتيادية , عارضة ) التحقق من ان رصيد الموظف المستخدم الحالى يسمح بعد خصم عدد الايام المراد تسجيلها من الرصيد الحالى له تبعا لكل نوع وطبعا لانه يتم تسجيل كل تاريخ فى سجل محدد اذا عدد السجلات للموظف الحالى من النوع اعتياديه أو النوع عارضه سوف تمثل عدد الايام السابقة التى تم الحصول عليها والتحقق يكون بإضافة عدد الأيام الجديدة المراد تسجيلها - العدد الاجمالى الذى يستحقه الموظظف والمسجل فى الجدول tblEmployeeData فى الحقول AnnualBalanceOfYear CasuaaBalanceOfYear اما الانواع بدل ساعات أو بدل مبيت التحقق لها كالتالى تاريخ البداية هو يوم الاجازة يتم تسجيله فى الجدول: tblDailyRecords فى الحقل : RecordDate بشرط انا لا يوكون مستخدما من قبل لنفس الموظف الحالى فى نفس الحقل : RecordDate اما تاريخ النهاية 1- لابد من التأكد من أن القيمة CheckInTime فى الجدول tblAttendance لنفس الموظف الحالى غير فارغه 2- لابد ان يتم التأكد من أن تاريخ النهاية غير مستخدم من قبل لنفس الموظف الحالى فى الجدزل : tblDailyRecords فى الحقل : AllowanceDate حيث أن هذا الحقل هو الذى سوف يتم فيه تسجيل النهايه مع انواع اليوميات فقط ( بدل ساعات أو بدل مبيت ) ملاحظة هامة مع الانواع فقط ( بدل ساعات أو بدل مبيت ) قد يكون التاريخ الذى يمثل تاريخ النهاية هو عطلة رسمية أو عطلة أسبوعية أو يوم عمل عادى بدون
- 11 replies
-
- ورشة عمل
- يوميات العاملين
- (و8 أكثر)
-
ترتيب عمود بالاستعلام حسب ترتيب عمود بالجدول
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
انت عارف يا فؤش والله انا فكرت اعمل له الاستعلام الاول بس فضلت افكر لاقيت البناء مش عجبنى كان لازم جدول خدمى مساعد للشعب ولاقيت ان فى المستقبل تعديل الاستعلام اللى هيعتمد على حقل باستخدم IIf أو حتى Switch اللى اسهل نوعا ما مرهق التعديل عليه او اضافة اى شئ له فى المستقبل والاعتماد حيكون على مدى الفهم وقوة التركيز ومرهق حتى مع الفهم الجيد للدوال فى حال الاضافة والتعديل والتطوير فكرت اكتب كود يقوم بعمل كل شئ بشكل ديناميكى من خلال الاعتماد على الجدول بشكل مباشر وكيفية الترتيب بداخل الجداول وبس الاستعلام فقط للاستدعاء اللى بأسهل طريقة ممكنه والترتيب المتعدد بعد الفرز فى الاستعلام هيحتاج بس حبة تركيز علشان تقرر عاوز تفرز على ايه الاول وترتب ازاى وبفضل ربنا الفكرة نجحت بجد بجد بجد كتابة الاكواد بالنسبه لى والتفكير فيها ويكأنها معزوفة موسيقية أستمتع بها ومعها وزى ما انا متعود وبأقول لكم دايما أه بيكون تعب وعناء وجهد وقت التفكير وترتيب الافكار عند بناء وترتيب الافكار والسيناريوهات داخل الكود لكن فى النهايه نتيجة ممتعة وتجربة شيقة وجهد قليل عند التطوير او التعديل فى المستقبل دا غير امكانية تعدد المهام بمرونه اللى بأعمل حسابها وانا افكر مع نفسي والتى تلبى معظم الرغبات او التطلعات المستقبلية دا غير ان حماية الاكواد بالنسبة لى اسهل من العبث بالخطأ او العبث المتعمد واكبر المميزات الإمكانية القصوى والمفرطة والممكنة فى التعامل مع كل شئ تقريبا فقط اطلق لنفسك العنان ومووضوع اضافة التعليقات على الكود او التوثيق للشرح مستقبلا انت نفسك لو نسيت بتفتكر ولو حد غيرك بيكمل وراك حيفهم حتى فى عدم وجودك فيغنيك عن اهدار الكثير من الوقت والجهد فى التذكر أو التحليل والتدقيق -
ترتيب عمود بالاستعلام حسب ترتيب عمود بالجدول
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
ولما انت فاهم يا أخويه واجع قلبى ليه و وضعت صورتين واحده من عندك و واحده من عندى وتقول لى شوف الفرق طب اهو يا اخويه المرفق الاخير من غير فروقات خالص انت يا حبيبى عاوز تجيبلى تربنه اكثر ما هى موجوده انتوا اللى هتندموا براحتك اتحمل بقه شغل المجانين انت السبب فى اللى هيحصل واللى هتشوفوه منى بعد كده -
ايه ده الراجل ده اقسم بالله جاب لى حول فى المنتدى حاسس مش عارف واللا بيتهيألأى فى تكرار فى الطلبات والا انا اللى نايم واللا ايه مين الشبح ده كل شويه اشعارات بموضوعات باسمه أنا دوخت وفصلنى يا فؤش خلاص كده والمشكله انى مش عارف افهمه حاسس ان معدل الغباء عندى زاد والله هههههههههه ابشر انتو هتشوفوا معايا ايام هناء وسرور وسعاده
-
ترتيب عمود بالاستعلام حسب ترتيب عمود بالجدول
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
شوف ترتيب المواد اولا فى جدول المواد تبع الحقل : MaterialsID ده اللى انا غيرته اول شئ تانى شئ فى الاستعلام الثانى قمت بترتيب الحقول لتعطى الترتيب المتعدد اللى انت عاوزه تماما تماما انا بس فى المرفق الاول قصدت اعمله زى ترتيب النموذج وعلشان انوه لان ترتيب المواد داخل الجدول وكذلك ترتيب الشعب فى جدول الشعب الجديد اللى انا انشأته وباعادة ترتيب الحقول الخاصة بالفرز يتم تعديل الاستعلام للوصول الى ما تريده بدون تدخل فى الاكواد نهائيا اوماااااااال شغل فاخرمن الاخر متضحكش قول صح شوف انا مقتنع ومعاك انى مبفهمش ومخى طخين حبتين بس بأكت شويه أكواد بنت حلال وذكيه وبتفهمك من اول نظره متنكرش يا فؤش -
ترتيب عمود بالاستعلام حسب ترتيب عمود بالجدول
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
منا قلت لك انا مرتب المواد داخل الجدول بترتيب غيرك طيب مبصوط كده يا فؤش افندى انا قلت لك الحل نظرى وانت اللى مش مقتنع اقتنعت يا فؤش أفندى والله بحبك فى الله اعمل ايه بس مأقدرش على زعلك أبدا باركود نهائي (3).accdb -
ترتيب عمود بالاستعلام حسب ترتيب عمود بالجدول
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
قولى ايه الفرق فى النتيحة هى هى على فكره الفرق ان انا عملت الترتيب مثل النموذج تماما ووفقت ترتيب النموذج الاسم والمواد وفقت تريب النموذج لكن لو عاوز نفس ترتيبك بالظبط ادخل على الاستعلام الثانى وبدل الحقول ولا تنسي ترتيب المواد فى الجدول انا اعتمد على الجداول من خلال الكود يا افندم وبعدين وفق الترتيب اللى تريده فقط من الاستعلام هتحصل على نفس نتيجتك يا حبيب الملايين بدون اى تدخل فى الكود -
ترتيب عمود بالاستعلام حسب ترتيب عمود بالجدول
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
طيب يا استاذى القدير واخى الغالى الحبيب @Foksh شوف يا فؤش افندى هو كان فى موضوع سابق وكنت قدمت الحل فيه بما يتناسب مع السؤال المطروح تماما أنذاك شوف المرفق ده وشوف الدلع الاكواد بتعمل لك كل اللى نفسك فيه وانا عدلت القاعدة بشكل اكثر احترافيه من وجهة نظرى المتواضعه بعمل جدول للشعب المميزات امكانية تعديل ارقم المعرف للمواد الدراسية أو للشعب وفق رغبة المبرمج او المستخدم من داخل الجداول وفورا يتم استخدامها داخل الاستعلامات كود ابن حلال وناصح واهم ما يميزه الاستغناء عن دوال Switch , IIf الا ان اللهم تم استخدام دالة Switch بابسط حالتها لانه لا نريد أكثر من ذلك ولا أقل >>---> لحقل الترتيب الخاص بنوع الجنس : Switch([St_Sex]="ذكر",1,[St_Sex]="انثى",2) باركود نهائي (2).accdb -
طيب انا عن نفس فى الحجات اللى زى دى مش بحب اترك مربعات النص عرضه للتعديل اذ ربما يتم تغير البيانات عن طريق الخطا لذلك اقوم بتأمين مربعات النص ضد الكتابة من خلال (Locked = True) لمربعات النص طيب التعامل بيكون ازاى وعلشان ما اكتب اكود كتير بحب اضع دائما اسس اتعامل وابنى عليها يعنى انا عن نفسى سوف أضع تأمين لمربعات النص سوف اعرف ثوابت بالشكل التالى Const LOCKED As Boolean = True Const UNLOCKED As Boolean = False وهذا سوف يكون الكود المستخدم خلف زر الامر الخاص بعملية اللصق Dim btnPressed As Control Set btnPressed = Me.ActiveControl ' امسك الزر الحالي قبل ما تروح لمربع النص Me.Weard_ResTxt = "" Me.Weard_OrgTxt = "" Me.Weard_OrgTxt.LOCKED = UNLOCKED ' فك القفل Me.Weard_OrgTxt.SetFocus DoCmd.RunCommand acCmdPaste btnPressed.SetFocus ' رجع التركيز مرة أخري على زر الأمر Me.Weard_OrgTxt.LOCKED = UNLOCKED ' قفل تاني وهذا سوف يكون الكود المستخدم خلف زر النسخ Me.Weard_ResTxt.LOCKED = UNLOCKED ' فك القفل Me.Weard_ResTxt.SetFocus DoCmd.RunCommand acCmdCopy Me.Weard_ResTxt.LOCKED = LOCKED ' قفل تاني MsgOut "تم النسخ"
-
السلام عليكم عاااااش والله لم يخطر على بالى ان ممكن نرجع الهيلوغريفى ده لعربى وكمان لم يخطر على بالى ابحث عن حل هذه المشكلة الله عليك عاش بجد شوف يا استاذنا الغالى انت لازم تعمل لعنصر التحكم اللى هيتم اللصق له او النسخ منه : SetFocus وده مهم ولابد قبل استخدام الاوامر التاليه DoCmd.RunCommand acCmdPaste أو DoCmd.RunCommand acCmdCopy مفيش حاجه اسمها على نسخة الأوفيس 365 أن هذولا السطرين ما يشتغلوا يعنى بالنسبه لمثالك بكل بساطه ده شكل كود النسخ Me.Weard_ResTxt.SetFocus DoCmd.RunCommand acCmdCopy MsgOut "تم النسخ" وده شكل كود اللصق Me.Weard_ResTxt = "" Me.Weard_OrgTxt = "" Me.Weard_OrgTxt.SetFocus DoCmd.RunCommand acCmdPaste
-
ياريت كان ينفع يا صديقى انا باذاكر سيستم جديد وعندى امتحانات نظرى وعملى دوليه كمان
-
هههههههههه طيب UP حاسس انى فى صحرا ومفيش غير صدى صوتى بس فين الناس فين الأفكار انتوا فاكرين انى هزهق وراكم وراكم كل يوم اعمل لكم رفع للموضوع لحد ما تزهقوا وتشاركوا
- 11 replies
-
- ورشة عمل
- يوميات العاملين
- (و8 أكثر)
-
انت عارف مكانك فى القلب يا فؤش أفندى وانت عارف انت قبل الكل دا لو أصلا كان فى مجال لوضعك داخل المقارنه دى بس فعلا والله مضغوط فى شغل مهم جدا جدا يخص عملى الذى هو مصدر دخلى الموضوع مالهوش علاقة بالحبايب والله ومالهوش اى علاقة بالاكسس انا مشكلتى الان بس فى ضيق الوقت لان كان عندى ظروف وهى سبب الغط اللى انا فيه الان بس
-
شوف هو الوهله الاولى كده شغل فاخر من الاخر بس انا لسه لم اقم بالتجربة عندى شغل مهم جدا جدا يخص عملى شغال فيه ان شاء الله بس اخلص اللى ورايا واحلى بالحلويات اللى هنا دى مبدئيا تسلم ايدك يا فؤش أفندى
-
مساعدة فى تصميم برنامج شئون عاملين من الصفر
ابو جودي replied to The best's topic in قسم الأكسيس Access
طب مبدئيا كل الشكر والتقدير لاساتذتنا العظماء استاذى الجليل و معلمى القدير و والدى الحبيب الاستاذ @ابوخليل والاستاذ @Foksh ما قصور و وفوا وكفوا والله وبما أن الموضوع فى بدايته وقبل الابحار "روح" أي مشروع ناجح وضع الأساس السليم والذى يبدأ بالتحليل قبل التفكير فى الجدول ولكن الاهم كيف يمكن عمل تحليل النظم بأسس منهجيه صحيحة اولا وباختصار عند تصميم أى نظام: ابدأ بجمع كل المتطلبات بشكل كامل حدد الكيانات الأساسية وصفاتها أنشئ الجداول بشكل نظيف مع تحديد المفاتيح الأساسية اربط الجداول ببعضها عبر علاقات فعلية منظمة حافظ على مرونة الاستعلامات عبر بناء علاقات إضافية مؤقتة عند الحاجة سامع اللى بيقول هناك ايه الكلام ده ؟ ردا على هذا السؤال تفصيلا : كيف تقوم بعمل التحليل المناسب لمشروع قاعدة بيانات؟ 1. فهم متطلبات المشروع (Gather Requirements) اجمع كل التفاصيل من العميل أو من نفسك (لو بتعمل لنفسك). اسأل أسئلة مثل: ما هو الهدف الأساسي من القاعدة؟ ما هي أنواع المعلومات التي يجب تخزينها؟ ما العمليات التي يقوم بها المستخدمون؟ (إدخال، تعديل، بحث، تقارير، الخ) هل في صلاحيات مختلفة للمستخدمين؟ ما العمليات المستقبلية المحتملة؟ 2. تحديد الكيانات (Entities) الرئيسية الكيانات هي الأشياء أو الأشخاص أو الأحداث التي تحتاج إلى تسجيل بيانات عنها في مثال "شئون العاملين" الكيانات قد تكون: الموظف (Employee) الوظيفة (Job Title) القسم (Department) الإجازات (Vacations) المرتبات (Salaries) الحضور والانصراف (Attendance) التأمينات (Insurance) الجزاءات (Penalties) المكافآت (Rewards) 3. تعريف السمات (Attributes) لكل كيان لكل كيان تحدد المعلومات المرتبطة به مثلا للموظف (Employee): رقم الموظف الاسم تاريخ الميلاد العنوان رقم الهوية رقم الهاتف تاريخ التعيين الوظيفة الحالية المرتب الأساسي الحالة الاجتماعية .... الخ... 4. تحديد العلاقات بين الكيانات حدد كيف ترتبط الكيانات ببعضها مثال: كل موظف ينتمي إلى قسم واحد ⇚ علاقة واحد إلى متعدد (One-to-Many) كل موظف يمكن أن يكون له أكثر من إجازة ⇚ علاقة واحد إلى متعدد أيضا ¤ مهم جدا تحديد اتجاه العلاقة ونوعها كيف تحدد وضع التصور للجداول والهيكل؟ 1. تصميم الجداول بشكل طبيعي (Normalization) تأكد إن الجداول تكون بدون تكرار للمعلومات (تجنب تكرار نفس البيانات في أكثر من جدول) كل جدول يمثل كيان مستقل. 2. المفاتيح الأساسية (Primary Keys) كل جدول لازم يحتوي على مفتاح أساسي (Primary Key) يميز كل سجل بشكل فريد مثال: جدول الموظفين : الحقل EmployeeID \ مفتاح أساسي ولكن أنا لا احب و لا أفضل التعامل مع حقل الـ ID الافتراضى داخل الجداول الأفضل ترك حقل ID الذي ينشئه Access كمفتاح أساسي (AutoNumber) بدون تغيير حقل ID الأساسي يبقى دائما موجود داخل الجدول داخلي ما نلمسه وما نستعمله في الربط الخارجي فقط يحفظ سلامة السجلات داخليا إنشاء حقل يدوي خاص بك مثلا EmployeeID نوعه Number (Long Integer) / أو نص حسب الرغبة ضبط خاصية الفهرسة: "مفهرس بدون تكرار" عندما يكون نوعه أساسي (Primary ) أو "مفهرس يقبل التكرار" حسب نوعه أجنبي (Foreign Key) استخدام الحقل اليدوي (EmployeeID مثلا) للربط بين الجداول بدلا من ID هل عمل العلاقات مباشرة أم أثناء الاستعلامات؟ الأساس الدائم = العلاقات الفعلية في تصميم القاعدة الحالات الخاصة المؤقتة = علاقات مؤقتة داخل الاستعلامات ✍️ نصيحة ذهبية: دائما أنشئ المفتاح الأساسي بيدك سميه باسم يعبر عن الجدول خصائص فهرسته: فهرسة بدون تكرار كيف تسمي الحقول والمعرفات بطريقة صحيحة واحترافية؟ هذا رأيى الضئيل المتواضع وقد أكون مخطئ لانه سوف أختلف مع اساتذتى العظماء حتى لا تواجه مشاكل لاحقا مع الاستعلامات أو الربط أو حتى مع البرمجة اتبع القواعد دي: اسم المعرف = اسم الجدول بدون تكرار زائد + "ID" مثلاً: اسم الجدول اسم الحقل المفتاح الأساسي Employees EmployeeID Departments DepartmentID Vacations VacationID Salaries SalaryID قاعدة تسمية المفاتيح الأجنبية (Foreign Keys) لما تيجي تنقل مفتاح لجدول تاني (رابط)، خليه بنفس الاسم تمامًا! مثال: عندك جدول tblEmployees وفي جدول tblVacations بتربط الموظف اسم الحقل في Vacations هيكون أيضا : EmployeeID نفس الاسم بدون تغيير ليه؟ عشان لما تستخدم استعلامات فيها JOIN تربطهم بدون لخبطة أو إعادة تسمية أو لبس في فهم العلاقات خصائص الفهرسة لكل حالة الحالة الفهرسة في الجدول الأصلي (المفتاح الأساسي) مفهرس لا يقبل التكرار (Indexed - No Duplicates) في الجدول المرتبط (مفتاح أجنبي) مفهرس يقبل التكرار (Indexed - Duplicates OK) هل استخدام نفس الاسم (EmployeeID مثلا) يسبب مشكلة؟ لا طالما أنت ملتزم بالعلاقات الصحيحة (Relationships) واستخدمت أسماء الجداول والحروف الواضحة في الاستعلامات فلن تحدث مشكلة Access سوف يتعامل مع الحقول حسب السياق (اسم الجدول قبل الحقل لو حصل تعارض بسيط) ملاحظة إضافية تجنب الأسماء المحجوزة مثل (Name, Date, Year, User) لأنها قد تسبب مشاكل لاحقًا في الكود أو الاستعلامات حاول دائمًا تسمية الحقول بشكل يوحي بالمحتوى (BirthDate أفضل من Date فقط). ✍️ المختصر المفيد و الخلاصة : أنشئ أنت الحقول بنفسك = أفضل تحكم وجودة سم المفاتيح بشكل احترافي اسم الجدول + ID الفهرسة تكون حسب النوع: أساسي = بدون تكرار / أجنبي = يقبل التكرار لا تخف من تكرار اسم الحقل طالما هناك علاقة صحيحة مدعومة جيدا ..... يتبع -
طلب: تعديل على حقل باركود موجود في الاستعلام
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
طيب انا مش عارف انت مش بترد ليه ولو على حسب فهمى الضئيل بعد تحليلى لقاعدة بيانات انت عندك جدول اسمه : tblStudyMaterials يحتوى على المواد الدراسية والبيانات الرئيسية لإنشاء البار كود والكود القادم ده هيريحك من انك تكتب جمل فيها IIf متعدده لانه كارثه لو فقدت تركيزك معها يا صديقة وبدلا من كثر التكرار ده الكود داخل وحده نمطية عامة باسم : basGenerateBarcode '----------------------------------------------------------------------------------- ' الوحدة النمطية: توليد باركود المواد الدراسية بناءً على الكود واختصارات المواد ' تحتوي على: ' - تحميل بيانات المواد إلى قاموس مرة واحدة ' - دالة لتوليد الباركود مع ملاحظة اختيارية ' ' أمثلة الاستخدام (داخل الاستعلامات أو الأكواد): ' - Barcode: GenerateBarcode([StudyMaterialsEng], [St_Code]) ' - Barcode: GenerateBarcode([StudyMaterialsEng], [St_Code], "ملاحظة إضافية") ' ' ملاحظات: ' - إذا لم يتم العثور على المادة، يتم استخدام St_Code فقط بدون رمز. ' - في حالة الحاجة لتحديث القاموس أثناء الجلسة، يجب إعادة تحميله يدوياً. '----------------------------------------------------------------------------------- ' تحميل جدول المواد الدراسية إلى قاموس Public Function LoadStudyMaterialSymbols() As Object Dim dict As Object Dim rs As DAO.Recordset Set dict = CreateObject("Scripting.Dictionary") Set rs = CurrentDb.OpenRecordset("SELECT StudyMaterialsEng, Symbol FROM tblStudyMaterials", dbOpenSnapshot) Do While Not rs.EOF If Not dict.Exists(UCase(Nz(rs!StudyMaterialsEng, ""))) Then dict.Add UCase(Nz(rs!StudyMaterialsEng, "")), Nz(rs!Symbol, "") End If rs.MoveNext Loop rs.Close Set rs = Nothing Set LoadStudyMaterialSymbols = dict End Function ' توليد باركود بناءً على المادة والكود مع إضافة ملاحظة اختيارية Public Function GenerateBarcode(ByVal StudyMaterialsEng As String, ByVal St_Code As String, Optional ByVal AdditionalNote As String = "") As String Static MaterialSymbols As Object Dim Symbol As String Dim Barcode As String If MaterialSymbols Is Nothing Then Set MaterialSymbols = LoadStudyMaterialSymbols() End If If MaterialSymbols.Exists(UCase(StudyMaterialsEng)) Then Symbol = MaterialSymbols(UCase(StudyMaterialsEng)) Barcode = St_Code & Symbol Else Barcode = St_Code End If If Len(AdditionalNote) > 0 Then Barcode = Barcode & " " & AdditionalNote End If GenerateBarcode = Barcode End Function وعلشان انا فهمى على ادى ومش عارف قصدك من جملة اضافة ملاحظات انا كتبت لك كود الاستدعاء بالشكل اللى انت استخدمته داخل الاستعلام: Barcode: GenerateBarcode([StudyMaterialsEng], [St_Code]) ولو أردت اضافة أى ملاحظات يكون الاستدعاء بالكشل التالى : Barcode: GenerateBarcode([StudyMaterialsEng], [St_Code], "ملاحظة إضافية") طبعا مع كتابة ملاحظاتك حسب الحاجة باستبدال: ملاحظة إضافية وأخيرا كود توليد الباركود الذكي! هذا الكود يقوم بإنشاء باركود مميز وسريع للمواد الدراسية بناء على الكود واختصارات المواد مميزات الكود : تحميل ذكي للمواد إلى قاموس منظم ومرن توليد باركود فوري مع امكانية إضافة ملاحظات اختيارية التعامل مع البيانات بشكل سلس ومنظم تحسين مستوى الدقة في إدارة المواد كيف يعمل الكود ببساطة : يتم قراءة البيانات من قاعدة البيانات يتم تخزين اختصار كل مادة في قاموس للوصول السريع يقوم بإنشاء كود منفرد متكون من كود المادة + رمز المادة + ملاحظة اختيارية 📢 للاستفسارات والتطوير : يسعدني دعمكم بكل ما يخص تطوير وتحسين هذا الكود شعارنا : نحو تكويد و إدارة أكواد أذكى وأكثر فاعلية ومرونة فى الاستعلام الاول قمت بإضافة الحقل : NewBarcode والذى يعتمد على الأكواد DDMhamed(2).accdb -
طلب: تعديل على حقل باركود موجود في الاستعلام
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
طيب بالنسبه لموضوعك انا حملت المرفق مفيش اكسل ومش فاهم علاقة الاكسل هنا ايه بصراحة ياريت توضح النقطه دى ثم بعد ذلك وضح مقصدك من : كيف الصق فيه واضيف عليه ملاحظة النسخ يكون من ملف اكسل هل ممكن عمل مكان أضع فيه الباركود أسماء الطلاب ورقم القيد والصف والشعبة ولازمة الباركود ده ايه فى الاخر الباركود اللى فى الاستعلام ده عباره الحقل التالى Barcode: IIf([StudyMaterialsEng]="Religion", [St_Code] & "REL", IIf([StudyMaterialsEng]="ARABIC", [St_Code] & "ARA", IIf([StudyMaterialsEng]="MATH", [St_Code] & "MAT", IIf([StudyMaterialsEng]="ENGLISH", [St_Code] & "ENG", IIf([StudyMaterialsEng]="SOCIAL", [St_Code] & "SOC", IIf([StudyMaterialsEng]="SCIENCE", [St_Code] & "SCI", IIf([StudyMaterialsEng]="ART", [St_Code] & "ART", IIf([StudyMaterialsEng]="SPORT", [St_Code] & "SPO"))))))))) تفسير السطر بالتفصيل: السطر يقوم بإنشاء قيمة حقل يسمى Barcode بناءً على القيمة في الحقل [StudyMaterialsEng]. في البداية، يفحص قيمة [StudyMaterialsEng] ثم يضيف اختصارًا معينًا إلى قيمة [St_Code] بناءً على المادة التي يتم تدريسها. التفصيل : إذا كانت قيمة [StudyMaterialsEng] هي "Religion": يتم إضافة "REL" إلى قيمة [St_Code]. إذا كانت قيمة [StudyMaterialsEng] هي "ARABIC": يتم إضافة "ARA" إلى قيمة [St_Code]. إذا كانت قيمة [StudyMaterialsEng] هي "MATH": يتم إضافة "MAT" إلى قيمة [St_Code]. إذا كانت قيمة [StudyMaterialsEng] هي "ENGLISH": يتم إضافة "ENG" إلى قيمة [St_Code]. إذا كانت قيمة [StudyMaterialsEng] هي "SOCIAL": يتم إضافة "SOC" إلى قيمة [St_Code]. إذا كانت قيمة [StudyMaterialsEng] هي "SCIENCE": يتم إضافة "SCI" إلى قيمة [St_Code]. إذا كانت قيمة [StudyMaterialsEng] هي "ART": يتم إضافة "ART" إلى قيمة [St_Code]. إذا كانت قيمة [StudyMaterialsEng] هي "SPORT": يتم إضافة "SPO" إلى قيمة [St_Code]. -
طلب: تعديل على حقل باركود موجود في الاستعلام
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
اخى الحبيب لا داعى للاعتذار .. أولا كلنا أخوه فقط انا طلبت منكم ذلك للمصلحة العامة بحيث يسهل الوصول الى الموضوع عند عمليات البحث داخل موضوعات المنتدى فى المستقبل لكم او لاى طالب علم أخى الحبيب بالفعل تم تعديل العنوان -
طلب: تعديل على حقل باركود موجود في الاستعلام
ابو جودي replied to محمد119900's topic in قسم الأكسيس Access
اخى الكريم من فضلك اختر عنوانا مناسبا دالا على الموضوع من فضلك لك علينا حقوق ولنا عندك كذلك وحقوقنا هى الالتزام بالقوانين المنظمة للمشاركات داخل المنتدى من اجل المصلحة العامة قوانين الموقع: من هنا واقتبس منها : المنتدى مثله مثل أي عمل جماعي لابد أن تكون هناك أسس واضحة للمشاركة فيه، يقرها ويلتزم بها جميع الأعضاء للحصول على الفائدة العامة عنوان المشاركة يجب أن يكون عنوان المشاركة يدل على محتواها -
مساعدة فى تصميم برنامج شئون عاملين من الصفر
ابو جودي replied to The best's topic in قسم الأكسيس Access
انا شكلى جيت متأخر حبتين لكن أن تأتى متأخرا افضل من أن لا تأتى مبدئيا حتى انتهى من قرآة الموضوع من بدايته لارى تسلسل الافكار والأطروحات والنظريات اتمنى ان نلقى نظرة على هذا الموضوع :- ان شاء الله سوف أعود فى أقرب فرصة لأكمل وأنتهى لما بدأته ولكن ربما تجدون افكار جديده -
مشاركة مع استاذى الجليل و معلمى القدير الاستاذ @ابو عارف وبعد إذن أستاذى هناك بعض الحالات التي قد تستوجب تعديلات إضافية لضمان التوافق بين الأنوية المختلفة (32 بت و 64 بت) وكذلك بين إصدارات الويندوز وأوفيس المختلفة عند التعامل مع دوال الـ API في VBA و يجب الانتباه لها: في النظام 32 بت، النوع Long يستخدم بشكل طبيعي لتخزين المؤشرات (pointers)، لكن في النظام 64 بت، يجب استخدام LongPtr بدلاً من Long لتخزين المؤشرات. المشكلة: إذا لم تستخدم LongPtr في النظام 64 بت، فقد تحدث أخطاء في الحسابات التي تتعلق بالحجم أو العناوين، لأن الـ Long لا يدعم العناوين الأكبر في الأنظمة 64 بت. ملاحظة: في الأنظمة 64 بت، LongPtr قادر على التعامل مع الأرقام التي تتجاوز سعة الـ Long العادية (التي تصل إلى 2,147,483,647). في الأنظمة 32 بت، LongPtr يتم تحديده تلقائيًا ليكون Long. التعامل مع السلاسل النصية (Strings) في بعض الأحيان، قد تحتاج إلى تعديل طريقة تعريف السلاسل النصية المستخدمة مع الـ API إذا كنت تستخدم سلاسل نصية مع الـ API، تأكد من إضافة ByVal و ByRef بشكل صحيح استخدم String * n بدلاً من String في بعض الحالات التي تتطلب أن تكون السلسلة ثابتة الطول التعامل مع الهياكل (Structures) في بعض الأحيان، تستخدم الهياكل (مثل Type في VBA) مع دوال الـ API. إذا كنت تستخدم هياكل كبيرة، فقد تحتاج إلى التأكد من أن الأنواع داخلها متوافقة مع النظام 64 بت تأكد من أن جميع الهياكل تتعامل بشكل صحيح مع الأنواع مثل LongPtr بدلاً من Long أو Integer عندما يتعلق الأمر بالمؤشرات لأنه قد يتغير حجم الحقول في الهيكل بين الأنوية 32 و 64 بت، مما يسبب أخطاء في التعامل مع الذاكرة أو المؤشرات التأكد من استخدام #If و #ElseIf بشكل مناسب عند التعامل مع دوال API في VBA وتحديد التوافق بين الأنظمة 32 بت و 64 بت، تأكد من استخدام #If, #ElseIf و #End If بشكل صحيح عند تخصيص الوظائف للأجهزة ذات الأنوية المختلفة. الشرح السابق يوضح الفرق فى التعامل مع النواتان و كتابة الكود بشكل صحيح ليصبح الكود متوافقا بين النواتان لانه لو قمت بالاستبدال لن يعمل على النواة 32