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

مساعدة في مشروع ادارة مهام


Hadi22

الردود الموصى بها

السلام عليكم 

 

اخواني اعضاء منتدى اوفيسنا لاغنى عنكم في المساعدة 

لدي قاعدة بيانات مرفقة وهي عبارة عن ادارة مهام 

اود منكم مساعدتي في تحديث حالة المهمة 

عند فتح حالة المهمة يفتح نموذج بداخلة قائمة منسدلة 

المسبوق اسمهم ب حالة Maintb المفترض عند الضغط على القائمة المنسدلة تقوم بعرض جميع الموظفين الموجودين في جدول

Capture.png

بعد اختيار الموظف يتم عرض جميع المهام المشترك فيها هذا الموظف 

شاكرا لكم اعزائي 

 

Database1.rar

رابط هذا التعليق
شارك

1 minute ago, jjafferr said:

وعليكم السلام :rol:

 

فتشت الجداول الثلاث ، ولم القى حقل للموظفين!!

وياريت تعطينا شرح مفصل اكثر ، حتى نستطيع ان نقتدي به ونساعدك في برنامجك :rol:

 

 

جعفر

عفوا الموظفين المقصود بهم 

image.png

رابط هذا التعليق
شارك

10 minutes ago, jjafferr said:

طيب ، ايش نعمل بهذه الاسماء؟

 

لوسمحت تعطينا مثال/شرح مفصل  ، حتى نستطيع ان نقتدي به ونساعدك في برنامجك :rol:

 

جعفر

المقصود هو التالي 

عند فتح نموذج تحديث حالة المهمة 

 الموجودين في الصورة ادناه بدائرة حمراء Maintb يقوم المستخدم باختيار احد الموظفين الموجودين في الجدول  Capture.png

وعند اختيار مثلا حالة مشرف 1 قسم 1

يظهر في النموذج اسفل القائمة المنسدلة جميع المهام المرتبطة بهذا الموظف 

2333.png

ارجو ان تكون وضحت الفكرة 

رابط هذا التعليق
شارك

تفضل :rol:

 

368.Clipboard01.jpg

.

الكود الذي يقوم بالعمل هو:


Private Sub Form_Open(Cancel As Integer)

    Me.sfrm_updatefrm.Visible = False
End Sub

Private Sub poscom_AfterUpdate()

    Me.sfrm_updatefrm.Visible = True
    
    H = "حالة " & [Forms]![updatefrm]![poscom]
    B = "بريد " & [Forms]![updatefrm]![poscom]
    Me.sfrm_updatefrm!lbl_H.Caption = H
    Me.sfrm_updatefrm!lbl_B.Caption = B
    Me.sfrm_updatefrm!str_H.ControlSource = H
    Me.sfrm_updatefrm!str_B.ControlSource = B
    
    mySQL = "SELECT Category, [Sub-Category], Action, [Due Date], "
    mySQL = mySQL & "[" & H & "], "
    mySQL = mySQL & "[" & B & "]"
    mySQL = mySQL & " FROM Maintb"
    'Debug.Print mySQL
    
    
    Me.sfrm_updatefrm.Form.RecordSource = mySQL
    Me.sfrm_updatefrm.Requery
    
End Sub

 

جعفر

368.Database1.mdb.zip

  • Like 1
رابط هذا التعليق
شارك

40 minutes ago, jjafferr said:

تفضل :rol:

 

368.Clipboard01.jpg

.

الكود الذي يقوم بالعمل هو:



Private Sub Form_Open(Cancel As Integer)

    Me.sfrm_updatefrm.Visible = False
End Sub

Private Sub poscom_AfterUpdate()

    Me.sfrm_updatefrm.Visible = True
    
    H = "حالة " & [Forms]![updatefrm]![poscom]
    B = "بريد " & [Forms]![updatefrm]![poscom]
    Me.sfrm_updatefrm!lbl_H.Caption = H
    Me.sfrm_updatefrm!lbl_B.Caption = B
    Me.sfrm_updatefrm!str_H.ControlSource = H
    Me.sfrm_updatefrm!str_B.ControlSource = B
    
    mySQL = "SELECT Category, [Sub-Category], Action, [Due Date], "
    mySQL = mySQL & "[" & H & "], "
    mySQL = mySQL & "[" & B & "]"
    mySQL = mySQL & " FROM Maintb"
    'Debug.Print mySQL
    
    
    Me.sfrm_updatefrm.Form.RecordSource = mySQL
    Me.sfrm_updatefrm.Requery
    
