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

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

قام بنشر

السلام عليكم

المرفق يحتوي ملف اكسس

في حالات كثيرة يتم تغيير مدير المركز بمدير اخر

المطلوب بعد ان يتم التغيير كيف يمكن معرفة اسماء المدراء الذين تم تغييرهم او اعفائهم

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

بحيث يكون اشبه بالشكل التالي

يعفى السيد فارس كامل مدير المقر 1 في دائرة الخالدة ويعين مكانه السيد هادي حامد من دائرة التوازن

او غيرها من الامور الاخرى

حيث في اغلب الحالات نقوم بالتغيير( المسح - الحذف) دون ان يبقى لدينا من معلومات عن المقرات التي تم تغيير مدرائها

ادارة المقرات.rar

قام بنشر

يمكنك إضافة حقل

مغادرة المدير و هو حقل منطقى " نعم - لا "

ثم تنشئ استعلام إلحاق

يلحق كل مدير غادر المقر بجدول

يمكنك عمل تقرير من هذا الجدول الجديد

و أتابع معك حلا أفضل من الخبراء

قام بنشر

السلام عليكم

بالضبط كما ذكر أخي ابو عمر

وهناك طريقة أخرى

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

ولكن يمكنك اظهاره في استعلام آخر عند الطلب ( وهو مطلوبك )

كما يمكنك اضافة حقلي تاريخ احدهما للتعيين وآخر للإعفاء في الجدول ( كزيادة في توثيق المعلومة )

قام بنشر (معدل)

ونعمل على ان الحقل المنطقي المفعل لا يظهر سجله

ولكن يمكنك اظهاره في استعلام آخر عند الطلب ( وهو مطلوبك )

كما يمكنك اضافة حقلي تاريخ احدهما للتعيين وآخر للإعفاء في الجدول ( كزيادة في توثيق المعلومة )

فكرة رهيبة من خبير

و نفعل خاصية

تصفية حسب التحميل

لكن الجزء الخاص بتعيين تاريخ يحتاج بعض التوضيح مشكورا

تم تعديل بواسطه kemas
قام بنشر

إخوتي في الله

من كشكول نقول ...........

حذف السجلات Deleting Records

ويروق لي أن اسمي هذا الموضوع بالحذف الحقيقي و الحذف الافتراضي.

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

ولسبب ما ( مرتبط بالتجربة الطويلة ولأسباب علمية وعملية) ينصح أهل الخبرة في قواعد البيانات ومن يعتبرون من المطورين المعول على كلامهم وتجربتهم ، أن عملية الحذف الحقيقي عملية مؤلمة ومكلفة في آن واحد ، فحين تقرر حذف سجل معين فإنك تقرر الاستغناء عن جزء من المنظومة المعلوماتية التي مرت على هذه القاعدة ، وبالتالي خسارتها للأبد ، ويزيد الامر تعقيدا حين نتعامل مع عملية الحذف المقترن بجداول مرتبطة ، نخسر فيها أطرافا متعددة من العناصر المعلوماتية.

وهنا سأورد الرأي بتصرف مضيفا بعضا من خبرتي المتواضعة، فينتهي القول الى:

بديل مناسب لعملية الحذف الحقيقي ، وتتمثل ببساطة بإضافة الحقول التالية للجداول الرئيسية التي ستتعرض لعمليات الحذف (الافتراضي ) وهي حقل نعم/لا ، وحقل تاريخ وحقل نصي ، وتتلخص العملية بأن تكون هذه الحقول الثلاثة هي محور الحذف الافتراضي ، فحين نقرر عدم حاجتنا للسجل ، ما علينا الا ان نغير قيمة (لا) الافتراضية في الحقل الاول الى (نعم) ، ونضيف عبر الكود التاريخ الى الحقل الثاني Now و اسم المستخدم للحقل الثالث.

