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

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

قام بنشر

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

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

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

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

 

مع كثرة التعديلات ودخول مستخدمين جدد لا يستطيعون عمل التحديث بسلاسة حاولت ان اجعل التحديث تلقائي فقمت بما يلي:

١. عملت ملف اكسس جديد اسميته Updt به جدول وقمت بوضعه في ملف في البارتشن C 

٢. في ملف القاعدة وفي حدث تحميل فورم الدخول وضعت كود تشغيل استعلام الحاقي ليلحق مسار قاعدة البيانات الحالية في الجدول الموجود في Updt ثم فتح ملف Updt واغلاق القاعدة الرئيسية.

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

 

 

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

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

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

ولكم جزيل الشكر

 

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

  • Like 1
قام بنشر

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

حياك الله اخونا عبد الله ،،، كل الاحترام

كنت قد قرأت عن نفس الموضوع في منتدى اجنبي قديماً وكان هذا الكود يفي بالغرض

لا ادري ان كان هو نفس ما تستخدم ام لا

عموماً هذا هو الكود:

::

تحياتي

 

 

echo off
xcopy \\SrverName\Flderzz\YrDb.accdb %USERPROFILE%\Documents /y /d
Start %USERPROFILE%\Documents\YrDb.accdb

 

قام بنشر

السلام عليكم

اخي الفاضل الوزير  شكرا للرد الاحظ ان الكود غير مشابه لما اعرفه عن vba فهل تتكرم بمرفق للتطبيق

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

---------

الموضوع للرفع لمشاركةباقي الاخوة الافاضل

قام بنشر

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

اخي العزيز عبد الله

هذه ليست للسنة بل ان Y يعني السماح بالكتابة نعم

والـ D رمز الى ان القاعدة على الدرايف

ان شاء الله سوف اوافيك بمثال بسيط حال تسمح ظروفي بذلك

::

تحياتي

قام بنشر

جرب 

التالي

عند فتح البرنامج من قبل المستخدم

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

بال update

بشرط تكون في جزور الملفات في مجلد المشاركة

وفي حال عثور البرنامج

علي قاعد بيانات غير التي بالملف الأصلي

يرتبط بها تلقائيا

ومن ثم

ممكن تزيد عليه ماتشاء

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

تحياتي

قام بنشر

السلام عليكم

المطلوب غير واضح بالضبط

هل التحديث لقاعدة الجداول الموجودة على الخادم ام للواجهات التي على اجهزة الموظفين

واذا التحديث يتم على قاعدة الجداول :

من الذي يضع قاعدة البيانات الجديدة بجانب القديمة ؟   اي كيف يتم ذلك ؟

ولماذا لا يتم الاستبدال في الحال ؟

 

 

قام بنشر

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

استاذي الكريم ابو خليل

المطلوب ليس استبدال قاعدة الجداول المترابطة

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

قام بنشر

وجدتها لك يا بو احمد

اولا دعنا نسمي : 1-الامامية 2- الخلفية   لقواعد البيانات الواجهات والجداول حتى يسهل فهم الشرح 

بنفس فكرتك وتكون كالتالي :

1- عمل جدول محلي داخل الأمامية يحتوي على حقل واحد نضع فيه رقم التحديث

2- استخدام  دائم لواجهة  في بداية التشغيل وسيطة مرتبطة بالأمامية الجديدة التي ستضعها على السيرفر

3- يكون عمل هذه الوسيطة هي التأكد من رقم التحديث هناك

4- اذا كان الرقم  اكبر  من المحفوظ في الوسيطة يتم استبدال الامامية الحالية بالامامية التي على السيرفر ثم تشغيلها وغلق الوسيطة

5- اذا كان الرقم مساويا  يتم تشغيل الامامية الحالية فقط وغلق الوسيطة

  • Like 1
قام بنشر

وهزا ماعنيته فعلا

ولكن خزلني التعبير

5 ساعات مضت, ابوخليل said:

وجدتها لك يا بو احمد

اولا دعنا نسمي : 1-الامامية 2- الخلفية   لقواعد البيانات الواجهات والجداول حتى يسهل فهم الشرح 

بنفس فكرتك وتكون كالتالي :

1- عمل جدول محلي داخل الأمامية يحتوي على حقل واحد نضع فيه رقم التحديث

2- استخدام  دائم لواجهة  في بداية التشغيل وسيطة مرتبطة بالأمامية الجديدة التي ستضعها على السيرفر

3- يكون عمل هذه الوسيطة هي التأكد من رقم التحديث هناك

4- اذا كان الرقم  اكبر  من المحفوظ في الوسيطة يتم استبدال الامامية الحالية بالامامية التي على السيرفر ثم تشغيلها وغلق الوسيطة

5- اذا كان الرقم مساويا  يتم تشغيل الامامية الحالية فقط وغلق الوسيطة

لو أمكن مرفق للمثال

لو كان لديك وقت فالامر ضروري

ويمكن تطويع الفكرة للمزيد من الخدمات

مثلا

تحميل التحديثات اونلاي

في حال رغب عميل في اضافة تحديثات في البرنامج 

يمكن للمبرمج عمل زلك

ويمكن للعميل تحميله من المرفقات 

و وضعة في ملف التحديثات

قام بنشر

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

استاذي الكريم ابو خليل 

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

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

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

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

 

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

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

 

في الملف الموجود في البارتشن C

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

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

ان شاء الله اني وفقت في الشرح

قام بنشر

ارجوا القراءة والتطبيق بدقة :

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

اولا - الجدول الذي يتم فحصه موجود في الواجهات  وليس في قاعدة الجداول

1- مرفق مجلدين  : wz   ويوضع داخل الجهاز الخادم  ويحتوي على قاعدة الجداول  zzData.mdb  وملف الواجهات dbz.mdb  وداخله جدول الفحص tbl1  ، للتجربه ضعه على قرص C

2- جدول الفحص هذا يشتمل على حقل رقمي  نضع فيه رقم النسخة المحدثة

ثانيا : المجلد الثاني fre هو مجلد الواجهات الذي نضعه للمستخدمين داخل الاجهزة الفرعية ويشتمل على ملفين أو بالاصح (قاعدتي واجهات)

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

هذه الوسيطة يوجد داخلها جدولين  احدها مرتبط  بملف الواجهات الموجود على الخادم والآخر محلي 

كل جدول يحتوي على حقل رقمي واحد فقط  

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

وان كان الرقم المرتبط اكبر من الرقم المحلي يتم التالي :

_ استبدال الواجهة القريبة بالواجههة البعيدة

_ تحديث قيمة الحقل المحلي بحيث يكون مساويا للرقم المرتبط

_ تشغيل الواجههة

لاحظوا :

_  ان قاعدة بيانات البرنامج ( الجداول ) ليس لها اي دور  في العملية

_ ملف الواجهات  يجب ان يبقى بصورة دائمة بجوار الداتا بيس وانما يستبدل بالجديد  عند التحديث

_ عند تصفح الملف الوسيط ورؤية الكود ستبدوا لك العملية بصورة اوضح

 

 

 

fre.rar

  • Like 1
  • Thanks 1
  • 3 months later...

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