The best قام بنشر April 15 الكاتب قام بنشر April 15 19 ساعات مضت, Foksh said: هذه الفكرة التي اقترحتها .. تم تطبيقها على نموج فرعي واحد ، ونفس الفكرة طبقها على النماذج الفرعية التي تريدها Personnel_affairs.zip 90.93 kB · 5 downloads هكذا أخى عملت أزرار ووضعت أكواد لكنها لم تعمل فقمت بمسحها Personnel_affairs.rar
Foksh قام بنشر الأربعاء at 16:36 قام بنشر الأربعاء at 16:36 قمت بإعادة صياغة الأكواد وكتابتها بشكل يضمن عدم ظهور أخطار أثناء التنقل .. Private Sub btnFirst_Click() If Me.RecordsetClone.RecordCount > 0 Then DoCmd.GoToRecord , , acFirst End If End Sub Private Sub btnNew_Click() If Me.AllowAdditions Then DoCmd.GoToRecord , , acNewRec Else MsgBox "النموذج لا يسمح بإضافة سجلات جديدة", vbExclamation + vbMsgBoxRight End If End Sub Private Sub btnNext_Click() With Me.RecordsetClone If .RecordCount > 0 Then .Bookmark = Me.Bookmark .MoveNext If Not .EOF Then DoCmd.GoToRecord , , acNext Else MsgBox "أنت في آخر سجل", vbInformation + vbMsgBoxRight End If End If End With End Sub Private Sub أمر553_Click() If Not Me.NewRecord And Me.CurrentRecord > 0 Then If MsgBox("هل تريد حذف السجل الحالي؟", vbYesNo + vbQuestion + vbMsgBoxRight, "تأكيد الحذف") = vbYes Then DoCmd.RunCommand acCmdDeleteRecord End If Else MsgBox "لا يوجد سجل لحذفه", vbExclamation + vbMsgBoxRight End If End Sub Private Sub أمر554_Click() With Me.RecordsetClone If .RecordCount > 0 Then .Bookmark = Me.Bookmark .MovePrevious If Not .BOF Then DoCmd.GoToRecord , , acPrevious Else MsgBox "أنت في أول سجل", vbInformation + vbMsgBoxRight End If End If End With End Sub Private Sub أمر555_Click() If Me.RecordsetClone.RecordCount > 0 Then DoCmd.GoToRecord , , acLast End If End Sub 1
ابو جودي قام بنشر الجمعة at 16:25 قام بنشر الجمعة at 16:25 انا شكلى جيت متأخر حبتين لكن أن تأتى متأخرا افضل من أن لا تأتى مبدئيا حتى انتهى من قرآة الموضوع من بدايته لارى تسلسل الافكار والأطروحات والنظريات اتمنى ان نلقى نظرة على هذا الموضوع :- ان شاء الله سوف أعود فى أقرب فرصة لأكمل وأنتهى لما بدأته ولكن ربما تجدون افكار جديده 1
ابو جودي قام بنشر الجمعة at 23:44 قام بنشر الجمعة at 23:44 طب مبدئيا كل الشكر والتقدير لاساتذتنا العظماء استاذى الجليل و معلمى القدير و والدى الحبيب الاستاذ @ابوخليل والاستاذ @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 الفهرسة تكون حسب النوع: أساسي = بدون تكرار / أجنبي = يقبل التكرار لا تخف من تكرار اسم الحقل طالما هناك علاقة صحيحة مدعومة جيدا ..... يتبع 2
The best قام بنشر السبت at 20:06 الكاتب قام بنشر السبت at 20:06 السلام عليكم ورحمة الله وبركاته شكرا جزيلا لكم جميعا على الاهتمام الآن صممت نموذج ( Frm_Regist) لتسجيل التدريبات والاجازات والعقوبات وغير ذلك للموظفين وضعت فيه حقل غير منضم لجلب اسماء الموظفين وعلى سبيل المثال عملت نموذجين الأول (Frm_Trining) يجلب بيانات الموظفين اللى محتاجها تظهر من جدول البيانات الأساسية الثانى(Frm_Trining1) نموذج لتدريبات الموظف وبياناته طبعا من جدول التدريبات نختار اسم الموظف ثم الضغط على تسجيل التدريبات تظهر البيانات وقمت بتسجيل تدريب لموظف للتجريب هل الطريقة دى صحيحة ؟ وإن كانت كذلك أنفذها على البقية ( الاجازات والعقوبات وغير ذلك ) وإن كانت غير صحيحة فما الصح ؟ Personnel_affairs.accdb
Foksh قام بنشر السبت at 21:02 قام بنشر السبت at 21:02 هي عائدة لك ولأفكارك في التصميم ، لكن كفكرة جميلة .. قمت بتصحيح فكرة عدد السجلات الذي كان لم يعمل Personnel_affairs.zip
The best قام بنشر السبت at 21:16 الكاتب قام بنشر السبت at 21:16 7 دقائق مضت, Foksh said: هي عائدة لك ولأفكارك في التصميم ، لكن كفكرة جميلة .. قمت بتصحيح فكرة عدد السجلات الذي كان لم يعمل Personnel_affairs.zip 125.42 kB · 0 downloads طيب تمام أنفذها على بقية النماذج ملحوظة: أثناء التصميم لفت نظرى شىء وهو لما بسجل بيانات التدريب بكتب تاريخ التدريب وتاريخ الانتهاء وبعد كده المدة وتاريخ مباشرة العمل #فقلت لنفسى ليه متبقاش المدة تلقائى تتحسب بناء على تاريخ البداية وتاريخ النهاية وتاريخ مباشرة العمل بردو تلقائى يكون التاريخ اللى بعد تاريخ الانتهاء مع مراعاة مندخلش يوم الجمعة والسبت فى الحسبة بمعنى لو تاريخ الانتهاء كان يوم خميس يجيب تاريخ يوم الاحد أرجو أن تكون الفكرة واضحة
Foksh قام بنشر الأحد at 17:21 قام بنشر الأحد at 17:21 19 ساعات مضت, The best said: أرجو أن تكون الفكرة واضحة الفكرة واضحة جداً ، وستعمل على تسهيل عملية الادخال للبيانات بشكل ملحوظ .. على العموم جرب هذه الفكرة البسيطة وأخبرني بنتيجتها بعد تجربة على عدة تواريخ وعدة سجلات Personnel_affairs.zip
The best قام بنشر الأحد at 18:53 الكاتب قام بنشر الأحد at 18:53 (معدل) 1 ساعه مضت, Foksh said: الفكرة واضحة جداً ، وستعمل على تسهيل عملية الادخال للبيانات بشكل ملحوظ .. على العموم جرب هذه الفكرة البسيطة وأخبرني بنتيجتها بعد تجربة على عدة تواريخ وعدة سجلات Personnel_affairs.zip 139.99 kB · 4 downloads اولا: المدة زايدة يوم عن المدة من تاريخ البدء لتاريخ الانتهاء لاحظ الصورة المرفقة المفروض المدة تبقى 3 مش 4 ثانيا: بعتذر لحضرتك انا كنت قلت لحضرتك نستبعد يومى الجمعة والسبت لأنهما أجازة لكن بعض المدارس والأقسام تعمل يوم السبت نحل المشكلة دى ازاى تم تعديل الأحد at 18:54 بواسطه The best
The best قام بنشر منذ 14 ساعات الكاتب قام بنشر منذ 14 ساعات 19 ساعات مضت, Foksh said: الفكرة واضحة جداً ، وستعمل على تسهيل عملية الادخال للبيانات بشكل ملحوظ .. على العموم جرب هذه الفكرة البسيطة وأخبرني بنتيجتها بعد تجربة على عدة تواريخ وعدة سجلات Personnel_affairs.zip 139.99 kB · 8 downloads شوفت حضرتك تعليقى
Foksh قام بنشر منذ 13 ساعات قام بنشر منذ 13 ساعات 55 دقائق مضت, The best said: شوفت حضرتك تعليقى نعم أخي العزيز ,, الحل بسيط ان شاء الله ، فقط في الدالة في المديول قم بإزالة 1 + :- count = count + 1
The best قام بنشر منذ 13 ساعات الكاتب قام بنشر منذ 13 ساعات 4 دقائق مضت, Foksh said: نعم أخي العزيز ,, الحل بسيط ان شاء الله ، فقط في الدالة في المديول قم بإزالة 1 + :- count = count + 1 تمام ... طيب وبخصوص يوم السبت عمل لبعض المدارس والأقسام
The best قام بنشر منذ 12 ساعات الكاتب قام بنشر منذ 12 ساعات 41 دقائق مضت, Foksh said: نعم أخي العزيز ,, الحل بسيط ان شاء الله ، فقط في الدالة في المديول قم بإزالة 1 + :- count = count + 1 لما أزالتها مدة التدريب بتبقى نتيجة واحدة بتعطى رقم (1) أيا كانت التواريخ 1
Foksh قام بنشر منذ 12 ساعات قام بنشر منذ 12 ساعات 8 دقائق مضت, The best said: لما أزالتها مدة التدريب بتبقى نتيجة واحدة بتعطى رقم (1) أيا كانت التواريخ الخطأ مردود ، اعتذر منك ، المقصود في النموذج الفرعي في الدالة UpdateModa ، أزل 1+ من السطر moda = daysCount + 1 ولكن لنفترض أن تاريخ بدء التدريب = 2025-04-01 وتاريخ الإنتهاء = 2025-04-04 أي الأيام ( 01 ، 02 ، 03 ، 04 ) ستكون 4 ايام وليس 3 ان كان ما فهمته صحيح ,, ولكن انت أعلم بمشروعك في النهاية
The best قام بنشر منذ 12 ساعات الكاتب قام بنشر منذ 12 ساعات 6 دقائق مضت, Foksh said: الخطأ مردود ، اعتذر منك ، المقصود في النموذج الفرعي في الدالة UpdateModa ، أزل 1+ من السطر moda = daysCount + 1 ولكن لنفترض أن تاريخ بدء التدريب = 2025-04-01 وتاريخ الإنتهاء = 2025-04-04 أي الأيام ( 01 ، 02 ، 03 ، 04 ) ستكون 4 ايام وليس 3 ان كان ما فهمته صحيح ,, ولكن انت أعلم بمشروعك في النهاية تمام كده أحسنت والملاحظة التانية بتاعة إنه يوم السبت بيكون عمل لبعض المدارس
Foksh قام بنشر منذ 12 ساعات قام بنشر منذ 12 ساعات 4 دقائق مضت, The best said: والملاحظة التانية بتاعة إنه يوم السبت بيكون عمل لبعض المدارس اشرحها لي اكثر لأنا ما فهمتها
The best قام بنشر منذ 12 ساعات الكاتب قام بنشر منذ 12 ساعات 15 دقائق مضت, Foksh said: اشرحها لي اكثر لأنا ما فهمتها الإجازة الأسبوعية عندنا يومى الجمعة والسبت لكن بعض المدارس والأقسام تعمل يوم السبت فطلبت من حضرتك فى الاول ناخد بالنا فى تاريخ الانتهاء لو كان الخميس يبقى تاريخ مباشرة العمل يكون الاحد وده هيكون للمدارس التى تأخذ إجازة يومى الجمعة والسبت لكن اللى بيأخذ إجازة الجمعة فقط يبقى تاريخ مباشرة العمل يكون السبت أرجو أن تكون الفكرة واضحة
Foksh قام بنشر منذ 11 ساعات قام بنشر منذ 11 ساعات 31 دقائق مضت, The best said: الإجازة الأسبوعية عندنا يومى الجمعة والسبت اول شيء وين الاجازات في الموضوع ؟؟؟؟؟؟ ولا انت تقصد الدورات أو التدريبات هي نفسها الاجازات ؟؟؟؟؟ مش فاهم ، ثاني شيء انك تدخل في التشعبات الفرعية دون الانتهاء من التأسيس لبقية البرنامج اعتقد رح تتوهك وتدخلنا في متاهة
The best قام بنشر منذ 11 ساعات الكاتب قام بنشر منذ 11 ساعات 3 دقائق مضت, Foksh said: اول شيء وين الاجازات في الموضوع ؟؟؟؟؟؟ ولا انت تقصد الدورات أو التدريبات هي نفسها الاجازات ؟؟؟؟؟ مش فاهم ، ثاني شيء انك تدخل في التشعبات الفرعية دون الانتهاء من التأسيس لبقية البرنامج اعتقد رح تتوهك وتدخلنا في متاهة حضرتك أنا بتكلم على التدريبات ( ملناش دعوة بالإجازات اللى بياخدها الموظف لنفسه فقط ) فلو موظف كان ميعاد تدريبه يوم الاثنين 2025/4/21 وتاريخ انتهاء التدريب يوم الخميس 2025/4/24 يبقى تاريخ مباشرة العمل له فى المدرسة يوم الأحد 2025/4/27 وده لو مدرسته إجازة من العمل يومى الجمعة والسبت #وده اللى حضرتك عملته فى الدالة لكن لو مدرسته بتاخد الجمعة فقط إجازة من العمل يبقى تاريخ مباشرة العمل السبت 2025/4/26 وده اللى أقصده ونفذها ازاى حضرتك تمام ولا لسة الأمور مختلطة
Foksh قام بنشر منذ 11 ساعات قام بنشر منذ 11 ساعات 3 دقائق مضت, The best said: حضرتك تمام ولا لسة الأمور مختلطة الأمور تمام ، ولكن ما الذي سيميز المدارس التي يبدأ دوامها السبت من تلك التي تبدأ الأحد ؟؟؟؟؟؟ للتأكيد كل يوجد جدول للمدارس ؟؟؟
The best قام بنشر منذ 11 ساعات الكاتب قام بنشر منذ 11 ساعات 8 دقائق مضت, Foksh said: الأمور تمام ، ولكن ما الذي سيميز المدارس التي يبدأ دوامها السبت من تلك التي تبدأ الأحد ؟؟؟؟؟؟ للتأكيد كل يوجد جدول للمدارس ؟؟؟ ممكن أعمل لحضرتك جدول للمدارس بس ايه الحقول اللى حضرتك محتاجها
Foksh قام بنشر منذ 11 ساعات قام بنشر منذ 11 ساعات 2 دقائق مضت, The best said: ممكن أعمل لحضرتك جدول للمدارس بس ايه الحقول اللى حضرتك محتاجها يا صديقي ، الفكرة ليست في الجدول فقط ، فعلى سبيل المثال ، سنضطر الى تمييز ان الموظف الفلاني موظف للمدرسة الفلانية .. انت فاهم قصدي ؟؟
The best قام بنشر منذ 10 ساعات الكاتب قام بنشر منذ 10 ساعات منذ ساعه, Foksh said: يا صديقي ، الفكرة ليست في الجدول فقط ، فعلى سبيل المثال ، سنضطر الى تمييز ان الموظف الفلاني موظف للمدرسة الفلانية .. انت فاهم قصدي ؟؟ الصراحة ما فهمت !!! لكن هناك حقل للمدرسة فى بيانات الموظف وفيه جدول بالفعل للمدارس أنا كنت عامله
Foksh قام بنشر منذ 9 ساعات قام بنشر منذ 9 ساعات 2 دقائق مضت, The best said: الصراحة ما فهمت !!! لكن هناك حقل للمدرسة فى بيانات الموظف وفيه جدول بالفعل للمدارس أنا كنت عامله طيب تمام يا صديقي ، الآن سأقوم بتفقد الجدول وإضافة حقل من نوع Yes/No دلالة على أن المدرسة هذه لها مباشرة دوام يوم السبت أم لا ,, وبناءً عليه سنقوم بتعديل الدالة للتمييز بين المدارس ، ما رأيك ؟
The best قام بنشر منذ 9 ساعات الكاتب قام بنشر منذ 9 ساعات الان, Foksh said: طيب تمام يا صديقي ، الآن سأقوم بتفقد الجدول وإضافة حقل من نوع Yes/No دلالة على أن المدرسة هذه لها مباشرة دوام يوم السبت أم لا ,, وبناءً عليه سنقوم بتعديل الدالة للتمييز بين المدارس ، ما رأيك ؟ هذا ما كنت سأقوله
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.