End Sub

 

جعفر

368.Database1.mdb.zip

عمل ومجهود تشكر عليه اخي جعفر 

ممكن تشرح لي هذا الكود 

    H = "حالة" & [Forms]![updatefrm]![poscom]

 

 

 

رابط هذا التعليق
شارك

تفضل سيدي الفاضل :rol:


Private Sub Form_Open(Cancel As Integer)

    'عند فتح النموذج ، اجعل النموذج الفرعي مخفي
    'لأننا لا نريد المستخدم ان يرى غير البيانات المطلوبة
    Me.sfrm_updatefrm.Visible = False
End Sub

Private Sub poscom_AfterUpdate()

    'الآن وقد تم اختيار الشخص ، نجعل النموذج الفرعي مرئي
    Me.sfrm_updatefrm.Visible = True
    
    'هناك حقلين موجودين في الجدول لكل شخص
    'حقل يبدأ بكلمة "حالة" و حقل يبدأ بكلمة "بريد" فقط
    'فإذا اضفنا كلمة "حالة " قبل اسم الشخص ، ثم اضفنا اسم الشخص عليها
    'ستكون نفس اسم الحقل في الجدول ، ونفس الشئ بالنسبة للحقل الثاني، بريد
    H = "حالة " & [Forms]![updatefrm]![poscom]
    B = "بريد " & [Forms]![updatefrm]![poscom]
    'نعطي هذه الاسماء لمسميات الحقول
    Me.sfrm_updatefrm!lbl_H.Caption = H
    Me.sfrm_updatefrm!lbl_B.Caption = B
    'والآن نعطي هذه الاسماء كمصدر للحقول
    Me.sfrm_updatefrm!str_H.ControlSource = H
    Me.sfrm_updatefrm!str_B.ControlSource = B
    
    'الآن نعمل استعلام ، ليكون مصدر للنموذج الفرعي
    'اولا نأخذ الحقول الثابتة
    mySQL = "SELECT Category, [Sub-Category], Action, [Due Date], "
    'نضيف الحقلين المتغيرين للشخص، والتي تم عملهما في اعلاه
    mySQL = mySQL & "[" & H & "], "
    mySQL = mySQL & "[" & B & "]"
    'ونكمل الاستعلام بإضافة مصدر معلوماته ، وهو الجدول
    mySQL = mySQL & " FROM Maintb"
    'Debug.Print mySQL
    
    'الآن وقد تم عمل استعلام مصدر بيانات النموذج الفرعي
    'نخبر البرنامج ان يستعمله
    Me.sfrm_updatefrm.Form.RecordSource = mySQL
    'ولو انه لا داعي للسطر التالي ، ولكنه لإعادة قراءة البيانات من الجدول
    Me.sfrm_updatefrm.Requery
    
End Sub

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

14 hours ago, jjafferr said:

تفضل سيدي الفاضل :rol:



Private Sub Form_Open(Cancel As Integer)

    'عند فتح النموذج ، اجعل النموذج الفرعي مخفي
    'لأننا لا نريد المستخدم ان يرى غير البيانات المطلوبة
    Me.sfrm_updatefrm.Visible = False
End Sub