هنا طبعا يفترض اننا سنقوم بالاجمال باسناد مصادر السجلات في جميع نماذجنا ونبني استعلاماتنا على اساس افتراضي تكون فيه القيمة للحقل الاول هي (لا) حتى نتجنب السجلات المحذوفة افتراضيا.

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

حين تتعرض لخسارة سجلات مهمة حذفت من قبلك عن طريق الخطأ او عن طريق اي مستخدم

حين تمر السنوات على تطبيقك وياتي يوم تحتاج فيه لاحصاءات ومقارنات وتحليلات وتقارير تتعلق بتاريخ قاعدة البيانات ، سواء لحاجاتك انت او بطلب من ادارتك او عميلك

ستتعرف لأهمية هذا الروتين البسيط.

فحين تتعرض لطلبات لا يقوى عليها صاحب الحذف الحقيقي ، ستكون اجابتك (ممكن ... فكل شيئ متاح)

قام بنشر

اخوتي الأكارم

ما عنيته هو في المثال المصاحب

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

ويكون التحكم في خانة الخيار عن طريق الكود

ولا اعلم هل انا على صواب في اعتقادي هذا ام لا

2ادارة المقرات.rar

قام بنشر (معدل)

الآن فهمت مع بعض الجهد

والحمد لله

فى حال كانت قيمة مربع الاختيار = حقيقي

يتم كتابة تاريخ اليوم أمام الموظف فى حقل تاريخ المغادرة

و رغم أن الموظف حذف حسب التصفية فى النموذج

إلا أنه يبقى معروضا

حتى يتم التحميل فى المرة التالية

قمت بالتعديل على الكود

بحيث لا يتم الحذف إلا بعد رسالة تحذيرية

أيضا عند تمام الحذف تبقى فقط السجلات حسب الشروط

أى الموظف الذى لم يغادر فقط

شكرا للأساتذة

هذا هو الكود



Option Compare Database

Private Sub Check1_AfterUpdate()

If Me.Check1 = True Then

        answer = MsgBox("حقا تريد حذف الموظف  ؟", vbYesNo)

    If answer = vbYes Then

        date_workEnd = Date

        Me.Requery

    Else

        Me.Check1 = False

        date_workEnd = ""

    End If

End If

End Sub


تم تعديل بواسطه kemas
قام بنشر (معدل)

جميل ،،،

وباعتبار ان الحذف سيتم من زر خاص بالحذف

وباعتبار خانة الخيار لا تظهر للمستخدم

هذا تعديل على الكود أيضا :




Private Sub comand1_Click()

answer = MsgBox("حقا تريد حذف الموظف  ?", vbYesNo)

	If answer = vbYes Then

Me.Check1 = True

	   date_workEnd = Date

		Me.Requery

	Else

		Me.Check1 = False

		date_workEnd = ""

	End If


End Sub

تم تعديل بواسطه أبـوخليل
قام بنشر

السلام عليكم

اشكر الاخوة الاعزاء في طرح الاجوبة الرائعة والافكار الرهيبة

ان الحل جزء من الطلب حيث ان المقرات يجب ان نحتفظ بارقامها

الاصلية عند العرض وليس استبعاد ارقام المقرات نهائيا من النموذج

Marakiz

فيجب ان تبقى هذه المقرات على ارقامها

وبعد اطلاعي على افكار الجميع توصلت الى الحل النهائي والمطلب الذي اريده والحمد لله على كل شيء

واضع بين يديكم الحل الذي كنت اتمنى ان اصل اليه وهو الحل النهائي باذن الله

وتم صنع تقريرين مختلفين حسب رغبة الدائرة او المسؤولين

ولكن بقي شيء اعتبره غير ضروري في النموذج Marakiz

وقمت باخفائه عند العرض ولكن عند تصميم النموذج يظهر وقمت بجعل لونهما اصفر

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

وبدون صنع الكائنين في النموذج

لاني اعتبرهما زائدين عن الحاجة

ادارة المقرات الجديد.rar

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