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

حماية الجداول من استيرادها من برنامج آخر (معدل)


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

السادة الافاضل بعد التحية والتقدير قمت بعمل برنامج في الشركة التي اعمل بها ويعمل علية اكثر من مستخدم بجعل القاعدة علي السيرفر وكل جهاز علية البرنامج متصل بالقاعدة والقاعدة مغلقة بي باس ورد والبرنامج عملة .accde حيث يكون مغلق التعديلات المشكلة التي لدي انة يقدر من يكون لدية خبرة ولو بسيطة في الاكسس انو يعمل ملف اكسس فاضي ويسحب الجداول والاستعلامات او كمان لينك بنهم ودي طبعا مشكلة كبير  ولو عملت باص للجداول علي البرنامج نفسة هتبقي هية بردو نفس المشكلة هيدخل الباص وهيسحب وكل يوزر هيطر يدخل باص البرنامج وباص اليوزر فهل يوجد حل لتلك المشكلة 

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

1 ساعه مضت, محمود حاتم احمد said:

لو الموضوع ملوش حل ياريت حد يفيدني

ممكن تنتظر اجرب شئ ان شاء  الله موعدنا بعد صلاة العشاء ان كان فى العمر بقية

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

السلام عليكم لا أظن أن هناك طريقة تمنع استراد الجداول بنسبة 100% الا ان حولته الى صيغة ACCDE ولكن هناك طرق برمجية لاخفاء الجدول مع ذلك يمكن كسر ومن بين الطرق هذا الملف للاخت زهرة.

برنامج فتح الجداول المخفية.rar

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

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

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

في ١٦‏/١١‏/٢٠٢٠ at 12:44, محمود حاتم احمد said:

السادة الافاضل بعد التحية والتقدير قمت بعمل برنامج في الشركة التي اعمل بها ويعمل علية اكثر من مستخدم بجعل القاعدة علي السيرفر وكل جهاز علية البرنامج متصل بالقاعدة والقاعدة مغلقة بي باس ورد والبرنامج عملة .accde حيث يكون مغلق التعديلات المشكلة التي لدي انة يقدر من يكون لدية خبرة ولو بسيطة في الاكسس انو يعمل ملف اكسس فاضي ويسحب الجداول والاستعلامات او كمان لينك بنهم ودي طبعا مشكلة كبير  ولو عملت باص للجداول علي البرنامج نفسة هتبقي هية بردو نفس المشكلة هيدخل الباص وهيسحب وكل يوزر هيطر يدخل باص البرنامج وباص اليوزر فهل يوجد حل لتلك المشكلة 

 

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

جارى العمل انتظر قليلا وابشر

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

اهلا بالغالى الباشمهندس / ابا جودي ومروض الاكسس

يارب تكون فى اتم صحة واحسن حال

وحشتنى شخصيا ووحشنا ترويضك للأكسس

اتحفنا بابداعتك وحلولك الرائعة

انا شخصيا منتظر

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

42 دقائق مضت, محمود حاتم احمد said:

اخى الفاضل شكرا للمساعدة لاكن نفس المشكلة 

تجربة.png

لا خااااااااااااااالص مش نفس المشكلة طبعا
انت بس مش مركز

 

المرفق فيه 3 قواعد

1- القاعدة الخلفية:  الجداول  ---------------------------------------------- TablesArchivingDB.accdb

2-القاعدة الامامية: النماذج وباقى الكائنات --------------------------------------------Archiving.accdb

3- قاعدة تشغيل التطبيق ------------------------------------------------------------Run My App.mde

 

الى انت فتحتها دى جدول قاعدة تشغيل التطبيق ليس الا :yes:

جرب تانى

ودى صورة من القاعدة الخلفية:  الجداول

0000000000.jpg.75852cae31ab8d69e8370bda5c647556.jpg

 

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

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

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

2 ساعات مضت, محمود حاتم احمد said:

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

اولا اعتذر لم انتبه لطريقة استاذى الجليل ومعلمى القدير الاستاذ @kaser906 :fff: لان الصفحة كانت مفتوحة قبل ان يقوم استاذى بالمشاركة ولن انتبه فأرجوا المعذرة من استاذى الفاضل

وبخصوص الشرح قبل البدء بالشرح وحتى يأخذ كل ذى حق حقه بدأت الفكرة عندى من مرفق للاستاذة زهرة " ام عهود " 

1251527866_post-15367-0276024001318707762_thumb.gif.44fccb461c41163292fba9cab5b10188.gif

وتتمثل فكرتى المتواضعة فى الاتى 

1- تشفير كل من القاعدة الأمامية والخلفية بكلمة مرور وبذلك لا يمكن فتح القاعدتين الا بكسر كلمة المرور 

وللعلم استطعت من قبل كسر كلمات مرور القواعد من النوع .mdb   اما القواعد من النوع .accdb لم استطع كسرها

 

