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

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

قام بنشر

مشاركة قواعد البيانات اكسيس على الشبكة

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

السماح بالمشاركة

في العديد من الشركات الصغيرة والمؤسسات تكون الحاجة ماسة للمشاركة في البيانات والوصول السريع وفي نفس الوقت للبيانات ، وتوجد إمكانية عمل ذلك في برنامج Access ، ولكن قبل بداية العمل يجب الإختيار بين اثنين من الخيارات المتاحه امامك للمشاركة في البيانات :

الخيار الاول : وضع كامل قاعدة البيانات على الخادم

الخيار الثاني : وضع بيانات مشاركة على الخادم

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

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

1. تقليل الضغط على الشبكة فالبيانات هي التي تنتقل عبر الشبكة فقط وباقي االكائنات تكون موجودة على القرص محلي .

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

كيف نفصل الجداول عن باقي الكائنات ؟

يعتبر الفصل بين الجداول والكائنات في الاكسس عملية سهلة لوجود معالج يقوم بالفصل بين الجداول ووضعها في قاعدة بيانات منفصلة والكائنات في قاعدتها الاصلية ،سنقوم الآن بالتجربة على قاعدة البيانات

C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb

الموجودة مع طاقم الاكسس .

بداية خذ نسخة من قاعدة البيانات التي ترغب بتقسيمها وذلك لتتمكن من إرجاعها عند حدوث كارثة لاسمح الله .

أفتح القاعدة في وضع التصميم ثم اختر من

أدوات Tools

أدوات مساعدة لقواعد البيانات Database Utilities

تقسيم قاعدة البيانات Database Splitter

16_10_05_11_06_08_1129485968takseem1.gif

ثم من النافذة نختار تقسيم قاعدة البيانات Split Database

16_10_05_11_08_10_1129486090takseem_.gif

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

16_10_05_11_00_55_1129485655takseem3.gif

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

16_10_05_11_14_18_1129486458takseem4.gif

بداية العمل مع البيانات

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

16_10_05_11_09_34_1129486174Record.gif

ملاحظة

يأخذ اكسس تقريباً 60 ثانية حتى يقوم بعرض العلامة ويمكن تغير هذه الفترة الزمنية من

أدوات Tools

خيارات Options

خيارات متقدمة Advanced

ثم من تحديث الفاصل الزمنى Refresh Interval

16_10_05_12_14_26_1129490066Record_.gif

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

16_10_05_11_16_56_1129486616za_5.gif

الى هنا انتهينا من الشرح ولكن بقية نقطه هامه ؟

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

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

1. افتح قاعدة البيانات التي بها كائنات قاعدة البيانات عدى الجداول لان الجداول في قاعدة بيانات اخرى وفي موقع تم تحديده مسبقا بعد التقسيم

2. حاول تقريب الماوس من الجدول المرتبط وستظهر لك Tip تخبرك بمكان القاعدة .

16_10_05_06_27_56_1129512476N11.jpg

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

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

16_10_05_05_02_13_1129507333N6.gif

سنقوم بالتغلب على هذه المشكلة من خلال الذهاب الى

ادوات

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

ادارة الجداول المرتبطه

16_10_05_06_29_58_1129512598N4.gif

وسيظهر معالج الجداول المرتبطه

16_10_05_05_41_51_1129509711N5.gif

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

وستظهرك لك رسالة بنجاح الارتباط ... مبررررررررررررروك عليك وبالهنا والشفا .

اضغط موافق ثم اضغط اغلاق

17_10_05_06_41_58_1129556518N77N.gif

وأذهب للتأكد من الجداول المرتبطه .

ملاحظه : كل هذه الخطوات لا تأخذ سوى ثواني معدوده

وهذا مثال لقاعدة بيانات للتطبيق عليه

اختكم

زهره

EMP.rar

  • Like 1
  • 1 month later...
قام بنشر

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

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

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

