اذهب الي المحتوي
أوفيسنا

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

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

السلام عليكم ...

عند النقر على حذف سجل في قاعدة البيانات " handicapées" ( صورة1) يظهر نموذج " سبب الحذف"  ( صورة2) ، بعد إدخال السبب  في خانة الإختيار  ( صورة3) و النقر على زر " نعم " ، تظهر رسالة تطلب منك إدخال رقم السجل للحذف  ( صورة4)، بعد إدخاله تتم عملية الحذف  ( صورة5).

فإذا أردت إسترجاع هذا السجل مرة أخرى  يالنقر على زر '' سجل المحذوفات " ( صورة6) و النقر على زر " إستعادة السجل المحذوف " ( صورة7)، تظهر كذلك رسالة إدخال الرقم لإستعادته.

السؤال : أريد عدم إظهار رسالة '' إدخال الرقم '' بحيث عملية الحذف تكون مباشرة سواء عند النقر على زر '' نعم " و كذلك عند النقر على زر " إستعادة السجل المحذوف ".

1.png

2.png

3.png

4.png

6.png

7.png

حدف السجل.rar

تم تعديل بواسطه بوكفوس عبدالسلام
إضافة معلومات لتقريب الغرض من السؤال
  • تمت الإجابة
قام بنشر

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

أخي الكريم حياك الله مراراً وتكراراً .. ما شاء الله نشيط اليوم :biggrin:

سأنصحك نصيحة قد تفيدك مستقبلاً في حال كانت لديك رغبة في تطوير مهاراتك في اكسيس .

حاول الإبتعاد عن اسماء الحقول العربية :wavetowel: ، أما فيما تبقى فأنا مسامحك ..

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

هذا الملف بعد التعديل جربه بعد إضافة سجلات لتجربته

 

حدف السجل.accdb

  • Like 1
قام بنشر (معدل)
57 دقائق مضت, بوكفوس عبدالسلام said:

بخصوص الشطر الثاني ، عند عملية  إسترجاع السجل المحذوف ، فبقي نفس الإشكال ( صورة مرفقة )

 

ولا يهمك ، سأطبق الفكرة وارسلها هنا

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

أخي الكريم احذف الحدث اللي في زر الاستعادة ، واستبدله بالتالي VBA

 

    Dim strSQL As String
    Dim RecordNumber As Long
    RecordNumber = Me![الرقم].Value

    strSQL = "UPDATE الإجمالية " & _
             "SET [سبب الحذف] = '" & Null & "', [محذوف] = False " & _
             "WHERE [الرقم] = " & RecordNumber & ";"

    DoCmd.RunSQL strSQL
    MsgBox "تم تحديث السجل بنجاح", vbInformation
    DoCmd.Close acForm, "Frm_Delete"

 

  • Like 1
قام بنشر

شكراً جزيلا ، تم حل الإشكال .

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

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

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

بسيطة أخي الكريم , بعد هذه الجملة

MsgBox "تم تحديث السجل بنجاح", vbInformation

قم بإضافة أمر تحديث للنموذج كالتالي

DoCmd.Requery

 

ولا تنسى تغيير نص الرسالة في كود الإستعادة ,, نسيت تغييره 😅

تم تعديل بواسطه Foksh
  • Like 1
قام بنشر

تم الإجراء بنجاح عند تنفيذ عملية الحذف و الإسترجاع .

و لكن لا يظهر في قاعدة المعطيات عند الضغط على زر '' السجل السابق '' فتظهر رسالة ' impossible d'atteindre l'enregistrement spécifié '  أي ' لا يمكن الوصول إلى السجل المحدد ' بمعنى الذي تم حذفه و إسترجاعه ،إلا بعد الخروج من القاعدة و الدخول مجددا ( صورة مرفقة )

Sans titre.png

قام بنشر

🥴

أخي الكريم نفس المشكلة التي حصلت معك عند الحذف ، استخدم 

Docmd.Requery

بعد الرسالة 😇

  • Like 1
قام بنشر

السلام عليكم ...

جربت Docmd.Requery كما أشرت و لكن لم يفلح الأمر معي ،فإلتجأت إلى حيلة و هي في آخر كود زر " إستعادة السجل المحذوف " ، أضفت كود فتح نموذج قاعدة البيانات (صورة مرفقة ) ،  ففلح الأمر.

Sans titre.png

  • Confused 1
قام بنشر
منذ ساعه, بوكفوس عبدالسلام said:

السلام عليكم ...

جربت Docmd.Requery كما أشرت و لكن لم يفلح الأمر معي ،فإلتجأت إلى حيلة و هي في آخر كود زر " إستعادة السجل المحذوف " ، أضفت كود فتح نموذج قاعدة البيانات (صورة مرفقة ) ،  ففلح الأمر.

Sans titre.png

لا أعتقد انك بحاجة لجملتي تحديث واحدة قبل والثانية بعد اغلاق النموذج ..

جرب نقل الأمر الذي أشرت إليه سابقاً قبل أمر الرسالة مباشرة ..

 

ثانياً عند نسخ اي كود يحتوي لغة عربية من أي مكان تأكد بأن لغة الكيبورد عربية لضمان نسخ الكود مع تنسيق اللغة العربية بشكل صحيح ،، لاحظ النص اللي بالعربي في صورة المرفق اللي ارفقتها تفهم مقصدي

  • Thanks 1
قام بنشر

صدقت 

لقد اجريت الترتيب بعد الرسالة ، بحيث قمت بغلق نموذج  " Frm_Delete " ، و من ثم  " تحديث الإستعلام  " و بعدها يفتح نموذج قاعدة المعطيات يالسجلات التي أسترجعت.

و العملية تمت بنجاح.

شكرأ مرة أخرى على ملاحظاتك السديدة.

Sans titre.png

قام بنشر

يا صديقي ، الجملة الأخيرة اللي انت عاملها اعتقد ملهاش داعي ، والخطأ من عندي أنا ، ولا عيب باعترافي بالخطأ حتى تتوضح الفكرة بشكل أدق لأنني نسيت أنه يجب عمل تحديث للنموذج المفتوح "handicapees" على ما اعتقد ، ويجب بدلاً من

Docmd.Requery

استخدام

Forms!handicapees.requery

وهنا لا حاجة لجملة فتح النموذج وهو في الأساس مفتوح 😅

اعتذر عن الخطأ مرة اخرى 😇 ، وفي زر الاستعادة نفس الشيء .

  • Thanks 1

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information