اريد معرفة اذا كان معي مثلا قاعدة بيانات مركزية يتم فتح منها قاعدة بيانات اخرة مثلا قاعدة بيانات 2004 او 2005
فتح قاعدة بيانات اخرى بزر في نموذج القاعدة الحالية
اخي الكريم
السلام عليكم ورحمة الله وبركاته
تستطيع فتح قاعدة بيانات 2004 او 2005 من خلال زر امر موجود في قاعدة البيانات المركزية بهذه الطريقه
1. قم بإنشاء زر امر ولنفرض ان اسمه مثلا OpenDatabase
2. على افتراض ان قاعدة البيانات 2005 موجوده على محرك الاقراص C بهذه الطريقه C:\2005.mdb او اي مكان تختاره مع مراعاة التعديل في الكود لمكان وجود القاعده انظر الكود
Private Sub OpenDatabase_Click()
Shell ("C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE C:\2005.mdb"), vbNormalNoFocus
End Subتم استخدام امر Shell الخاص بالويندوز لفتح اي برنامج تنفيذي من خلال الاكسيس ثم وضعنا موقع برنامج الاكسيس ثم وضعنا موقع قاعدة البيانات 2005 ثم طلبنا من الكود في النهاية ان يفتح القاعدة في الوضع العادي .
ملاحظة : C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE هذا موقع برنامج الاكسيس 2003 في الكمبيوتر اذا كنت تستخدم اكسيس 2000 قم بالتأكد من مسار برنامج الاكسيس فقد يكون هكذا
C:\Program Files\Microsoft Office\OFFICE10\MSACCESS.EXE
بعد نسخ الملف المرفق ولتجربته ضع قاعدة البيانات 2005 على محرك الاقراص C:\2005.mdb
وهذا مثال على ذلك
اختكم
زهره
طيب بالمناسة
ألا يوجد طريقة للخلاص من مشكلة وضع المسار هذا
C:\Program Files\Microsoft Office\OFFICE10\MSACCESS.EXE
او هذا
C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE
لانه لو كان المستخدم لديه الاوفيس 2000 ليس كمن لدي 2003 والعكس كذالك وقد يكون البرنامج على شبكة وبعظهم لديه 2000 والاخر 2003 !!
او قد يكون النظام على ال D
فيصبح مسار الاكسس
D:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE
او
D:\Program Files\Microsoft Office\OFFICE10\MSACCESS.EXE
فهل من طريق للخاص من هذا الامر
ريح من الزفرات تعصف في الحشى &&& و ورائها مطر من العبرات
ابو حسن
اخي المبرمج2003
هل تصدق ان هذه الطريقة اسرع وافضل وأمن وأقوى من اي طريقة أخرى كما ان مايكروسوفت توصي بها .
اكيد سوف تسأل ما هي الطريق الاخرى وهل توجد غير هذه الطريقة ؟
نجيبك ونقول نعم هناك عدة طرق منها :
اولا : طريقة فتح مربع حوار الملفات :
بهذه الطريقة تستطيع فتح اي قاعدة بيانات وموجوده في اي مكان بغض النظر عن موقعها وسوف تقول نعم هذه هو المطلوب .
ولكن لحظة :
هذه الطريقة تتطلب كود طويل جدا قد يصل الى صفحة كاملة لغرض اقتران مربع حوار الملفات ببرنامج الاكسيس . وكذلك نموذج مستقل به مربع نص غير منظم وزر امر فتح الملفات .
قد تكون انها ابطأ لانك سوف تقوم بالتالي :
1. تضغط زر الامر الذي يقبع تحته كود مربع حوار فتح الملفات
2. تبحث وتختار عن اي قاعدة بيانات في اي مكان من الجهاز لفتحها
3. تختار موافق من مربع حوار فتح الملفات .
ثانيا : طريقة فتح قاعدة بيانات بواسطة البحث السريع
هذه الطريقة تشبه الى حد ما طريقة الويندوز للبحث عن الملفات سواء كانت نصية او تنفيذية وايضا تتطلب كود طويل نسبيا وقد تم برمجة الكود على ان يبحث فقط عن قواعد البيانات في اي مكان ويقوم بإظهارها لك لتختار منها ما تريد فتحه .
هذه الطريقة اسرع من الطريقة السابقة ولكن يعيبها ان البرنامج سوف يقوم بالبحث على كامل الجهاز او محرك الاقراص المحدد في الكود .
لكي يجد القاعدة المطلوبه .
اخيرا اقول لك ان الطريقة المثلى والمحببة دائما لبرنامج الاكسيس او اي برنامج هو التقليل دائما من الاكواد في البرامج بقدر الامكان واستخدام ميزة التكامل والاتممة بين البرامج .
لو نظرنا للكود الموجود في المشاركة لوجدته عبارة عن سطر واحد فقط ولو اردنا الحديث بشكل ادق لقلنا ان الكود الموضوع هو عبارة عن كلمة او امر Shell فقط تم استدعاؤه من الويندوز علما بأن هذه الامر ليس خارجيا بل من صميم الويندوز وايضا ترى برنامج الاكسيس نفسه في الكود .
بمعنى لا مجال هناك للخطأ ابدا في هذا الكود .
اما بقية الطرق فنرى ان كتابة الاكواد التي تمتد احيانا الى صفحات قد تخطىء في اي جزئية وقد تضع اكواد ليس لها داعي او معنى للوصول الى طريقة حل فتح الملفات .
اذن تعتمد هذه الطريقة على سطر وحيد يقبع تحت زر أمر " انظر حتى كتابته اسهل واسرع "
ليس هناك مجال للخطأ في اختيار او تحديد قاعدة بيانات اخرى فمثلا لو ابلغتك " الرجاء البحث عن قاعدة بيانات MyDatabase.mdb قد تكون هذه القاعدة منسوخة في جهاز عدة مرات سواء في محرك الاقراص C او D او E وتقوم بإختيار احداها وتقوم باالتعديل او الاضافة وتكتشف بعد الانتهاء ان اختيارك خاطىء . " اكيد راح تكون مبسوط وفرحان ومنطط " :lol: :lol:
اختكم
زهره
بارك الله فيك
لكن يبدو اني لم استطيع ايصال الفكرة بشكل جيد عمموما
Private Sub OpenDatabase_Click()
Shell ("C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE C:\2005.mdb"), vbNormalNoFocus
End Subهذا الكود سيقوم بفتح الملف C:\2005.mdb ممتاز اذا كان المستخدم لديه الافيس XP لكن صاحب الافيس 2000 هل يستطيع
بالطبع لا :( :( :(
لان مسار المجلد بتاع الاكسس OFFICE11
طيب اذا كان المستخدم لديه افيس 97
كذالك
سواء الاكسس او الوووووورد او الاكسل كلها تتبع المسار نفسه فقط التغيير في الاسم الاخير بدل من
MSACCESS.EXE للوورد WORD.EXE وكذلك الاكسل
هناك كود يقوم بفتح بدون اي مسار
Dim oApp As Object
Set oApp = CreateObject("WORD.Application")
oApp.Visible = Trueيبقى امتداد الملف لم استطع اضافته فهل بالامكان اضافته مع هذا الكود
وبكذا نرتاح من وضع مسار الاكسس او اوورد او الاكسل
وشكرا
ريح من الزفرات تعصف في الحشى &&& و ورائها مطر من العبرات
ابو حسن
ربط قاعدة مركزية بعدة قواعد اخرى بكلمة سر
الاخت زهرة اقصد ان هناك ربط بين القاعدة المركزية وبقية القواعد فلو تكرمتي بعمل مثال مربع تحرير وسرد يوضح كل سنة معينة وعند اختيارة يربط القاعدة الرئيسية بالقاعدة المختارة وخصوصا اذا كانت المختارة فيها رقم سر
هذا الموضوع مغلق.