2- قمت بأخفاء اطار الاكسس فى قاعدة البيانات الامامية 

3- طبعا كود ربط القواعد الامامية بجداول الخلفية اليا دون تدخل من المستخدم طبعا يتم تعديل الكود بمسار محدد ان كانت القواعد على سيرفر 

4- قاعدة بيانات لتفتح قاعدة البيانات الامامية دون طلب الباسورد  فهو موجود بالاكواد وطبعا لتأمينه ولعدم الوصول اليه تم تحويل قاعدة البينات الى mde

وهذه الملف  

تم تعديل بواسطه ابا جودى
رابط هذا التعليق
شارك

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

في الحقيقة أن ربط قاعدة البيانات الخلفية بالأمامية إنما هو لوصل البيانات بالنماذج والتقارير! 

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

LinkedTables.png.7f466e9909ed0b3badaf3d16177bd7a2.png

نلاحظ في السجل المحدد كيف قام المعالج بتعريف مصدر البيانات المتعلقة بجداول أكسس.. أرجو أن يكون بمقدوركم فهم العلاقة بين مصدر البيانات ومسميات الجداول في المصدر وقاعدة البيانات الأمامية..

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

نضع الشفرة التالية في وحدة نمطية عامة

Public Function APP_PATH() As String
  APP_PATH = CurrentProject.Path
End Function

Public Function DBDAO() As DAO.Database
  Set DBDAO = OpenDatabase(APP_PATH & "\DB1.ACCDB", False, False, ";PWD=''")'ضع كلمة المررور إذا كانت مطلوبة
End Function

 

نضع الشفرة التالية في حدث عند الفتح في النموذج

  Set Me.Recordset = DBDAO.OpenRecordset("EMPLOYEES", dbOpenDynaset)

 

 

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

منذ ساعه, أبو إبراهيم الغامدي said:

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

في الحقيقة أن ربط قاعدة البيانات الخلفية بالأمامية إنما هو لوصل البيانات بالنماذج والتقارير! 

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

LinkedTables.png.7f466e9909ed0b3badaf3d16177bd7a2.png

نلاحظ في السجل المحدد كيف قام المعالج بتعريف مصدر البيانات المتعلقة بجداول أكسس.. أرجو أن يكون بمقدوركم فهم العلاقة بين مصدر البيانات ومسميات الجداول في المصدر وقاعدة البيانات الأمامية..

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

نضع الشفرة التالية في وحدة نمطية عامة


Public Function APP_PATH() As String
  APP_PATH = CurrentProject.Path
End Function

Public Function DBDAO() As DAO.Database
  Set DBDAO = OpenDatabase(APP_PATH & "\DB1.ACCDB", False, False, ";PWD=''")'ضع كلمة المررور إذا كانت مطلوبة
End Function

 

نضع الشفرة التالية في حدث عند الفتح في النموذج


  Set Me.Recordset = DBDAO.OpenRecordset("EMPLOYEES", dbOpenDynaset)

 

 

استاذى الجليل ومعلمى القدير الاستاذ @أبو إبراهيم الغامدي 

فضلا وكرما ممكن مثال عملى

او التعديل على المرفق الحماية من استيراد الكائنات.zip

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

أهلا بك عزيزي أبا جودي..

منذ ساعه, ابا جودى said:

فضلا وكرما ممكن مثال عملى

 

لاحظ في المثال المرفق أن ألنموذج لا يعتمد على الجدول المرتبط بالطريقة المباشرة..

أبقيت على شفرة الربط الخاصة SQL SERVER للفائد..

LINKED DATA.ZIP

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

44 دقائق مضت, أبو إبراهيم الغامدي said:

أهلا بك عزيزي أبا جودي..

لاحظ في المثال المرفق أن ألنموذج لا يعتمد على الجدول المرتبط بالطريقة المباشرة..

أبقيت على شفرة الربط الخاصة SQL SERVER للفائد..

LINKED DATA.ZIP 88.23 kB · 0 downloads

اولا كل الشكر والتقدير استاذى الجليل ومعلمى القدير الاستاذ @أبو إبراهيم الغامدي :fff:

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

  Set Me.Recordset = DBDAO.OpenRecordset("EMPLOYEES", dbOpenDynaset)

وكيف ننشئ الاستعلامات ؟؟؟؟؟

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

2 ساعات مضت, ابا جودى said:

وكيف ننشئ الاستعلامات ؟؟؟؟؟

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

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

Set Me.Recordset=DBDAO.OpenRecordset("SELECT * FROM CUSTOMERS WHERE [CUSTOMER ID]=" & Me.CB_CUSTOMER_ID)

في الحالة هذه تستطيع وضع جملة الاستعلام في حدث After_Update للحقل..

أو تعيد تنشيط النموذج باستخدام Me.Requery في نفس الحدث

 

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

