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

تحديث نسخة _ قاعدة بيانات الجداول البعيدة


ابوخليل

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

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

احبتي الكرام :

عطفا على هذا الموضوع  ومن اجل تنوع العناوين  ولان الموضوع فريد من نوعه  ولاني اخذت اياما في تصميمه وتجربته  رأيت ان افرده في موضوع وعنوان يخصه   .

تم تجربة العمل بنجاح فالحمد لله اولا وآخرا

تم التجاوز والتغاضي عن التالي :

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

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

1- ادخل على المجلد fresh للاطلاع قبل اجراء اي عمل 

2- افتح القاعدة  db1.mdb   وتصفح الجداول لترى البيانات  ، باعتبارها القاعدة القديمة

3- افتح القاعدة dbmain.mdb  وتصفح الجداول  وسترى انها خالية من البيانات  ويوجد فيها جدول زائد ( الجداول الجديدة المحدثة )

4- استخرج  المجلد  fresh  وضعه على قرص الــ  D  ( مؤقتا كتجربة سريعة)

5 -  افتح القاعدة dbmain.mdb  ثم انقر الزر

6- ارجع وتصفح الجداول  في القاعدتين لترى الفرق

طريقة الاستفادة من الأداة :

اجلب الى قاعدة جداولك المحدثة : النموذج والوحدة النمطية  فقط

عدل الامتدادات ومسارات الملفات داخل النموذج وداخل الوحدة النمطية حسب رغبتك

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

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

تحديث قاعدة بيانات بعيدة استخرج المجلد الداخلي وضعه على القرص D.rar

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

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

 

تحياتي

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

30 دقائق مضت, sandanet said:

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

فعلا والله يحتاج التأمل موضوع يحتاج له اي مبرمج 

تحياتي @ابوخليل لحين التجربة

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

 

شكرا لك استاذنا @ابو خليل 
تم التجربة ونجحت 100%

والآن تبقى الاشكالية فيما لو تم التعديل فى تسميات بعض الحقول أو التعديل فى نوعية البيانات (كتغير من نص الى رقم أو الى true-false)

المشكلة التي ليس لها حل  هو ما خط بالاحمر ،  اما تغيير الخصائص  فليس مشكلة اصلا الا اذا تغير نوع البيانات المدخلة "ابو خليل"

سامحوني لادخل في هذه الجزئية الصغيرة
نقدر ان نعمل تعديل في تسميات بعض الحقول ايضا لكن بهذه الطريقة اي نعمل تعديل في مسميات بطريقة غير مباشرة ( خدعة )

اي نقدر اولا نعمل حقل جديد في جدولنا اللي احنا نريد ان نعدل تسمية لاحد حقوله
وبعدين نعمل استعلام اوبديت للحقل القديم الى حقل الجديد بتسمية الجديدة
وبعدين نحذف الحقل القديم
وتم تجربة هذا ايضا ونجحت فيها 100% ايضا
 

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

2 ساعات مضت, Shivan Rekany said:

اي نقدر اولا نعمل حقل جديد في جدولنا اللي احنا نريد ان نعدل تسمية لاحد حقوله
وبعدين نعمل استعلام اوبديت للحقل القديم الى حقل الجديد بتسمية الجديدة
وبعدين نحذف الحقل القديم
وتم تجربة هذا ايضا ونجحت فيها 100% ايضا

 

ولو أضفتم الى هذا الشرح الرائع مثالا أروع لتمت الاستفادة 100% ايضا :wink2:

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

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

اي مثلا احنا نريد ان نغير اسم حقل cntryNm باسم cntryNmeeee في جدول tblCountry

راح نستخدم هذا الكود
 

    If rs!Name <> "tblCountry" Then 
            DoCmd.RunSQL "Insert Into [" & rs!Name & "] Select * from [" & rs!Name & "]  IN  'D:\fresh\db1.mdb' "
        Else
            DoCmd.RunSQL "Insert Into [" & rs!Name & "] Select * from [" & rs!Name & "]  IN  'D:\fresh\db1.mdb' "
            DoCmd.RunSQL "ALTER TABLE tblCountry ADD COLUMN cntryNmeeee Text(100)"
            DoCmd.RunSQL "UPDATE tblCountry SET cntryNmeeee = cntryNm"
            DoCmd.RunSQL "ALTER TABLE tblCountry DROP COLUMN cntryNm"
    End If

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

