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

سؤال: كيف يمكن تصفية العناصر في قائمة Combo عند اختيارها..


anamo

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

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

وهاأنا أطمع بكرمك مرة أخرى وأطرح عليكم سؤالا أرجو ممن لديه الحل أن لا يبخل علي بالإجابة

وحتى لا أطيل عليكم سأبدأ بسؤال مباشرة ,

السؤال كالتالي:

لدي جدول يسمىMainTb فيه خانة Disease وهذه الخانة تأخذ قيمها من جدول خاص بأسماء الأمراض يسمى Disease ..

المهم عملت نموذج وأخذت قيم من الجدول MainTb .. وما أرديه هو أني عندما أختار إسم المرض (لنفرض مثلا الحمى) فإنه عندما أنتقل إلى خانة أخرى لا يظهر هذا المرض من ضمن القائمة..

أي أريد إخفاء إسم المرض المختار حتى لا يتم اختياره مرة أخرى , وذلك منعا من التكرار ..

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

أرجو أنني لا أكون قد أطلت عليكم ..

وشكرا لكم

Anamo.zip

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

أخي الفاضل

السلام عليكم ورحمة الله وبركاته

قد لا تكون هذه الميزه متوفره في مبع التحرير والسرد في برنامج الأكسيس لأن مربع التحرير والسرد ComboBox يعتمد على منشىء الإستعلام والذي بدوره معتمد على جدول معين وهو جدول Disease لهذا سوف تظهر كل الحقول مهما حاولت فهذه الخاصية غير متوفرة .

ولكن يمكن التحايل على هذا الوضع بعمل التالي :

1. انشاء جدول جديد بإسم Disease2 مشابه تماما للجدول Disease ولكنه فارغ من البيانات .

2. نقوم بإنشاء استعلام الحاق بإسم مثلا qryDisease ومهمته هذا الإستعلام تكون في الحاق ما نقوم بإختياره كل مره من الجدول Disease الى الجدول Disease2 حسب معيار الشرط الموجود في جملة الإستعلام هذه

INSERT INTO Disease2 ( DiseaseName )
SELECT Disease.DiseaseName
FROM Disease
WHERE (((Disease.DiseaseName) Like [forms]![main]![Disease]));
حيث نلاحظ في المعيار انه يقوم بإلحاق العبارة او المرض المشابه فقط لمربع التحرير والسرد الذي اخترناه . الآن يجب ان نقوم بحذف هذا المرض من الجدول لأننا قد الحقناه الى الجدول الثاني Disease2 وستكون جملة الإستعلام الخاصة بالحذف حسب الشرط السابق
DELETE Disease.DiseaseName
FROM Disease
WHERE (((Disease.DiseaseName) Like [forms]![main]![Disease]));
هنا ايضا نلاحظ انه تم حذف المرض المختار من الجدول Disease نهائيا وهذا لا يهمنا في شيء طالما اننا قد قمنا بإلحاقه الى الجدول الثاني . الآن نقوم بالتجربه في النموذج وسنجد انه عند حدث بعد التحديث لمربع التحرير والسرد سيتم حذف كل مرض يتم اختياره حتى نكمل جميع الأمراض ولا يتبقى في مربع التحرير والسرد اي مرض لأنها الحقت الى الجدول الثاني . من خلال هذا الكود الذي يقوم بإستدعاء استعلام الإلحاق واستعلام الحذف معا وفي نفس الوقت
Private Sub Disease_AfterUpdate()
DoCmd.SetWarnings False
DoCmd.OpenQuery "qryDisease"
DoCmd.OpenQuery "qrydel"
Me.Disease.Requery
Me.Refresh
DoCmd.SetWarnings True
End Sub
3. الآن بقى عندنا خطوه وهي ارجاع ما تم الحاقه الى الجدول Disease2 الى الجدول Disease وستم ذلك من خلال عملية عكسية للحالة السابقة حيث نقوم بإنشاء استعلام الحاق من الجدول Disease2 الى الجدول Disease وحذف البيانات من الجدول Disease2 ليكون جاهزا لأي مهمه جديده . من خلال الإستعلامين التاليين
INSERT INTO Disease ( DiseaseName )
SELECT Disease2.DiseaseName
FROM Disease2;
DELETE Disease2.DiseaseName
FROM Disease2;
والخطوة الأخيره هي ان نقوم بإنشاء زر امر لكي يقوم بإستدعاء هذين الإستعلامين من خلال الكود التالي
Private Sub RestorTable_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "qry2"
DoCmd.OpenQuery "qry3"
Me.Refresh
End Sub

قد تكون الطريقة طويله ولكنها تفي بالغرض ويتم عملها لمرة واحدة فقط اي انها الآن جاهزة للإستخدام ولا تحتاج الى اي تعديل

وهذا ملفك بعد التعديل قم بالتجربه عليه من خلال اختيار جميع الأمراض مع ملاححظة وضع الـ SerialNumber قبل اختيار اي مرض لأنه سوف ينتقل مباشرة الى الجدول الثاني استمر في اكمال جميع الأمراض حتى النهاية ولا تحاول ضغط زر الأمر استعادة جدول الأمراض وانت في منتصف الأمراض الموجوده في مربع التحرير والسرد حتى لا تفقد البيانات من كلا الجدولين لذا يجب ان تقوم بإنتهاء كاملا من جميع الأمراض وحتى ترى ان مربع التحرير والسرد اصبح فارغا في هذه اللحظة تستطيع استعادة جدول الأمراض من جديد .

za_Anamo_up.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