السلام عليكم 🙂

 

كنت ناوي افرد موضوع خاص لهذا الموضوع ، ولكنك ما شاء الله اخوي ابو ابراهيم ابدعت فيه ، فخليني اساهم هنا 🙂

 

4 ساعات مضت, ابا جودى said:

وكيف ننشئ الاستعلامات ؟؟؟؟؟

 

بالاضافة طريقة اخوي ابو ابراهيم ، اليك طريقه انت متعود عليها :

 

1. هذا مسار قاعدة بيانات الجداول (هذه خطوة مؤقته)  ( D:\Documents\Downloads\LINKED DATA\DB1.ACCDB ) :

image.png.d4f559a8ee6da97c7ddc7c96011755a6.png

.

2. نعمل استعلام عادي في برنامج الواجهة ، وبدون اختيار اي جداول ، ثم نضع في  Source Databasse  ، اسم ومسار قاعدة بيانات الجداول (انظر اعلاه) (بدلا عن كلمة Current)  :

image.png.61fd1bee4909f152d9b2afd9288f1192.png

.

3. انقر على زر Show Tables (رقم 2) ، فسترى جداول قاعدة بيانات الجداول :

image.png.be2a277fe86514118d60534769c69dd2.png

.

4. ونعمل الاستعلام بطريقة عادية ، ونحفظه (كذلك مؤقتا على نعمل النموذج فقط) :

image.png.68bf912959cf7ceb8af0c9013efd3a76.png

.

5. اعمل النموذج المطلوب ، بحيث يكون الاستعلام اعلاه مصدر بياناته:

image.png.c670f639bc46d3f0c37f7facda4f0e91.png

.

6. ثم نحول الاستعلام الى وضع SQL

image.png.729230093a5082388f8d8012b92adff1.png

.

7. ونحصل على الجملة التالية :

image.png.c13b09d2e037d2eeb7ab431d1180cf80.png

.

8. ثم نضع هذه الجملة في السطر الذي وضعه اخوي ابو ابراهيم ، في حدث التحميل للنموذج (الجملة كما هي من الاستعلام وبتعديل بسيط) :

image.png.db9d33559da643b6fe24712b2b3a5914.png

.

9. نحذف الاستعلام مصدر البيانات ، ونحذف اسم الاستعلام من Record Source (مصدر بيانات) النموذج

image.png.b600f8941b5bc21ffea960fc54764414.png

.

10. وكتعديل اخير حتى يشير الى وجدود قاعدة بيانات الجداول في نفس مجلد برنامج الواجهة (حتى يعمل البرنامج على كل جهاز وبأي مجلد) :

image.png.5520119a1785be1a080b09c299151145.png

.

جعفر

 

LINKED DATA_2.zip

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

2 ساعات مضت, أبو إبراهيم الغامدي said:

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

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



Set Me.Recordset=DBDAO.OpenRecordset("SELECT * FROM CUSTOMERS WHERE [CUSTOMER ID]=" & Me.CB_CUSTOMER_ID)

في الحالة هذه تستطيع وضع جملة الاستعلام في حدث After_Update للحقل..

أو تعيد تنشيط النموذج باستخدام Me.Requery في نفس الحدث

 

كلام حضرتك صح صح بس الطريقة معقدة بعض الشئ على طلاب العلم المبتدئين امثالى 

المرفق الاتى فيه 3 قواعد

1- القاعدة الخلفية:  الجداول  ---------------------------------------------- TablesArchivingDB.accdb

2-القاعدة الامامية: النماذج وباقى الكائنات --------------------------------------------Archiving.accdb

3- قاعدة تشغيل التطبيق ------------------------------------------------------------Run My App.mde

تم اضافة بعض التعديلات لتأمين القاعدتين  القاعدة الخلفية / القاعدة الامامية بعدم تمكين زر الشيفت لهما وبهذه الطريفة الان والله اعلم

1- يصعب تمكين الشيفت

2- يصعب استيراد الكائنات من اى منهما

3- يصعب الوصول الى جدول النظام MSysObjects  لاستخراج بيانات الاتصال بقاعدة الجدول 

اترككم مع التجربة :yes:

الحماية 2.rar

تم تعديل بواسطه ابا جودى
  • Like 1
رابط هذا التعليق
شارك

14 دقائق مضت, ابا جودى said:

اترككم مع التجربة :yes:

بعد التجربة ظهرت معي هذه المشكلة 

مشكلة.png

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

في ٢١‏/١١‏/٢٠٢٠ at 20:59, أبو عبدالله الحلوانى said:

بعد التجربة ظهرت معي هذه المشكلة 

 

قضلا وكرما وليس امرا اخى الحبيب ومعلمى واستاذى الجليل استاذ @أبو عبدالله الحلوانى :fff:

ممكن تعيد التجربة وتوافينى بالنتيجة :yes:

تعديل.zip

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

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