الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

آكسس على الشبكة

رائج
بدأه أحمد الحربي في 20 مايو 2005 · 41 رد · 26,191 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

آكسس على الشبكة ـ درس :

--------------

تهيئة قاعدة بيانات آكسس للعمل على الشبكة :

تنبيه : قبل أن تقوم بعمل أي شيء قم أولاً بأخذ نسخة احتياطية أو نسختين واجعلها في مأمن حتى لا تفقد عملك وجهدك .

** تقسيم قاعدة البيانات :

سنقوم بتقسيم قاعدة البيانات والتي أسميناها MyProg.MDB إلى قسمين :

- الواجهات FrontEnd: وفيها (الاستعلامات ، النماذج ، التقارير ، الماكرو ، الوحدات النمطية ، الصفحات)

- الداتاBackEnd : وفيها فقط (الجداول)

من قائمة أدوات اختر (أدوات مساعدة لقواعد البيانات) ثم اختر (تقسيم قاعدة البيانات) .. سيقوم آكسس بتقسيم القاعدة إلى ملفين وسيجعل ملف الداتا باسم البرنامج مضافاً إليه الحرفين be .. ليصبح الاسم MyProg_be.MDB

- من قائمة (أدوات) ثم (خيارات) ثم (خيارات متقدمة) تأكد من (وضع الفتح الافتراضي) على (مشترك) .

** إنشاء ملف الحماية/الصلاحيات للقاعدة :

في الدليل : \Program Files\Microsoft Office\Office

ستجد الملف MS Access Workgroup Administrator

- افتح الملف وانقر زر إنشاء (Creat) لإنشاء نسخة منه لتخصيصها لبرنامجنا .. أدخل البيانات(اسم المالك(لملف الحماية) ، واسم الشركة ، ورقم WID) واحتفظ بهذه المعلومات لكي تعيد إنشاؤه مرة أخرى فيما لو فقدته .. لأنك حين تربط القاعدة بملف MDW لا يمكن فتحها إلا بوجوده .

- انقر OK ثم اختر موقع الملف .. غير الاسم الافتراضي SYSTEM.MDW واختر اسماً مناسباً لبرنامجك مثلاً MYPrgramSYSTEM.MDW .. ثم انقر OK ثم OK لتأكيد المعلومات .. إذا نجحت العملية ستخرج رسالة بنجاح إنشاء ملف MDW .. ثم انقر خروج Exit .

== ربط الملف MYPrgramSYSTEM.MDW بالقاعدة لجعل صلاحيات الدخول للقاعدة من خلاله فقط :

افتح الملف MYPrgramSYSTEM.MDW ثم من قائمة (ملف) اختر (فتح) .. ثم اختر القاعدة MyProg.MDB لفتحها .. بهذا تم ربط القاعدة بملف الحماية .

لتتأكد من أن القاعدة مربوطة بملف الحماية الذي أنشأناه قبل قليل وهو MYPrgramSYSTEM.MDW أم لا زالت مربوطة بملف الحماية الافتراضي في آكسس SYSTEM.MDW قم بتنفيذ هذا الكود :

MsgBox SysCmd(acSysCmdGetWorkgroupFile)

وانظر إلى الرسالة ، فستظهر ملف حماية القاعدة

- الآن ضع القاعدة الداتا BackEnd وملف الحماية MDW في مجلد في السيرفر .. وأعط صلاحية كاملة للمستخدمين على المجلد .

- والآن مرة أخرى للوصول إلى القاعدة في السيرفر من خلال الواجهات FrontEnd لابد من الجمع بين القاعدة لدى المستخدمين (الواجهات) وملف الحماية الذي في السيرفر في اختصار على سطح المكتب بالطريقة التالية :