Private Sub poscom_AfterUpdate()

    'الآن وقد تم اختيار الشخص ، نجعل النموذج الفرعي مرئي
    Me.sfrm_updatefrm.Visible = True
    
    'هناك حقلين موجودين في الجدول لكل شخص
    'حقل يبدأ بكلمة "حالة" و حقل يبدأ بكلمة "بريد" فقط
    'فإذا اضفنا كلمة "حالة " قبل اسم الشخص ، ثم اضفنا اسم الشخص عليها
    'ستكون نفس اسم الحقل في الجدول ، ونفس الشئ بالنسبة للحقل الثاني، بريد
    H = "حالة " & [Forms]![updatefrm]![poscom]
    B = "بريد " & [Forms]![updatefrm]![poscom]
    'نعطي هذه الاسماء لمسميات الحقول
    Me.sfrm_updatefrm!lbl_H.Caption = H
    Me.sfrm_updatefrm!lbl_B.Caption = B
    'والآن نعطي هذه الاسماء كمصدر للحقول
    Me.sfrm_updatefrm!str_H.ControlSource = H
    Me.sfrm_updatefrm!str_B.ControlSource = B
    
    'الآن نعمل استعلام ، ليكون مصدر للنموذج الفرعي
    'اولا نأخذ الحقول الثابتة
    mySQL = "SELECT Category, [Sub-Category], Action, [Due Date], "
    'نضيف الحقلين المتغيرين للشخص، والتي تم عملهما في اعلاه
    mySQL = mySQL & "[" & H & "], "
    mySQL = mySQL & "[" & B & "]"
    'ونكمل الاستعلام بإضافة مصدر معلوماته ، وهو الجدول
    mySQL = mySQL & " FROM Maintb"
    'Debug.Print mySQL
    
    'الآن وقد تم عمل استعلام مصدر بيانات النموذج الفرعي
    'نخبر البرنامج ان يستعمله
    Me.sfrm_updatefrm.Form.RecordSource = mySQL
    'ولو انه لا داعي للسطر التالي ، ولكنه لإعادة قراءة البيانات من الجدول
    Me.sfrm_updatefrm.Requery
    
End Sub

 

جعفر

ممتاز 

اخي جعفر انا اعدت استخدام الكود 

ولكن في النموذج الفرعي يظهر لي جميع المهام وليس المهام الخاصة بالاسم المختار فقط ّ؟؟

هل الكود ادناه صحيح 


    Me.sfrm_updatefrm.Visible = True
    
    H = "Status " & [Forms]![updatefrm1]![poscom]
    Me.sfrm_updatefrm!lbl_H.Caption = H
    Me.sfrm_updatefrm!str_H.ControlSource = H

    
    mySQL = "SELECT [Item ID], Category, [Sub-Category], Action, [Due Date], "
    mySQL = mySQL & "[" & H & "] "
    mySQL = mySQL & " FROM Maintb"
    'Debug.Print mySQL
    
    
    Me.sfrm_updatefrm.Form.RecordSource = mySQL
    Me.sfrm_updatefrm.Requery

 

رابط هذا التعليق
شارك

10 دقائق مضت, jjafferr said:

هل من الطبيعي ان جميع الاشخاص لديهم نفس هذه المعلومات التي في المربع الاحمر؟

والمعلومات المتغيرة فقط تلك التي في المربع الازرق؟

368.Clipboard01 - Copy.jpg

 

جعفر

اخي جعفر 

Category جميع المعلومات متغيرة ماعدا الحقل الاول 

هذا الحقل بياناته كتغيره ايضا ولكن محددة في قائمة منسدلة 

 

رابط هذا التعليق
شارك

ولكن في الجدول Maintb ، هناك حقل واحد فقط لجميع الحقول في المربع الاحمر!!

 

يعني هل افهم من كلامك ، انه كلما اردت اضافة مهمة Category لشخص ، فيجب ان تغير بقية الحقول كذلك؟

اذا كان الجواب نعم ، فهذا معناه ان جدولك يحتاج الى تعديل ،

بحيث كلما تُدخل مهمة ، فيجب ان تعمل سجل جديد في الجدول يخص هذا الشخص فقط.

انتظر منك الرد لإجراء التعديل على الجدول.

 

جعفر

رابط هذا التعليق
شارك

اليك التعديلات:

 

1. عمل جدول خاص بالموظفين:

368.Clipboard02.jpg

.

2. تغيير جدول Maintb الى التالي:

368.Clipboard03.jpg

.

الآن ، كل سجل يخص موظف واحد فقط ،

وكلما اردت اضافة معلومات ، فيجب إضافة سجل/سجلات جديده للموظف حسب الحاجة من المهمات :rol:

