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

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

قام بنشر

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

 

في إحدى المواضيع التي تم طرحها في "الفعاليات والتحديات الشهرية" ، وتحديداً في التحدي الأول ، كان من أحد الحلول والأفكار المطروحة ؛ تطبيق ماكرو على مستوى الجدول لمنع التحديث والتعديل لأي قيمة داخل الجدول . لكن طبعاً كانت الفكرة قائمة على التنفيذ اليدوي من خلال إضافة ماكرو قبل التحديث للجدول من خصائص الجدول نفسه . الحاصل هنا أنني أريد تطبيق هذه الفكرة برمجياً ، وخصوصاً أن لدي ما يقارب الـ 25 جدول . والهدف هو منع الحقن الخارجي أو التلاعب بالجداول . وقد أرهقتني كثرة المحاولات ولم أصل إلى نتيجة حتمية برمجية صحيحة . حتى بمساعدة الذكاء الإصطناعي 😣 . وقد طرحت السؤال داخل مجموعتنا "مجتمع آكسيس جروب" في الواتس أب ، ولم ألقَ أي إجابة .

أرجو المساعدة بتطبيق الفكرة برمجياً VBA بحيث أحدد اسم (الجدول / الجداول) التي أريد تطبيق حمايتها من التعديل لأي قيمة ، و الحذف لأي سجل . (كلاهما)

بمعنى أوضح . أريد عند الدخول إلى جدول ومحاولة تعديل قيمة على أحد الحقول (وليس حقل محدد) لأي سجل أو محاولة حذف أي سجل ، أن يتم منعي بإظهار رسالة بأن "الجدول محمي من التعديل" ( للتعديل ) . أو "لا يمكنك حذف سجلات من هذا الجدول" ( للحذف ) . فهل هذا ممكن برمجياً ❓

 

أفيدوني أفادكم الله .

وهذا ملف مرفق كمثال يحتوي جدول بحقول بسيطة وبه 3 سجلات عشوائية .

 

TblMacroVBA.accdb

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

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

سأفترض انها على مستوى النماذج التي تحتوى الجداول .

مجرد فكره بسيطة 

1-نعمل جدول و يتم وضع به اسماء الجداول ال 25 المراد حمايتها 

2-نعمل دالة نختبر هل الجدول الحالي ( الذي هو مصدر السجلات للنموذج الحالي مثلا)  من ضمن الجداول ال 25 ام لا 

اذا كان منهم نمنع التعديل و اذا كان ليس منهم نسمح بالتعديل

 

تم تعديل بواسطه mohammed farhat
قام بنشر (معدل)
22 دقائق مضت, mohammed farhat said:

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

سأفترض انها على مستوى النماذج التي تحتوى الجداول .

مجرد فكره بسيطة 

1-نعمل جدول و يتم وضع به اسماء الجداول ال 25 المراد حمايتها 

2-نعمل دالة نختبر هل الجدول الحالي ( الذي هو مصدر السجلات للنموذج الحالي مثلا)  من ضمن الجداول ال 25 ام لا 

اذا كان منهم نمنع التعديل و اذا كان ليس منهم نسمح بالتعديل

 

شكراً لاستجابتك مهندس محمد ..

انا أريد منع التعديل على الجداول نفسها من داخل الجداول نفسها .

يعني لو فتحت أي جدول وحاولت اعمل عليه تعديل أو حذف سجل ، يمنع التعديل أو الحذف منه .

 

كمثال ، جرب تعدل على أي قيمة داخل الجدول أو حذف السجل في الملف التالي الذي تمت إضافة الحماية عليه يدوياً

Test.accdb

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

تفضل عمي فادي .. جرب 🙂 :

TblMacroVBA.accdb

 

لتطبيق الحماية أو إزالتها على جدول أو مجموعة جداول  :

' Usage (from VBA Immediate Window or code):
'   ApplyTableProtection "Tbl_Cust"               ' single table
'   ApplyTableProtection "Tbl_Cust", "Tbl_Orders"  ' multiple tables
'
'   RemoveTableProtection "Tbl_Cust"
'   RemoveTableProtection "Tbl_Cust", "Tbl_Orders"

 

  • Like 1
قام بنشر (معدل)
1 ساعه مضت, Moosak said:

تفضل عمي فادي .. جرب 🙂 :

شكراً لك من القلب مهندسنا أبا المعتصم :clapping: .. أمسكتني طرف الخيط بشكل محكم ..

ولكن في تجربتك الجميلة والرائعة كانت النتيجة عند تجربة الإضافة والحفظ من داخل نموذج :-

image.gif.bbee6885a1de1bddbf5d91d697aa1bea.gif

 

أي أنه حتى النموذج لم يستطع إضافة سجل 😥 .

أيضاً لو كان لدي 25 جدول على سبيل المثال ، فهل سأضطر إلى كتابة كافة أسماء الجداول في مصفوفة الاستدعاء للحماية أو الحذف 😁 !!

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

حتى النموذج لم يستطع إضافة سجل

حبيبنا .. أنت الآن تمسك الأداة الأساسية بيدك .. وباقي أنك تبدع في استخدامها بعدة أشكال 😁👌

واحد من الحلول : تستدعي دالة فك الحماية في زر الحفظ قبل أمر الحفظ وتعيد الحماية بعد تأكيد الحفظ .. بكذا تضمن أن الحماية تشتغل في الجداول فقط 👍🏻🙂

منذ ساعه, Foksh said:

كان لدي 25 جدول على سبيل المثال ، فهل سأضطر إلى كتابة كافة أسماء الجداول في مصفوفة الاستدعاء للحماية أو الحذف

هذي بلمسة بسيطة من أيدك الكريمة وتكون محلولة قدامك .. 😅🖐🏻

هم سطرين لوووب تكتبهم يطبقولك الدالة على كل الجداول 😎

قام بنشر

تتركني في أول الطريق ، وانت صاحب الكود وأدرى بخباياه 😥 ...

بحاول ، وإن لم أخرج بنتيجة ، فنرجوا المساعدة ممن يجود علينا بكرمه 

قام بنشر

وحتى لا يتبادر إلى ذهن أي شخص فكرة أنني أملك الحل .. فقد يظن البعض أني أُمهد لموضوع جديد أو فكرة جديدة .😣.

فوالله أني لم أتعثر حتى بطرف الخيط ، ولم أستدل إلى فكرة حتى لو لم تكن ناجحة 😇

  • Haha 1

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

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

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

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

سجل حساب جديد

تسجيل دخول

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

سجل دخولك الان
×
×
  • اضف...

Important Information