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

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

قام بنشر

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

قام بنشر
  في 19‏/11‏/2020 at 13:12, محمود حاتم احمد said:

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

Expand  

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

قام بنشر

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

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

قام بنشر
  في 16‏/11‏/2020 at 10:44, محمود حاتم احمد said:

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

Expand  

 

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

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

قام بنشر

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

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

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

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

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

قام بنشر

بالموضوع تجد حماية جميع الكائنات وبمافيها الجداول المرتبطه والمضمنة 

::بالتوفيق::

 

 

 

 

  • Like 1
قام بنشر
  في 21‏/11‏/2020 at 09:57, محمود حاتم احمد said:

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

تجربة.png

Expand  

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

 

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

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

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

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

 

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

جرب تانى

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

0000000000.jpg.75852cae31ab8d69e8370bda5c647556.jpg

 

قام بنشر (معدل)
  في 21‏/11‏/2020 at 10:44, محمود حاتم احمد said:

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

Expand  

اولا اعتذر لم انتبه لطريقة استاذى الجليل ومعلمى القدير الاستاذ @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
قام بنشر
  في 21‏/11‏/2020 at 11:46, أبو إبراهيم الغامدي 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)

 

 

Expand  

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

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

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

قام بنشر

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

  في 21‏/11‏/2020 at 12:17, ابا جودى said:

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

 

Expand  

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

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

LINKED DATA.ZIPFetching info...

  • Like 1
قام بنشر
  في 21‏/11‏/2020 at 13:49, أبو إبراهيم الغامدي said:

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

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

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

LINKED DATA.ZIP 88.23 kB · 0 downloads

Expand  

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

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

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

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

قام بنشر
  في 21‏/11‏/2020 at 14:01, ابا جودى said:

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

Expand  

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

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

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

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

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

 

  • Like 2
قام بنشر

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

 

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

 

  في 21‏/11‏/2020 at 14:01, ابا جودى said:

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

Expand  

 

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

 

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.zipFetching info...

  • Like 2
  • Thanks 1
قام بنشر (معدل)
  في 21‏/11‏/2020 at 16:38, أبو إبراهيم الغامدي said:

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

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


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

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

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

 

Expand  

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

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

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

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

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

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

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

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

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

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

الحماية 2.rarFetching info...

تم تعديل بواسطه ابا جودى
  • Like 1
قام بنشر
  في 21‏/11‏/2020 at 18:59, أبو عبدالله الحلوانى said:

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

Expand  

 

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

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

تعديل.zipFetching info...

  • 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