fresh.rar

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

4 دقائق مضت, sandanet said:

استاذ شفان للأسف تظهر لي هذه الرسالة بعد تغيير اسم الحقل cntryNm الى cntyNm1111 في القاعدة dbmain !! :blink: 

 

Untitled.png

انا عم استخدم موبايل الان

لكن حسب فهمي يجب تتغير اسم cntryNmeeee وليس حقل cntryNm 

وغدا ان شاء الله راح اشرح بالتفصيل

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

المسألة ليست في تحديث وتغيير مسمى حقل

المسألة كيف نعرف ان اسم الحقل القديم هو هذا الجديد

انا مبرمج  ودائما ابقي عندي آخر نسخة و اتخلص من السابقة من اجل عدم الخلط

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

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

فأنا قلت في مثل هذه الحالة لا بد من التدخل اليدوي

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

طيب استاذي ممكن اتفهم الكومبيوتر ان الحقل الفلاني name في الجدول emptbl مثلاً في القاعدة القديمة هو نفسه الذي اسمه names في القاعدة الجديدة بناءاً على معطيات متشابهة تجعل الكومبيوتر يتأكد من انه الحقل نفسه .. المعطيات هذه ممكن اتكون كالتالي: اذا كان الحقل name الجديد يأتي بعده الحقل Age فهو نفس الحقل الذي في القاعدة القديمة مهما كان اسمه لكنه يأتي بعده حقل ال Age ايضاً .. باختصار شديد انا اخبر الكومبيوتر ان الحقلين المختلفين بالاسم في كلا القاعدتين هما نفس الحقل لان كلاهما يأتي حقل اسمه Age بعدهما وهكذا

ارجو ان تكون فكرتي واضحة :biggrin:

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

7 دقائق مضت, ابوخليل said:

المسألة كيف نعرف ان اسم الحقل القديم هو هذا الجديد

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

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

ولكن اجتناب التغير فى المسميات هو السبيل القويم وهو ما انصح به.

 

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

5 دقائق مضت, sandanet said:

ارجو ان تكون فكرتي واضحة :biggrin:

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

5 دقائق مضت, أبو عبدالله الحلوانى said:

ولكن اجتناب التغير فى المسميات هو السبيل القويم وهو ما انصح به.

هذا بيت القصيد

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

22 دقائق مضت, ابوخليل said:

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

هذا بيت القصيد

اي يعني 

مشاركتي في هذا الموضوع هو مثل القول اللي عند اتصال وما عندك رصيد

اي "رصيدك لم يكفي لاجراء هذه الاتصال  :blink:

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

23 دقائق مضت, ابوخليل said:

اذا عرفنا المسميات القديمة وما يقابلها من الجديد خلاص ينتهى النقاش

استاذي ابوخليل كان قصدي في "انا اخبر الكومبيوتر ان الحقلين المختلفين بالاسم في كلا القاعدتين هما نفس الحقل لان كلاهما يأتي حقل اسمه Age بعده"

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

 

تحياتي 

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

14 ساعات مضت, Shivan Rekany said:

اي يعني 

مشاركتي في هذا الموضوع هو مثل القول اللي عند اتصال وما عندك رصيد

اي "رصيدك لم يكفي لاجراء هذه الاتصال  :blink:

لا  ليس هكذا استاذنا العزيز  ولكني اقيس على نفسي  فانا لا اذكر  التغييرات التي اجريتها  

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

وليتك استاذنا تضعها  في مثال منفصل الى ان تكتمل ثم نعمل على ضمها في اداة واحدة

ولا تنسى يكون  mdb

 

 

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

22 دقائق مضت, ابوخليل said:

لا  ليس هكذا استاذنا العزيز  ولكني اقيس على نفسي  فانا لا اذكر  التغييرات التي اجريتها  

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

وليتك استاذنا تضعها  في مثال منفصل الى ان تكتمل ثم نعمل على ضمها في اداة واحدة

ولا تنسى يكون  mdb

 

 

الحمد لله ... ان شاء الله

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

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