طبعا الآن يجب ان تغير في نموذج الادخال ، وعليه لازم نغير طريقة عمل النماذج اللي اشتغلنا عليها سابقا ، وكذلك التقرير.

 

جعفر

368.Database1.mdb.zip

رابط هذا التعليق
شارك

13 hours ago, jjafferr said:

اليك التعديلات:

 

1. عمل جدول خاص بالموظفين:

368.Clipboard02.jpg

.

2. تغيير جدول Maintb الى التالي:

368.Clipboard03.jpg

.

الآن ، كل سجل يخص موظف واحد فقط ،

وكلما اردت اضافة معلومات ، فيجب إضافة سجل/سجلات جديده للموظف حسب الحاجة من المهمات :rol:

طبعا الآن يجب ان تغير في نموذج الادخال ، وعليه لازم نغير طريقة عمل النماذج اللي اشتغلنا عليها سابقا ، وكذلك التقرير.

 

جعفر

368.Database1.mdb.zip

حاولت بهذه الطريقة اخي ولم تنجح معي

رابط هذا التعليق
شارك

تفضل ، انا اقصد هذه الطريقة :rol:

 

ونعم يمكن العمل بطريقتك ، وهي ستكون اسهل ، ولكن ،

انت تعمل السجل ، وقد تكون بياناته ليست لجميع الموظفين ، لكنك تدفع ثمن هذا السجل بكثرة حقوله ،

كما انه كلما زاد عندك المستخدمين ، اضطررت ان تغير الجدول وتضيف مستخدم جديد ، وهذا غير عملي :blink:

 

ولا تحتاج الى نموذج لطباعة التقرير :rol:

 

جعفر

370.Database21.accdb.zip

  • Like 1
رابط هذا التعليق
شارك

19 hours ago, Hadi22 said:

تم تعديل قاعدة البيانات ارجو او تطلع عليها اخي جعفر

Database21.zip

شكرا اخي جعفر

 ماذا اذا كان لدي بريد الكتروني لكل مستخدم

وعند الضغط على حفظ يتم ارسال البيانات المدخلة الى المستخدمين الذين تم اختيارهم ؟؟

 

رابط هذا التعليق
شارك

On ‎4‎/‎17‎/‎2016 at 9:18 PM, jjafferr said:

تفضل ، انا اقصد هذه الطريقة :rol:

 

ونعم يمكن العمل بطريقتك ، وهي ستكون اسهل ، ولكن ،

انت تعمل السجل ، وقد تكون بياناته ليست لجميع الموظفين ، لكنك تدفع ثمن هذا السجل بكثرة حقوله ،

كما انه كلما زاد عندك المستخدمين ، اضطررت ان تغير الجدول وتضيف مستخدم جديد ، وهذا غير عملي :blink:

 

ولا تحتاج الى نموذج لطباعة التقرير :rol:

 

جعفر

370.Database21.accdb.zip

IDاخي جعفر هل يمكن استبدال ال

باسم المستخدم مباشرة ؟

 

رابط هذا التعليق
شارك

وعليكم السلام :rol:

 

السبب اللي جعلني استخدم ID بدلا عن اسم المستخدم هو ، انه قد يكون عندك اكثر من مستخدم بنفس نوع الوظيفة ، فالطريقة الصحيحة هي استخدام ID المستخدم :rol:

 

ولكن ، مادام البرنامج يشتغل معاك ، اعمل اللي يعجبك :rol:

 

جعفر

 

رابط هذا التعليق
شارك

1 minute ago, jjafferr said:

وعليكم السلام :rol:

 

السبب اللي جعلني استخدم ID بدلا عن اسم المستخدم هو ، انه قد يكون عندك اكثر من مستخدم بنفس نوع الوظيفة ، فالطريقة الصحيحة هي استخدام ID المستخدم :rol:

 

ولكن ، مادام البرنامج يشتغل معاك ، اعمل اللي يعجبك :rol:

 

جعفر

 

لانه تحدث مشكلة عند استخراج التقرير وهو ظهور الاي دي بدلا من اسم المستخدم 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information