أنشأ اختصاراً على سطح المكتب لملف MSACCESS.EXE الذي في جهازك .. ( يوجد هذا الملف في الدليل : Program Files\Microsoft Office\Office\

- انقر بالماوس الأيمن على الاختصار ثم اختر (خصائص)

- سيكون مستطيل (الهدف) هكذا :

"c:\Program Files\Microsoft Office\Office\ MSACCESS.EXE "

- لنفترض أن مجلد ملف الحماية في السيرفر باسم (MyFolder) .. وملف الواجهات myprog.mdb في الـ C قم بإضافة ما يلي إليها :

"c:\myprog.mdb" /wrkgrp "\\ServerName\MyFolder\MYPrgramSYSTEM.MDW "

ServerName هو اسم جهاز السيرفر

- ليكون مستطيل الهدف هكذا :

"c:\Program Files\Microsoft Office\Office\ MSACCESS.EXE " "c:\myprog.mdb" /wrkgrp "\\ServerName\MyFolder\MYPrgramSYSTEM.MDW "

- الآن حاول الدخول إلى القاعدة من خلال الاختصار

- ثم قم بربط الجداول :

من قائمة (أدوات) ثم (أدوات مساعدة لقواعد البيانات) ثم (إدارة الجداول المرتبطة) .. ضع علامة (صح) على (المطالبة دوماً بمكان جديد) ثم انقر زر(تحديد الكل) ثم انقر زر(موافق) ثم حدد القاعدة MyProg_be.MDB في السيرفر في مجلد MyFolder ثم انقر (فتح) ليتم تحديث ربط الجداول .

== إجراءات مهمة :

إنشاء مستخدم له صلاحيات المسؤول .. فننشأ مستخدماً كعضو في مجموعة المسؤولين تمهيداً لجعله مالك للقاعدة Myprog وفق الخطوات التالية :

- الخطوة الأولى : إنشاء مستخدم كعضو في مجموعة (المسؤولين) :

أغلق القاعدة ثم أعد فتحها .. ثم من قائمة (أدوات) ثم (أمان) ثم (حسابات المستخدمين والمجموعات) .. انقر زر (جديد) لإنشاء مستخدم جديد .. ادخل الاسم .. مثلاً Ahmad، ثم رقم التعريف بأربع خانات على الأقل (وهذا غير كلمة مرور الدخول للقاعدة .. فقط تعريف بالمستخدم) .. ستعود إلى الشاشة السابقة .. ثم من القائمة (الاسم) اختر Ahmad من المجموعة المتاحة اختر(مسؤولون) ثم انقر زر (إضافة) .. بهذا أصبح Ahmad عضواً في (مسؤولون) .

- الخطوة الثانية : إنشاء قاعدة جديدة لنجعل Ahmad مالكاً لها (مالك القاعدة هو الذي قام بإنشائها) :

ضع كلمة مرور لـ (مسؤول) لكي يتم تفعيل مربع حوار تسجيل الدخول :

وأنت في شاشة (اشتراك المستخدمين والمجموعات) انقر زر تبويب (تغيير كلمة تسجيل الدخول) .. سيظهر اسم المستخدم الحالي هو : مسؤول .. أدخل كلمة المرور فقط في المستطيلين (كلمة المرور الجديدة) و(التحقق) .. ثم أغلق آكسس ثم افتحه مرة أخرى سيطلب منك تسجيل الدخول .. ادخل الاسم (Ahmad) بدون كلمة مرور لإننا لم ننشأ له كلمة مرور (لا يمكنك إنشاء كلمة مرور لك أو لأي مستخدم حتى تدخل إلى القاعدة باسمه) .

- الخطوة الثالثة :

جعل Ahmad مالكاً لقاعدة البيانات :

- من قائمة (ملف) اختر (جديد) .. ثم (قاعدة بيانات) ثم (موافق) ثم اختر اسماً للقاعدة الجديدة .. سيتم إنشاء قاعدة بيانات فارغة .. سنقوم الآن بجلب الكائنات في القاعدة السابقة .. انقر بالماوس الأيمن على الكائنات(جداول مثلاً) ثم اختر من القائمة المنبثقة (استيراد) .. ثم اختر القاعدة Myprog .. سيفتح مربع حوار (استيراد الكائنات) .. انقر على زر تبويب كائن وفي كل مرة انقر زر (تحديد الكل) .. ثم انقر زر (موافق) .. ليقوم آكسس بجلب الكائنا0ت إلى القاعدة الجديدة .. بهذا حصلنا على قاعدة جديدة مالكها Ahmad

== من أجل الأمان .. نقوم بتعطيل (مسؤول Admin ) حتى لا يمكن الدخول به .. من خلال حذفه من قائمة أعضاء (مسؤولون) ثم تعطيل صلاحياته (لا يمكن حذفه نهائياً) :

- من قائمة (أدوات) ثم (خيارات) ثم (أمان) ثم (حسابات المستخدمين والمجموعات) من القائمة (الاسم) اختر (مسؤول) ثم في قسم (عضو في) اختر (مسؤولون) ثم انقر زر (إزالة) .. بهذا تمت إزالته من مجموعة (مسؤولون) لكنه موجود في مجموعة (مستخدمين)

- لتعطيل صلاحياته نهائياً حتى لا يمكن أن يكون له وجود في القاعدة مع وجود اسمه : - من قائمة (أدوات) ثم (خيارات) ثم (أمان) ثم (أذونات المستخدمين والمجموعات) .. ثم اختر (مسؤول) في قائمة(اسم المستخدم/المجموعة) ثم اختر (نوع الكائن) واحداً واحداً .. وفيما لو وجدت له صلاحيات على أحدها فقم بتعطيله .

- مجموعة المستخدمين : لا زال (مسؤول) عضواً في مجموعة المستخدمين وله صلاحياتها .. مع أننا قمنا بتعطيل صلاحياته لوحده .. لكنه لا زال يمكنه الدخول إلى القاعدة من خلال صلاحيات (المستخدمين) .. أنت هنا بالخيار .. فإذا أردت تعطيل مجموعة (المستخدمين) فاستخدم نفس الطريقة في تعطيل (مسؤول) في نافذة (أذونات المستخدمين والمجموعات) .. بالنسبة لي فأنا أجعلهم مشاهدين فقط للبرنامج فيمكنهم الدخول ولكن لا يمكنهم تنفيذ أي أمر(حذف ، تعديل ، إدراج) .. فقط المشاهدة .. فلو أردت أن أجعل مدير المؤسسة مطلعاً فقط .. أنشأتُ له اسماً ثم جعلته في مجموعة (المستخدمين) .. أما غيرهم فإني أنشأ مجموعة للحذف ومجموعة أخرى للإدراج ومجموعة ثالثة للتعديل .. سأتحدث عن هذه المجموعات بعد قليل .

-لجعل مجموعة المستخدمين مشاهدين فقط .. من نافذة (أذونات المستخدمين والمجموعات) اختر (مجموعات) من قسم (قائمة) ثم اختر (مستخدمون) ثم اختر (نوع الكائن) واحداً واحداً واجعلها (على فتح وقراءة)

بإمكانك تعطيل مجموعة (المستخدمين) أبداً وعدم السماح بدخولهم إلى القاعدة من الأساس : عند اختيارك لمجموعة المستخدمين .. اختر (قاعدة البيانات) من قائمة (نوع الكائن) ثم عطل جميع الأذونات .. بهذا لن يتمكن أي أحد في مجموعة المستخدمين فقط من الدخول إلى القاعدة إلا إذا كان عضواً في مجموعات أخرى فيدخل بصلاحياتها ..

-- بهذا نضمن الآن أنه لن يعطي الأذونات أحد غير Ahmad

== إنشاء مجموعات جديدة ..

قم بالدخول باسم Ahmad ..

-إنشاء مجموعة حذف :

من قائمة (أدوات) ثم (أمان) ثم (حسابات المستخدمين والمجموعات) .. انقر زر تبويب (مجموعات) ثم انقر زر (جديد) وأدخل اسم المجموعة ومعرفها ..

- افعل مرة أخرى مع مجموعة التعديل ومجموعة الإدراج .

بعد ذلك أنشأ المستخدمين وضعهم في مجموعاتهم المناسبة ..

- لجعل مجموعة الحذف لها صلاحيات الحذف فقط .. في نافذة (أذونات المستخدمين والمجموعات) اختر (مجموعات) ثم اختر مجموعة الحذف .. ثم من (نوع الكائن) اختر (جدول) وظلل الجداول جميعها .. وابق علامة(صح) فقط على (قراءة البيانات ، حذف البيانات ، قراءة التصميم) .

- لجعل مجموعة التعديل لها صلاحيات التعديل فقط .. اختر مجموعة التعديل وابق علامة(صح) فقط على (قراءة البيانات ، تحديث البيانات ، قراءة التصميم)

- لجعل مجموعة الإدراج لها صلاحيات الإدراج فقط .. اختر مجموعة الإدراج وابق علامة(صح) فقط على (قراءة البيانات ، تحديث البيانات ، قراءة التصميم)

- فيما بعد يمكنك إعطاء بعض المستخدمين صلاحيات الحذف والتعديل فقط .. أو الإدراج والتعديل فقط .. أو جميع الصلاحيات على البيانات .. أو كما تشاء

== أثناء العمل على البيانات :

التعارض بين المستخدمين لعرض سجل :

هناك شيء اسمه (تأمين السجلات) وله ثلاث قيم : من قائمة (أداوات) ثم (خيارات) ثم (خيارات متقدمة)

1- بلا تأمين : أي أن السجلات غير مؤمنة .. فلو فتح خالد على السجل وقام بتحديثه ولم يحفظه .. وفي أثناء ذلك دخل أحمد على نفس السجل .. وحاول تحديثه وحفظه ستخرج رسالة بإعلامك بتحديث السجل بخيارات ثلاث (إجراء تحديثك فوق تحديث المستخدم الآخر ، نسخ تحديثك ، تجاهل تحديثك)

2- كافة السجلات : أي أن كافة السجلات مؤمنة ولا يمكن تحديثها حتى ينتهي المستخدم الأول

منها .

3- سجل محرر : أي أن السجل الذي بدأ خالد بتحديثه سيتم إغلاقه لوحده فقط دون باقي سجلات النموذج عن كافة المستخدمين حتى ينتهي منه .

=============

مفاهيم يجب أن تكون على بالك :

ليكن على بالك أخي محب الآكسس أن آكسس ليس مهيأً لأن يعمل على الشبكات بكفاءة عالية ، غير أنه يمكنه العمل على الشبكة في حدود المعقول ، إذا ما توخينا بعض الأمور التي تمكنه من العمل على أحسن وجه بالقدر المستطاع .

مربط الفرس في الموضوع كله هو : التخفيف على الشبكة في مرور السجلات من الجهاز السيرفر إلى أجهزة المستخدمين .

1- عرض السجلات :

يجب عليك أن تعرض السجلات التي تحتاجها فقط ، وأيضاً مع هذا يجب أن تعرض عدداً محدداً من السجلات التي تكفي لملء الشاشة .

مثال : نريد عرض الزبائن الذين زادت مشترواتهم عن 10.000 آلاف ريال ولنفرض أن لدينا جدولين (جدول الزبائن ، وجدول المبيعات) .. ولكل زبون عدداً غير محدد من المبيعات ..

ستحقق عبارة SQL التالية المطلوب :

sq = " select tblCostomer.Name1,sum(tblSales.Price)As sales From tblCostomer INNER JOIN tblSales ON tblCostomer.C_ID=tblSales.Link_C"
sq = sq & " GROUP BY tblCostomer.Name1"
sq = sq & " HAVING sum(tblSales.Price) > 10000"

ونريد الآن أن نعدل في عبارة SQL لتجلب فقط 20 سجلاً بإضافة عبارة Top 20 لتصبح كالتالي :

sq = " select Top 20 tblCostomer.Name1,sum(tblSales.Price)As sales From tblCostomer INNER JOIN tblSales ON tblCostomer.C_ID=tblSales.Link_C"
sq = sq & " GROUP BY tblCostomer.Name1"
sq = sq & " HAVING sum(tblSales.Price) > 10000"

ثم نقوم بفتح النموذج الذي يحتوي على الحقلين Name1 ، Sales

DoCmd.OpenForm "frm1"

ونجعل مصدر النموذج هو عبارة SQL السابقة :

Forms!frm1.Form.RecordSource = sq

ليكون الكود كاملاً هكذا :

Dim sq As String
sq = " select Top 20 tblCostomer.Name1,sum(tblSales.Price)As sales From tblCostomer INNER JOIN tblSales ON tblCostomer.C_ID=tblSales.Link_C"
sq = sq & " GROUP BY tblCostomer.Name1"
sq = sq & " HAVING sum(tblSales.Price) > 10000"
DoCmd.OpenForm "frm1"
Forms!frm1.Form.RecordSource = sq

2- مصدر سجلات النموذج :

لا تجعل مصدر سجلات النموذج جدولاً بل اجعله استعلاماً كما مر في النقطة السابقة

3- عند إضافة سجل :

اجعل مصدر سجلات النموذج فارغاً حتى لا يتم جلب أي بيانات من السيرفر ، فلسنا بحاجة إلى جلب سجلات عند الإضافة .. ولك أن تسأل كيف ستتم إضافة السجلات ؟؟ فالجواب من خلال عبارة Insert في SQL .

مثال : إدراج سجل مبيع لأحد الزبائن المسجلين .. لنفرض أن جدول تسجيل المبيعات يحتوي على (رقم الزبون C_ID ، اسم البضاعة NameProd ، السعر Price) .. فنضع ثلاثة حقول وتكون إضافة السجل بالعبارة التالية :

Dim sq As String
sq = "Insert Into tblSales (Link_C,Name_Prod,Price)Values("
sq = sq & Me.C_ID & ","
sq = sq & "'" & Me.txtProd & "',"
sq = sq & Me.txtPrice & ")"
DoCmd.RunSQL sq

4- عند تحديث سجل أو مجموعة من السجلات

اجلب السجل / السجلات الذي تريد تحديثه ثم قم بتحديثه بعبارة SQL .. UpDate وفق شرط معين أو من غير شرط

5- عند حذف سجل أو مجموعة من السجلات

اجلب السجل / السجلات الذي تريد تحديثه ثم قم بتحديثه بعبارة SQL .. Delete وفق شرط معين أو من غير شرط

تنبيه مهم :

ينبغي عليك تعلم المكون ADO للوصول إلى البيانات ومعالجتها ، حيث أنه الأمثل والأجدر بهذا .. والكتب في ذلك كثيرة ولا يوجد موقع برمجي لم يتحدث عنه ..

=================

لا أدري ربما نسيت شيئاً أو سهوت عن شيء .. ومن هنا تأتي الأسئلة والاستفسارات .. فحيهلاً بكم وبها .

ودمتم بخير ورضا

1
#2

اخي احمد الحربي

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

جزاك الله كل خير على هذا الشرح الوافي والمتكامل من جميع الجوانب وفي اعتقادي انك قمت بتغطية جميع جوانب الموضوع لمن اراد السؤال عن وضع الاكسيس على الشبكه ويجب تثبيت الموضوع فورا لتعم الفائده للجميع وليكون مرجعا لمن سيسأل في المرات القادمه ختاما لك مني كل الشكر والتقدير على هذه الجوهره الثمينه .

استفسار :

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

النقطة الاخرى :

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

هذه هي النقاط التي احببت الاستفسار عنها واكرر شكري وتقديري وجزاك الله عنا كل خير

اختكم

زهره

#3

سلمت يمينك أستاذنا أحمد

تحياتي ..

#4

الأخ العزيز أحمد الحربي

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

أولا: لك الشكر الجزيل على مجهودك الطيب وجزاك الله خيرا.

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

وإن شاء الله سوف أشارك معكم في الموضوع من خلال تجربتي لعل ذلك يثري الموضوع أو يصحح مفاهيم خاطئة لدي.

تحياتي وتقديري للجميع

(سبق السيف العذل) كما يقال

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

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

تم تعديل هذه المشاركة بواسطة alhaithm في 20 مايو 2005 في 10:50

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#5

باديء ذي بدء .. أشكر الأخوة جميعاً على التفاعل ..

ثم ..

نسيت نقطتين مهمتين :

الأولى .. تعليمة الدخول إلى القاعدة في وضع (خاص) وليس (مشترك) .. وهذا يكون لأجل القيام بالنسخ الاحتياطي مثلاً أو أمرٍ ما ..

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

ليكون السطر كالتالي :

"c:\Program Files\Microsoft Office\Office\ MSACCESS.EXE " "c:\myprog.mdb"  /excl /wrkgrp "\\ServerName\MyFolder\MYPrgramSYSTEM.MDW "

الثانية : الفواصل الزمنية .. من قائمة (أدوات) ثم (خيارات) ثم (خيارات متقدمة)

1- عدد محاولات إعادة التحديث ومعه تحديث الفاصل الزمني (ثانية) : وتعني كم من الوقت لتحديث سجل مغلق وكم مرة .. قبل أن يقوم آكسس بإعطائك رسالة تنبيه أن السجل مقفل .

2- تحديث الفاصل الزمني لإعادة المحاولة : بين كل مرة ومرة

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

ففي الحالتين لا نجعل التحديث والحذف جائزين إلا بعد عرض السجل .. وهنا نقوم بتأمين السجل حال العرض .. كذلك الشأن في الإدخال .. الأمر يحتاج إلى تجربة

بالنسبة للنقطة الأخرى .. نسخ القاعدة .. يتبادر إلى ذهني أمور وهي ..

1- أن لا يستطيع المستخدمون أخذ نسخة من القاعدة من خلال البرنامج ..

2- وأهم من ذلك أن لا يستطيعوا الارتباط بقاعدة أخرى (نسخة أخرى) فكما تعلمون الجداول مرتبطة .. فإقفال قاعدة البيانات بصيغة MDE وإخفاء الجداول وأشرطة الأدوات يجعله غير قادر على الارتباط بنسخة أخرى ..

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

------=-=-=----

أكرر مرة أخرى .. أشكركم على التفاعل

دمتم بخير ورضا

تم تعديل هذه المشاركة بواسطة أحمد الحربي في 20 مايو 2005 في 14:51

#6

الموضوع مهم جدا و كان محل أسئلة متكررة, الشرح بسيط و رائع, و فعلا عمل نسخ احتياطية قبل الشروع في التنفيذ لهذه الخطوات يجب أخذ هذه النصيحة بجد حتى لا يضيع المجهود.

أرجو من الأعضاء الذين لهم امكانية التجربة على سيرفير أن يقدموا نتائج تجاربهم لتعم الفائدة.

جزاك الله خيرا يا أستاذ أحمد عن هذا الدرس القيم.

#7

جزاك الله خير جزاء يا اخ احمد على هذا الشرح المفصل

بس عندي طلب صغير وإن شاء الله تكون قادر عليه

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

ان شرحك اعلاه جيد وجميل لكن طلبي هو ان توضح لي بالصورة الله يخليك ماذا تقصد بـ ( ** إنشاء ملف الحماية/الصلاحيات للقاعدة :

في الدليل : \Program Files\Microsoft Office\Office

ستجد الملف MS Access Workgroup Administrator

- افتح الملف وانقر زر إنشاء (Creat) لإنشاء نسخة منه لتخصيصها لبرنامجنا .. أدخل البيانات(اسم المالك(لملف الحماية) ، واسم الشركة ، ورقم WID) واحتفظ بهذه المعلومات لكي تعيد إنشاؤه مرة أخرى فيما لو فقدته .. لأنك حين تربط القاعدة بملف MDW لا يمكن فتحها إلا بوجوده .

- انقر OK ثم اختر موقع الملف .. غير الاسم الافتراضي SYSTEM.MDW واختر اسماً مناسباً لبرنامجك مثلاً MYPrgramSYSTEM.MDW .. ثم انقر OK ثم OK لتأكيد المعلومات .. إذا نجحت العملية ستخرج رسالة بنجاح إنشاء ملف MDW .. ثم انقر خروج Exit .

== ربط الملف MYPrgramSYSTEM.MDW بالقاعدة لجعل صلاحيات الدخول للقاعدة من خلاله فقط :

افتح الملف MYPrgramSYSTEM.MDW ثم من قائمة (ملف) اختر (فتح) .. ثم اختر القاعدة MyProg.MDB لفتحها .. بهذا تم ربط القاعدة بملف الحماية .

لتتأكد من أن القاعدة مربوطة بملف الحماية الذي أنشأناه قبل قليل وهو MYPrgramSYSTEM.MDW أم لا زالت مربوطة بملف الحماية الافتراضي في آكسس SYSTEM.MDW قم بتنفيذ هذا الكود واين اضع الكود

تحياتي لك ولك نسخه من عملي لكي تحكم عليه

تحيات اخوكم فارس القيسي

#8

أخي الكريم .. فارس

طبق ما وضعته باللون الأحمر وستفهم بالتطبيق أكثر من النظري

أما الكود فلا دخل له بالصلاحيات .. إنما هو فقط لتتأكد قبل أن تحذف المالك(مسؤول) أن قاعدة البيانات لا تعتمد على الملف الرئيسي الافتراض للحماية وهو System.mdw وإنما على ملف الحماية الجديد

#9

الله يبارك فيك ويجزاك خير أستاذنا الكريم .. بيسكرا

#10

أستاذ/ أحمد الحربي

ما شاء الله عليك

ولا أروع ولا أجمل مما رأيت من شرحك الرائع وبالفعل درس قيم ومفيد جدا جدا

لك كل التحية والتقدير.

ibnmusqat.gif
#11

رائع والله

ألف شكر اخوي

بالتوفيق

موقعي الشخصي WWW.KETTANEH.NET

#12

أستاذنا القديم .. ابن مسقط

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

----------=-=-----------

الموقر .. KETTANEH

بورك فيك وحياك الله

#13

اخوي احمد الحربي ما شاء الله عليك

ملاحظه: اخوي احمد يا ليت اخوك التؤم يا جي ويتحفنا بأبداعاته البرمجية

لكم مني خالص التقدير

*********************

دروس الاكسس

قاعدة بيانات بالسي++

قاعدة بيانات اخرى بالسي++

الفريق العربي للبرمجه

*********************

كان الله في عون العبد مادام العبد في عون اخيه

#14

اخي العزيز احمد الحربي

انت مبدع اشكرك على هذا الشرح الجميل واسئل الله العلي العظيم ان يجعل ماعملت في ميزان حسناتك

اخي الكريم سئوال مهم ذكر لك احد الاخوان هذا السئوال ولكن لم توضح اعيد ويمكن لا يكون مهما عندك ولكن عندنا مهم جدا

واين اضع الكود

الحماية/الصلاحيات للقاعدة :

في الدليل : \Program Files\Microsoft Office\Office

ستجد الملف MS Access Workgroup Administrator

- افتح الملف وانقر زر إنشاء (Creat) لإنشاء نسخة منه لتخصيصها لبرنامجنا .. أدخل البيانات(اسم المالك(لملف الحماية) ، واسم الشركة ، ورقم WID) واحتفظ بهذه المعلومات لكي تعيد إنشاؤه مرة أخرى فيما لو فقدته .. لأنك حين تربط القاعدة بملف MDW لا يمكن فتحها إلا بوجوده .

- انقر OK ثم اختر موقع الملف .. غير الاسم الافتراضي SYSTEM.MDW واختر اسماً مناسباً لبرنامجك مثلاً MYPrgramSYSTEM.MDW .. ثم انقر OK ثم OK لتأكيد المعلومات .. إذا نجحت العملية ستخرج رسالة بنجاح إنشاء ملف MDW .. ثم انقر خروج Exit .

== ربط الملف MYPrgramSYSTEM.MDW بالقاعدة لجعل صلاحيات الدخول للقاعدة من خلاله فقط :

افتح الملف MYPrgramSYSTEM.MDW ثم من قائمة (ملف) اختر (فتح) .. ثم اختر القاعدة MyProg.MDB لفتحها .. بهذا تم ربط القاعدة بملف الحماية .

لتتأكد من أن القاعدة مربوطة بملف الحماية الذي أنشأناه قبل قليل وهو MYPrgramSYSTEM.MDW أم لا زالت مربوطة بملف الحماية الافتراضي في آكسس SYSTEM.MDW قم بتنفيذ هذا الكود واين اضع الكود

تقبل اخي الكريم خالص التحية ..؛؛

#15

شكرا لك علي الشرح الجميل

و لي سؤال بالنسبة للملف MS Access Workgroup Administrator اين اجده في اوفيس 2003

و جزاك الله خيرا

#16

شكراً لك على المجهود والشرح الرائع

إلى الامام

#17

عزيزي الموقر .. عبدالهادي

التوم مشغول .. الله لا يشغلنا إلا بطاعته ، لكن انتبه له زين يا بعدي

----------

الموقر .. فاروق القيسي

الموقر .. r-doc

الكود ..

 MsgBox SysCmd(acSysCmdGetWorkgroupFile)

نفذ هذا الكود من أي نموذج في البرنامج ، ولو من نموذج جديد ، لأن المقصود هو التأكد من العمل ، وأن ملف الحماية الذي نعمل عليه هو الملف الخاص الذي أنشأناه . فناتج هذا الكود هو مسار ملف مجموعة العمل MDW

-------------

الموقر .. sayedsika

أظنه موجود في : Program Files\Microsoft Office\ ، أو لعل أحد الإخوة ممن لديهم الإصدار 2003 يفيدك في ذلك

------------

الموقر .. ناسي ماضي

والشكر موصول إليك أخي الكريم على تشجيعك

دمتم جميعاً بخير ورضا

تم تعديل هذه المشاركة بواسطة أحمد الحربي في 9 سبتمبر 2005 في 07:49

#18

الله يجزاك كل خير..

اللهم اصلح له ذريته...ووسع له في رزقه...

درس رائع يااستاذنا الفاضل...

#19

أخي الكريم .. جزاك الله خير

أنا صممت قاعدة بيانات .. وقمت بعمل التوضيحات التي تفضلت بها .. وعمل البرنامج على الجهاز الرئيسي تمام

لكن ما رضي يعمل عن طريق الشبكة .. مع العلم بأنني قمت بإضافة اسم السيرفر في كود الهدف

تم تعديل هذه المشاركة بواسطة ABU KHLEEFA في 16 أكتوبر 2005 في 21:09

#20

جزاك الله خير...

خلاص حليت المشكلة

#21

workgroup in 2003 you can do it from access go to tools then security then workgoup admin

#22

السلام عليكم جميعا

الشكر للاخ احمد وكل الذين يساهمون فى المنتدي

كنت ابحث عن هذا الموضوع والحمد لله اتوفقت فيه

ووجدت الاخ syedsika يسال سؤال ارهقني كثيرا لكني اتوفقت فيه

وهو ان ملف MS Access Workgroup Administrator في 2003 لايوجد فى المسار المذكور

ولكن يمكن الوصول اليه من قائمة Tools -security -workgroup administrator

مع تحياتي

#23

مشكووووووووووووووووووور أخوي

#24

السلام عليكم جميعا

الشكر للاخ احمد على هذا الموضوع المميز..

عندي أستفسار لم أستطع أن أجد لة حل..

عندما يتم وضع قاعدة البيانات في السيرفر وربطها بالواجهات (الإستعلامات، النماذج، التقارير .... ) الموجودة في أجهزة المستخدمين ، يتم عمل مشاركة لملف قاعدة البيانات في السيرفر لكي تتم عملية الربط السابقة .

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

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

#25

شكرا اخي احمد على الشرح الواضح والمفصل

مواضيع مشابهة