moho58 قام بنشر بالامس في 04:00 قام بنشر بالامس في 04:00 السلام عليكم الإخوة الأفاضل في هذا المنتدى الجميل في هذا الموضوع أريد وضع قيمة افتراضية لحقل في جدول بشرط القاعدة المرفقة بها جدول مختصر الحقول يمثل تقييم الموظفين - في السابق كان عندي نوع واحد من الموظفين والآن اريد أن أضيف له عدة انواع من الموظفين ( مهندسن - معلمين...) وكل نوع من الموظفين عنده تقييمات خاصة وهذه التقييمات الخاصة (الحقول) وضعت لها قيم افتراضية خاصة بها لتسهيل عملية حجز البيانات (تكون محجوزة تلقائيا) فقط أقوم بتغيير التقيمات إذا كان هناك تغيير. مثال في الجدول : فيه نوعين : النوع الأول: المهندسين النوع الثاني : المعليمن وذلك حسب ما يظهر في الحقل المسمى : loifondamontale النوع: النوع الأول: المهندسين عنده مجموع من التقييمات ( الحقول) الخاصة بالموظفين لهذا النوع وهي : * evalu_moubadara_chaksia* evalu_itkan_elamel* evalu_nachatat_tarbia *evalu_absence * evalu_retard * evalu_tatwir هذه الحقول (التقييمات) وضعت لها قيم افتراضية موضحة في الجدول من فضلكم اريد مايلي :الحقول هذه تأخذ القيمة الافتراضية الخاصة بها المبينة في الجدول إذا كان النوع (الحقل) المسمى loifondamontale يساوي : المهندسين وإذا كان مختلف تأخذ القمية صفر. النوع: النوع الثاني: المعلمين عنده مجموع من التقييمات ( الحقوول) الخاصة بالموظفين لهذا النوع و هي : evalu_absence_prof * evalu_retard_prof * evalu_nadawat_prof * evalu_nachatat_tarbia_prof * evalu_mobadara_prof هذه الحقول (التقييمات) وضعت لها قيم افتراضية موضحة في الجدول من فضلكم اريد مايلي :الحقول هذه تأخذ القيمة الافتراضية الخاصة بها المبينة في الجدول إذا كان النوع (الحقل) المسمى loifondamontale يساوي : المعلمين وإذا كان مختلف تأخذ القمية صفر. نتمنى أني قد أوصلت الفكرة لكم وهل يمكن تجسيدها بالاعتماد على الجدول فقط أو الإعتماد على طريقة اخرى الرجاء المساعدة والتوجيه وبارك الله فيكم BASE-E.accdb
Foksh قام بنشر بالامس في 05:01 قام بنشر بالامس في 05:01 منذ ساعه, moho58 said: السلام عليكم وعليكم السلام ورحمة الله تعالى وبركاته 🤗 كإجابة على السؤال المهم في طلبك ، إن كان يمكن تحقيقه من خلال الجدول نفسه ، فإجابتي لا . ما لم يكن هناك رأي آخر . فمثلاً لا تستطيع ادخال قيمة افتراضية لحقل ما داخل جدول من خلال معادلة أو جملة شرطية . كمثال:- =IIf([loifondamontale]="المهندسين", 1, 0) ولا أحاول إحباطك ، فيمكن تحقيق الهدف بطرق مختلفة . منها استخدام الجمل الشرطية المعقدة داخل حدث بعد التحديث لمربع النص او الكومبوبوكس loifondamontale كمثال للتوضيح بالافتراض ان لديك نموذج لإدخال البيانات في هذا الجدول :- Private Sub loifondamontale_AfterUpdate() Dim typ As String typ = Me.loifondamontale If typ = "مهندسين" Then Me.evalu_moubadara_chaksia = 5 Me.evalu_itkan_elamel = 4 Me.evalu_nachatat_tarbia = 3 Me.evalu_absence = 0 Me.evalu_retard = 1 Me.evalu_tatwir = 2 Me.evalu_absence_prof = 0 Me.evalu_retard_prof = 0 Me.evalu_nadawat_prof = 0 Me.evalu_nachatat_tarbia_prof = 0 Me.evalu_mobadara_prof = 0 ElseIf typ = "معلمين" Then Me.evalu_absence_prof = 1 Me.evalu_retard_prof = 2 Me.evalu_nadawat_prof = 3 Me.evalu_nachatat_tarbia_prof = 4 Me.evalu_mobadara_prof = 5 Me.evalu_moubadara_chaksia = 0 Me.evalu_itkan_elamel = 0 Me.evalu_nachatat_tarbia = 0 Me.evalu_absence = 0 Me.evalu_retard = 0 Me.evalu_tatwir = 0 Else Me.evalu_moubadara_chaksia = 0 Me.evalu_itkan_elamel = 0 Me.evalu_nachatat_tarbia = 0 Me.evalu_absence = 0 Me.evalu_retard = 0 Me.evalu_tatwir = 0 Me.evalu_absence_prof = 0 Me.evalu_retard_prof = 0 Me.evalu_nadawat_prof = 0 Me.evalu_nachatat_tarbia_prof = 0 Me.evalu_mobadara_prof = 0 End If End Sub هذا كإقتراح أول يعتمد على الجملة الشرطية المتعددة ( أو حتى باستخدام Case ) وكلاهما يؤدي الغرض نفسه . أما عن وجود حل آخر وهو استخدام جدول للقيم الإفتراضية التي تريدها ولنفترض انه سيتكون من 3 حقول ( نوع الموظف ، اسم الحقل ، القيمة الإفتراضية ) - أسماء مجازية - وتملأ القيم مرة واحدة ( وقد يكون لها مستقبلاً نموذج لتعديلها حسب رغبتك ) . ثم وبنفس النمط - في حدث بعد التحديث لمربع النص نفسه أو الكومبوبوكس - نستخدم أسلوب كمثال :- Private Sub loifondamontale_AfterUpdate() Dim rs As DAO.Recordset Dim fldName As String, defVal As Variant Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_DefaultValues WHERE نوع_الموظف = '" & Me.loifondamontale & "'") Do While Not rs.EOF fldName = rs!اسم_الحقل defVal = rs!القيمة_الافتراضية Me(fldName) = defVal rs.MoveNext Loop rs.Close Set rs = Nothing End Sub 💡 وفي هذا الحل من الضروري أن تكون أسماء مربعات النص ( في النموذج ) مطابقة تماماً لأسماء الحقول في الجدول . وقد يكون هناك حلول اخرى تعتمد على الاستعلامات تحديث ، ولكنك هنا ستحتاج شرطاً لتحديد السجل الحالي برقم الموظف أو id الحقل ... إلخ. جرب ولن تخسر شيء 😇. 1
moho58 قام بنشر بالامس في 09:25 الكاتب قام بنشر بالامس في 09:25 3 ساعات مضت, Foksh said: وعليكم السلام ورحمة الله تعالى وبركاته 🤗 كإجابة على السؤال المهم في طلبك ، إن كان يمكن تحقيقه من خلال الجدول نفسه ، فإجابتي لا . ما لم يكن هناك رأي آخر . فمثلاً لا تستطيع ادخال قيمة افتراضية لحقل ما داخل جدول من خلال معادلة أو جملة شرطية . كمثال:- =IIf([loifondamontale]="المهندسين", 1, 0) ولا أحاول إحباطك ، فيمكن تحقيق الهدف بطرق مختلفة . منها استخدام الجمل الشرطية المعقدة داخل حدث بعد التحديث لمربع النص او الكومبوبوكس loifondamontale كمثال للتوضيح بالافتراض ان لديك نموذج لإدخال البيانات في هذا الجدول :- Private Sub loifondamontale_AfterUpdate() Dim typ As String typ = Me.loifondamontale If typ = "مهندسين" Then Me.evalu_moubadara_chaksia = 5 Me.evalu_itkan_elamel = 4 Me.evalu_nachatat_tarbia = 3 Me.evalu_absence = 0 Me.evalu_retard = 1 Me.evalu_tatwir = 2 Me.evalu_absence_prof = 0 Me.evalu_retard_prof = 0 Me.evalu_nadawat_prof = 0 Me.evalu_nachatat_tarbia_prof = 0 Me.evalu_mobadara_prof = 0 ElseIf typ = "معلمين" Then Me.evalu_absence_prof = 1 Me.evalu_retard_prof = 2 Me.evalu_nadawat_prof = 3 Me.evalu_nachatat_tarbia_prof = 4 Me.evalu_mobadara_prof = 5 Me.evalu_moubadara_chaksia = 0 Me.evalu_itkan_elamel = 0 Me.evalu_nachatat_tarbia = 0 Me.evalu_absence = 0 Me.evalu_retard = 0 Me.evalu_tatwir = 0 Else Me.evalu_moubadara_chaksia = 0 Me.evalu_itkan_elamel = 0 Me.evalu_nachatat_tarbia = 0 Me.evalu_absence = 0 Me.evalu_retard = 0 Me.evalu_tatwir = 0 Me.evalu_absence_prof = 0 Me.evalu_retard_prof = 0 Me.evalu_nadawat_prof = 0 Me.evalu_nachatat_tarbia_prof = 0 Me.evalu_mobadara_prof = 0 End If End Sub هذا كإقتراح أول يعتمد على الجملة الشرطية المتعددة ( أو حتى باستخدام Case ) وكلاهما يؤدي الغرض نفسه . أما عن وجود حل آخر وهو استخدام جدول للقيم الإفتراضية التي تريدها ولنفترض انه سيتكون من 3 حقول ( نوع الموظف ، اسم الحقل ، القيمة الإفتراضية ) - أسماء مجازية - وتملأ القيم مرة واحدة ( وقد يكون لها مستقبلاً نموذج لتعديلها حسب رغبتك ) . ثم وبنفس النمط - في حدث بعد التحديث لمربع النص نفسه أو الكومبوبوكس - نستخدم أسلوب كمثال :- Private Sub loifondamontale_AfterUpdate() Dim rs As DAO.Recordset Dim fldName As String, defVal As Variant Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_DefaultValues WHERE نوع_الموظف = '" & Me.loifondamontale & "'") Do While Not rs.EOF fldName = rs!اسم_الحقل defVal = rs!القيمة_الافتراضية Me(fldName) = defVal rs.MoveNext Loop rs.Close Set rs = Nothing End Sub 💡 وفي هذا الحل من الضروري أن تكون أسماء مربعات النص ( في النموذج ) مطابقة تماماً لأسماء الحقول في الجدول . وقد يكون هناك حلول اخرى تعتمد على الاستعلامات تحديث ، ولكنك هنا ستحتاج شرطاً لتحديد السجل الحالي برقم الموظف أو id الحقل ... إلخ. جرب ولن تخسر شيء 😇. تحية طيبة اخي و استاذنا @Foksh مشكور جدا على الرد وعلى سرعة الإجابة الحل الأول يبدو جيدا جدا و يفي بالغرض أنا سأستعمل نمودجين عند ادخال البيانات النموذج الأول خاص : بالمهندسين و واضع شرط في النموذج loifondamontale = مهندسين النموذج الأول خاص : بالمعلمين و واضع شرط في النموذج loifondamontale = معلمين فلن أستعمل مربع النص بعد التحديث سأجرب هذه الأكواد في النموذج في حدث عند الحالي مثلا كون سأبتعد عن الكمبيوتر -سأجرب هذا الحل بعد سويعات (قبل المساء ) ,اخبرك بالنتيجة جزاك الله كل الخير أخي وبارك الله فيك
ابوخليل قام بنشر بالامس في 10:17 قام بنشر بالامس في 10:17 مداخلة وآمل ان يتسع صدر صاحب المسألة لملاحظتي . طريقة التصميم بحاجة الى اعادة نظر جعل كل نوع له حقوله الخاصة غير عملي .. ومخالف لنظام قواعد البيانات ... طريقتك هذه مكانها اكسل 1
moho58 قام بنشر منذ 12 ساعات الكاتب قام بنشر منذ 12 ساعات تحية طيبة أخي @Foksh لقد حاولت ولم تضبط معي لقد أرفقت لك الملف عندما تتيج لك الفرصة إن أمكن تطبق الحل الأول المقترح عندي نموذجين : نموذج خاص بالنوع: المهندسين والنوع الثاني: خاص : بالمعلمين وجزاك الله خيرا
Foksh قام بنشر منذ 12 ساعات قام بنشر منذ 12 ساعات 5 دقائق مضت, moho58 said: لقد حاولت ولم تضبط معي أهلاً أخي الكريم .. يبدو انك لم تأخذ بنصيحة معلمي الفاضل أبو خليل , ثم انك لم ترسل المرفق الذي تقول عنه يحتوي النموذجين !!!
moho58 قام بنشر منذ 12 ساعات الكاتب قام بنشر منذ 12 ساعات 23 ساعات مضت, ابوخليل said: مداخلة وآمل ان يتسع صدر صاحب المسألة لملاحظتي . طريقة التصميم بحاجة الى اعادة نظر جعل كل نوع له حقوله الخاصة غير عملي .. ومخالف لنظام قواعد البيانات ... طريقتك هذه مكانها اكسل أهلا ومرحبا أخي @ابوخليل يسعدني كثيرا مداخلتك ومرورك - شاكرا جدا فضلكم علي وعلى المنتدى الجميل نحن نتعلم منكم و من أمثالكم أساتذنا الكرام وكذا الأعضاء الكرام لو سمحت سأعرض كيفية عمل هذا المشروع وتسعدني مرة أخرى ملاحظاتك هذا العمل خاص بتقييم الموظفين عندي جدولين : الجدول الأول:خاص بالبيانات العامة للموظفين فية : الاسم - الميلاد- النوع- الدرجة وكل شئ.....خاص بالموظف الجدول الثاني: خاص بمعايير التقييم : تقييم الموظفين يتم ادراج بواسطة " زر "البيانات التي احتاجها من الجدول الأول في الجدول الثاني كمثال فقط أنا وضعت هنا نوعين من التقييمات نوع : المهندسين عنده نوع من التقييمات تختلف تماما عن تقييمات نوع المعلمين في الأسماء والنقاط المتحصل عليها لذا وضعت حقول مختلفة حسب معرفتي المتواضعة الان, Foksh said: أهلاً أخي الكريم .. يبدو انك لم تأخذ بنصيحة معلمي الفاضل أبو خليل , ثم انك لم ترسل المرفق الذي تقول عنه يحتوي النموذجين !!! والله كنت أكتب في كيفية عمل هذا المشروع لأستاذنا @ابوخليلبينما أنت كتب هذا التعليق تفضل أخي @Foksh BASE-E1.accdb 1
Foksh قام بنشر منذ 11 ساعات قام بنشر منذ 11 ساعات منذ ساعه, moho58 said: والله كنت أكتب في كيفية عمل هذا المشروع لأستاذنا @ابوخليلبينما أنت كتب هذا التعليق ولا يهمك أخي الكريم .. لكن لي نوضيح لك مستقبلاً .. انت تعلم أن التعامل مع النماذج المستمرة يختلفعن النماذج المنفردة ( صحيح ؟؟ ) ناهيك عن موضوع الرول باك الذي تستعمله على العموم جرب هذا التعديل في مرفقك حيث استخدمت نفس الكود تماماً في الزرين في النموذجين .. Private Sub cmdSave_Click() Dim rs As DAO.Recordset Dim typ As String With WrkSpace 'commit any changes .CommitTrans Me.Recordset.Requery 'begin new transaction .BeginTrans End With m_dirty = False Set rs = Me.RecordsetClone rs.MoveFirst Do While Not rs.EOF typ = Me.نص929 rs.Edit If typ = "مهندسين" Then rs!evalu_moubadara_chaksia = 4.5 rs!evalu_itkan_elamel = 4.5 rs!evalu_nachatat_tarbia = 3 rs!evalu_absence = 8 rs!evalu_retard = 4 rs!evalu_tatwir = 4.5 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 Else rs!evalu_moubadara_chaksia = 0 rs!evalu_itkan_elamel = 0 rs!evalu_nachatat_tarbia = 0 rs!evalu_absence = 0 rs!evalu_retard = 0 rs!evalu_tatwir = 0 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 End If rs.Update rs.MoveNext Loop Set rs = Nothing m_dirty = False End Sub عدل القيم حسب حاجتك ، فأنا تعديلي كان حسب النموذج ، ولك الباقي حسب ما تراه مناسباً لمشروعك BASE-E1.zip
ابوخليل قام بنشر منذ 8 ساعات قام بنشر منذ 8 ساعات 3 ساعات مضت, moho58 said: نوع : المهندسين عنده نوع من التقييمات تختلف تماما عن تقييمات نوع المعلمين في الأسماء والنقاط المتحصل عليها لذا وضعت حقول مختلفة حسب معرفتي المتواضعة حتى النماذج تم تكرارها .. نموذج واحد يقوم بالمهمة اما السطر الأحمر فأعرف ماذا تريد ان تصل اليه .. انت تريد تثبيت القيمة الافتراضية من اجل تسهيل عملية الادخال هذا يتحقق بجعل القيم الافتراضية في النموذج وليس الجدول .. وهنا يمكن ان نتجاوز عن تكرار النموذج ________ يجب ان تفكر في المخرجات وما يواجهك مستقبلا في الاستعلامات والتقارير .. سيتم تكرار ادوات وكائنات لكل نوع
ابوخليل قام بنشر منذ 8 ساعات قام بنشر منذ 8 ساعات القيمة الافتراضية ستكون عقبة مستقبلا هذه القيم التي تضعها قد تتغير من فصل الى آخر ومن سنة الى اخرى هل اذا تغيرت ستدخل مستقبلا الى التصميم وتغيرها ؟؟ هذه ليست برمجة فكر بطريقة تجعل هذه القيم بيد المستخدم .. يغيرها كيف ومتى شاء
moho58 قام بنشر منذ 7 ساعات الكاتب قام بنشر منذ 7 ساعات (معدل) تحية طيبة - نعم معك أخي @Foksh أنا أتعامل مع النماذج المستمرة والأكواد الموجدودة فيها نوعا ما يؤثر على المطلوب لو سمحت بعد التجربة عند الضغط على زر "حفظ" يعطينا القيمة الافتراضية - لكن عندما أٍريد ان أغير القيمة الافتراضية للموظف وأضغط على زر "حفظ "يرجعلي القيمة الافتارضية من جديد مثال: عند الضغط على زر حفظ نفرض القيمة الافتراضية للموظف هي 8 أغيرها إلى 1 ثم اضغط على زر حفظ ترجع 8 كما كانت طلبي إن أمكن طبعا الكود لا يكون مرتبط بزر حفظ- *وإن أمكن القيم التلقائية تكون ظاهرة عند فتح النموذج دون الضغط على أي زر . وجزاك الله خيرا تحية طيبة استاذنا @ابوخليل نعم معك حق انا اريد تثبيت القيمة الافتراضية من أجل تسهيل عملية الادخال - لأن أغلب الموظفين يأخدون العلامة الافتراضية و تبقى فئة قليلة جدا ممكن أغير لها القيمة لنفرض عدد الموظفين 500 صعب جدا ادخلها يدويا - من الأحسن تكون افتراضية وظاهرة - حسب علمي ومعرفتي المحدودة هذي المعايير لا تتغيير من سنة إلى أخرى ولكن معك حق ممكن تتغيير عندما يتم تغيير نظام تقييم الموظفين مثلا بعد 10 سنوات فيما يخص النماذج واختصارها أنا عندي حوالي 5 أنواع : مهندسن - معلمين - باحثين-.... هل يمكن إختصارها في نموذج واحد والمعايير تختلف والتسميات تختلف وهل لا يؤثر ذلك عند حجز الدرجات (النقاط) إذا كان العدد كبير للموظفين وجزاك الله خيرا أستاذنا وتشرفنا ملاحظاتك من جديد تم تعديل منذ 7 ساعات بواسطه moho58 زيادة الشرح
ابوخليل قام بنشر منذ 7 ساعات قام بنشر منذ 7 ساعات الآن انت تصارع من اجل ادخال البيانات لا يهم مسألة طريقة الادخال مهما كانت معقدة .. بقدر أهمية التصميم الصحيح للجداول المبرمج الناجح الذي يعمل ويستمتع همه الأكبر صحة التأسيس . لأن خلفها تبعات : استعلامات وتقارير الـ 500 موظف الم يخطر ببالك ادخال تقييمهم جميعا بضغطة زر واحدة ( طبعا حسب فكرتك بوجود قيم افتراضية)؟ ثم بعدها ترجع لمن هو بحاجة الى تعديل ؟ 2
Foksh قام بنشر منذ 5 ساعات قام بنشر منذ 5 ساعات فعلاً ستواجه مشاكل أثناء صراع الأفكار وتنفيذها في نماذجك .. ولكن بناءً على اصرارك ، فقد ارتأتيت تغيير الوجهة كاملة بحيث نجعل العمل من خلال دالة عامة يتم استدعائها في حدث عند التحميل للنماذج ، ودون أن نؤثر على أكوادك في نماذجك .. جرب وأخبرنا بالنتيجة . الصق الدالة التالية في مديول :- Public Sub Foksh(frm As Form) On Error GoTo ErrorHandler Dim rs As DAO.Recordset Dim typ As String Dim ctrl As Control On Error Resume Next Set ctrl = frm.Controls("نص929") If Err.Number <> 0 Then MsgBox "لم يتم التحقق من قيمة وظيفة الموظف", vbExclamation + vbMsgBoxRight, "" Exit Sub End If On Error GoTo ErrorHandler Set rs = frm.RecordsetClone If rs.RecordCount = 0 Then MsgBox "لا توجد سجلات لعرضها", vbInformation + vbMsgBoxRight, "" GoTo CleanUp End If rs.MoveFirst Do While Not rs.EOF typ = ctrl.Value rs.Edit If typ = "مهندسين" Then rs!evalu_moubadara_chaksia = 4.5 rs!evalu_itkan_elamel = 4.5 rs!evalu_nachatat_tarbia = 3 rs!evalu_absence = 8 rs!evalu_retard = 4 rs!evalu_tatwir = 4.5 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 Else rs!evalu_moubadara_chaksia = 0 rs!evalu_itkan_elamel = 0 rs!evalu_nachatat_tarbia = 0 rs!evalu_absence = 0 rs!evalu_retard = 0 rs!evalu_tatwir = 0 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 End If rs.Update rs.MoveNext Loop frm.Requery CleanUp: On Error Resume Next rs.Close Set rs = Nothing Set ctrl = Nothing Exit Sub ErrorHandler: MsgBox " : حدث خطأ" & Err.Description, vbCritical + vbMsgBoxRight, "خطأ" Resume CleanUp End Sub واستدعيها في حدث عند التحميل في نموذجيك أول أمر :- Private Sub Form_Load() Call Foksh(Me) . . . . . End Sub 1
moho58 قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات 2 ساعات مضت, Foksh said: فعلاً ستواجه مشاكل أثناء صراع الأفكار وتنفيذها في نماذجك .. ولكن بناءً على اصرارك ، فقد ارتأتيت تغيير الوجهة كاملة بحيث نجعل العمل من خلال دالة عامة يتم استدعائها في حدث عند التحميل للنماذج ، ودون أن نؤثر على أكوادك في نماذجك .. جرب وأخبرنا بالنتيجة . الصق الدالة التالية في مديول :- Public Sub Foksh(frm As Form) On Error GoTo ErrorHandler Dim rs As DAO.Recordset Dim typ As String Dim ctrl As Control On Error Resume Next Set ctrl = frm.Controls("نص929") If Err.Number <> 0 Then MsgBox "لم يتم التحقق من قيمة وظيفة الموظف", vbExclamation + vbMsgBoxRight, "" Exit Sub End If On Error GoTo ErrorHandler Set rs = frm.RecordsetClone If rs.RecordCount = 0 Then MsgBox "لا توجد سجلات لعرضها", vbInformation + vbMsgBoxRight, "" GoTo CleanUp End If rs.MoveFirst Do While Not rs.EOF typ = ctrl.Value rs.Edit If typ = "مهندسين" Then rs!evalu_moubadara_chaksia = 4.5 rs!evalu_itkan_elamel = 4.5 rs!evalu_nachatat_tarbia = 3 rs!evalu_absence = 8 rs!evalu_retard = 4 rs!evalu_tatwir = 4.5 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 Else rs!evalu_moubadara_chaksia = 0 rs!evalu_itkan_elamel = 0 rs!evalu_nachatat_tarbia = 0 rs!evalu_absence = 0 rs!evalu_retard = 0 rs!evalu_tatwir = 0 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 End If rs.Update rs.MoveNext Loop frm.Requery CleanUp: On Error Resume Next rs.Close Set rs = Nothing Set ctrl = Nothing Exit Sub ErrorHandler: MsgBox " : حدث خطأ" & Err.Description, vbCritical + vbMsgBoxRight, "خطأ" Resume CleanUp End Sub واستدعيها في حدث عند التحميل في نموذجيك أول أمر :- Private Sub Form_Load() Call Foksh(Me) . . . . . End Sub جاري التجريب أخي وسأوافيك بالنتيجة حالا
moho58 قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات 4 ساعات مضت, ابوخليل said: الآن انت تصارع من اجل ادخال البيانات لا يهم مسألة طريقة الادخال مهما كانت معقدة .. بقدر أهمية التصميم الصحيح للجداول المبرمج الناجح الذي يعمل ويستمتع همه الأكبر صحة التأسيس . لأن خلفها تبعات : استعلامات وتقارير الـ 500 موظف الم يخطر ببالك ادخال تقييمهم جميعا بضغطة زر واحدة ( طبعا حسب فكرتك بوجود قيم افتراضية)؟ ثم بعدها ترجع لمن هو بحاجة الى تعديل ؟ معك حق أستاذنا ان امكن طريقة جمع النماذج في نموذج واحد
moho58 قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات بعد التجربة أخي @Foksh تظهر القيم تلقائية - لكن عند تغيير القيم والحفظ والخروج - تبقى نفس القيم الثابتة و لا تتغيير وشكرا كثيرا لك BASE-E3.accdb
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.