الطريقة هي اسمها Hidden share كيف تعمل Sharing او مشاركة لملف وتخفيه بحيث مايظهر للمستخدم العادي

الطريقة سهلة كتير وهي لما تعمل Sharing لملف ولنفترض أسمه DataBase

ضيف فقط إشارة $ الدولار في نهاية Share Name مثلاً

Database$
جرب افتح الجهاز او السرفر الي عملنا عليه Hidden share من الشبكة مارح تلاقي الملف و لحتى تتصل بالملف كمان ضيف إشارة $ مثلاً
\\MyServer\Database$

فقط ال Administrator Users قادرين الاتصال بال Hidden Share

اما Limited Users مارح يقدر يتصل بالملف

الطريقة يمكن تجربتها على اي نظام تشغيل من Win2000 Pro وما بعد

تحياتي :fff:

أدعولنا

  • Like 1
قام بنشر

شكراً جزيلا اختي العزيزه زهراء على هذا الشرح ونتمنى منك المزيد

وجزاك الله خير الجزاء وجعلكي ذخرا للاسلام والمسلمين :fff:

  • 1 month later...
قام بنشر (معدل)

اولا اشكر الاخت زهره على المجهود الرائع

اخى العزيز امجد جمالى

انا عملت العلامه $ و لكن لم يتم الاتصال بالقاعده فارجوا المساعده لاخفاء قاعدة البيانات لعدم اخذ copy منها مع العلم ان جهازى ليس سيرفر و اعمل على xp و fat 32

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

مرحبا

لعرض الملف الي انعمل عليه Hidden Share

روح على Start ثم Run

واكتب

\\MyServer\Database$

حيث Myserver تعني اسم الجهاز الموجود عليه الملف

DataBase تعني اسم الفولدر

$ لأظهار هذا الملف

تحياتي

قام بنشر

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

ولكن كيف يمكن التعامل برمجيا مع القاعدة الجديدة

انا كنت استخدم متغير قاعدة بيانات ثم

dim aa as database

set aa=currentdb

فماذا افعل في الطرقة الجديده

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

السلام عليكم

مارح يتغير شي ابداً

لأنه الكود CurrentDb

أو

CurrentProject

تعني الاشارة الى قاعدة البيانات الحالية بغض النظر عن مكان تخزين الDatabase

مثال عن ذلك

debug.Print currentproject.Connection
debug.Print currentproject.name
debug.Print currentproject.Path

تحياتي :fff:

تم تعديل بواسطه أمجد جمالي
  • 2 weeks later...
قام بنشر

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

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

هل بهذه الطريقه

Dim AA As DATABASE

Dim BB As Recordset

Set AA = CurrentDb

Set BB = AA.OpenRecordset("NAME", dbOpenTable)

ولكن قاعدة البيانات التي اكتب بها الكود غير موجود بها جداول ( مرتبطه مع قاعدة اخري)

قام بنشر

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

الله يعطيكم الف عافية للأخوان كلهم وللمشرفين

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

بس عندي سؤال للأخت زهرة ...

موضوعك ياأختي شيق ومفيد جدا جدا وانا محتاجة للتفصيل أكثر

يعني فصل الجداول رح يكون على الملقم نفسه ولا على الجهاز اللي فيه قاعدة البيانات؟؟؟

ولا لازم أنزل قاعدة البيانات على الملقم وبعدها أفصل الجداول؟؟

وبعد ما أفصل الجداول، شو أعمل مشان تكتمل المشاركة؟؟؟

ولما أعمل المشاركة كيف رح تصير آلية التشغيل والتعديل؟؟

معلش يا أخوان أنا كترت أسئلة بس هاد من عشمي فيكم وجزاكم الله ألف خير

:fff::fff::fff:

  • 11 years later...
قام بنشر
في 3/12/2006 at 22:29, zead333 said:

جزاكي الله خيراً اختي الكريمة

جزاكم الله خير الجزاء

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

 

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