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

عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية


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

السلام عليكم 🙂

 

المرفق يحتوي على النسختين mdb و accdb ، ويعمل على النواتين 32بت و 64 بت 🙂

 

النسخة السابقة: عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 3 - قسم الأكسيس Access - أوفيسنا (officena.net)

 

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

Access_Stopped_Working.jpg.a1e81b8330b1e4c07f973f386f922f3d.jpg

.

او يُظهر اخطاء ، مثل هذه الرسائل وغيرها :

The database cannot be opened because the VBA project contained in it cannot be read.

.

Error accessing file. Network connection may have been lost

.

Compile Error

.

هذا معناه ان برنامجك يحتاج تنظيف من الاخطاء التي فيه ، او يحتاج الى استعادة حيويته مرة اخرى ، بالتنظيف والصيانة 🙂

وعادة نقوم بهذا العمل على برنامج الواجهات FE ، ولكن برنامج الجداول BE يستفيد منه كذلك.

 

نافذة البرنامج :

image.png.92a48eaef88cc715f7672a2f9dc6d8f4.png

.

1. نختار الملف ، سواء mdb او accdb ، اما ملفات mde و accde ، فلن تستفيد من Decompile/Compile ، ولكنها ستستفيد من الضغط والاصلاح ، وعمل نسخ اضافية ،

2. اذا البرنامج فيه كلمة سر (ليس كلمة سر المستخدمين ، ولا كلمة سر الكود VBE) ، فيمكنك كتابة كلمة السر هنا ، وسيقوم البرنامج بحفظه/نسخه في ذاكرة الكمبيوتر ، وتستطيع استعمال الالصاق Ctl+v عندما يسألك البرنامج ، كما يقوم البرنامج بإستخدامه في فتح برنامجك لمراجعة الاخطاء. اذن هناك خطوة يمكن للبرنامج ان يستخدم كلمة السر مباشرة ، وهناك خطوة يجب عليك ادخال كلمة السر عن طريق اللصق Ctl+v ،

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

image.png.4c395560ec9d3c51a33b62846055298b.png

.

يعني بدل ان تحفظ نسخة من برنامجك بطرقك الخاصة ، تستطيع وبعد تعديل برنامجك ، ان تتأكد انه خالي من الشوائب ، ويعمل نسخه منه تلقائيا 🙂

وهناك عدة طرق لإختيار مجلد الحفظ:

3. حفظ الملف في نفس مجلد البرنامج ،

4. اختار المجلد ، وبعد اختياره ، تستطيع ان تنقر على الزر 9 ليقوم البرنامج بحفظ هذا المجلد/المسار في البرنامج للمرات القادمة ،

5. اول مسار تريد حفظه هو: استعمل الخطوة 4 في فتح المجلد الرئيسي لحفظ النسخ الاحتياطية (واذا ما كان عندك ، فقم بعمله من الآن) ، ثم احفظ المجلد/المسار بالزر 9. وبعدها ، البرنامج تلقائيا يختار هذا المجلد (اذا قمت بحفظه بواسطة الزر 9) كلما فتحت البرنامج ، اي انه اول سجل في الجدول ،

6. عن طريق الخطوة 4 ، تستطيع حفظ اي عدد من المجلدات ، ولاحقا تستطيع ان تختار هذا المجلد لحفظ النسخة الاحتياطية فيه ،

7. عدم عمل نسخ احتياطية ، للأسف الشديد 😞

8. عند اختيار اي من الاختيارات اعلاه ، سيضع البرنامج مسار مجلد النسخ الاحتياطية هنا ،

11. الآن نطلب من البرنامج ان يقوم بعمله ، بالخطوات التالية :


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

image.png.e7f4690ac987d2dffe2dbb67d6a7c2fa.png

ب. ضغط واصلاح

  1. لما تحذف سجلات من برنامجك ، فإن البرنامج يعطي اشارة الى الجدول بإخفائه ، ولا يقوم بحذفه إلا بعد الضغط والاصلاح ،
  2. عند عمل فهرسة لحقول في الجدول ، فإن البرنامج يحتاج الى ضغط واصلاح حتى يقوم بترتيب اعدادات الفهرسة ،
  3. عند العمل على البرنامج لفترة طويلة بإضافات وتعديل وحذف ، فالبرنامج يحتاج الى ضغط واصلاح لإعادة ترتيب الفهرسة لسرعة عمل البرنامج ،
  4. قد يتم خطأ في تسجيل سجل ، ربما بسبب انطفاء الكهرباء ، او اغلاق الكمبيوتر وبدون اغلاق البرنامج ، وهذا السجل يجعل الجدول لا يعمل بطريقة صحيحة ، والضغط والاصلاح يحل هذه الاشكالية ،
  5. البرنامج عبارة عن ملف في الكمبيوتر ، ولما تعمل البرنامج ، فإن الكمبيوتر يحفظ البرنامج على المكان الفارغ من القرص الصلب ، ولما تضيف سجلات جديدة ويكبر حجم البرنامج ، فقد يحفظ الكمبيوتر الجزء الجديد في مكان آخر على القرص الصلب ، مكان غير ملاصق للجزء الاصل (وهذه طريقة حفظ الكمبيوتر للملفات) ، وبهذه الطريقة يصبح الملف موجدا على اجزاء مختلفة من القرص الصلب ، مما يجعل البرنامج ابطأ ، ولما تعمل ضغط واصلاح ، فإن الاكسس يقوم بحساب المساحة المطلوبة للبرنامج ، ثم يقوم بعمل برنامج جديد في مكان جديد على القرص الصلب ، وينسخ البرنامج اليه ، مما يجعل البرنامج اسرع ،
  6. بالاضافة الى امور اخرى لا يتم حلها إلا بالضغط والاصلاح ،
  7. الضغط والاصلاح لا علاقة له بالكود ، ولا يقوم بفحصه.

ج. Decompile : لما نكتب الكود ، الاكسس يحتفظ بكل سطر بلغة P-Code الخاصة بمايكروسوفت (والتي تُستخدم لبعض البرامج الاخرى كذلك) ، وعند تنفيذ الكود ، فالاكسس ينفذ كود لغة P-Code ، وفي بعض الاحيان من كثرة التعديلات على الكود ، فإنه لا يتم تحديث P-Code بطريقة صحيحة ، فينتج عنه رسائل اخطاء اكسس ولا يعمل البرنامج بطريقة صحيحة ، وعند عمل Decompile ، فالاكسس يحذف كود P-Code القديم ، ويسجل فيه كود جديد من VBA ، مما يجعل البرنامج اصغر في الحجم زيادة في الكفائة.

د. Compile : بهذه الطريقة ، نتأكد من عدم وجود اخطاء في الكود ، وبقايا ومخلفات ، مثل:

  1. لما نحذف كائنات في النموذج/التقرير ، ولا نحذف الحدث الخاص بها ، فالكود يجب حذفة ، لعدم وجود الحدث الي يستعمله ،
  2. لما نحذف كائن في النموذج/التقرير ، وفي الكود نكون قد اعطيناه قيمة ، فيجب حذف المسمى من الكود ،
  3. عند كتابة كود بطريقة غير صحيحة وغير مكتملة ، فيجب تصحيحها ،
  4. وهذه الخطوه مهم لتحويل البرنامج الى mde او accde .

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

ويعطيك مثل الرسالة التالية ، والتي اذا اخترت نعم ، فيوقف البرنامج ، 

image.png.27273ea738d565d9c48139850e8deab5.png

.

ويأخذك لبرنامجك الى نافذة الكود VBE ، ثم يجب عليك ان تعمل التالي يدويا:

image.png.0d2794c4f5caedc1098777b074753c34.png

.

وتُصلح الاخطاء التي في برنامجك ، الى ان لا يعطي برنامجك اخطاء اخرى ، 

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

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

12. البرنامج يخبرك عن الخطوات التي تمت 🙂

 

جعفر

 

 

Decompile_4.accdb..zip Decompile_4.mdb..zip

  • Like 10
  • Thanks 4
رابط هذا التعليق
شارك

  • الردود 73
  • Created
  • اخر رد

Top Posters In This Topic

2 ساعات مضت, jjafferr said:

وتُصلح الاخطاء التي في برنامجك ، الى ان لا يعطي برنامجك اخطاء اخرى

بصراحة يا ابا عبدالله منتهى الابداع

كان لدي ملف اختفت الاكواد

والان يعمل بشكل ممتاز احتجت استخدام برنامجك مرتين

 

 

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

شكرا اخوي خالد 🙂

في مجموعة قليلة من الاعضاء اللي يعرفون فائدة هذا البرنامج 😢

اما انا ، فهذا البرنامج اضعه على سطح المكتب ، ويكون مفتوح ، وبعد الانتهاء من بعض تعديلات على اي من برامجي ، على طول استعمل البرنامج هذا ،

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

 

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

 

دكتور حسنين ، واخوي محمد ، شكرا لكم 🙂

 

جعفر

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

جزاك الله خيرا معلمنا العزيز @jjafferr جعله الله فى ميزان حسناتك 💐

قد استعملت النسخه رقم 3 ع برنامج كنت اعمل عليه كان ثقيل جد وقد خف بعدها سوف اجرب النسخه الجديده واوفيكم بالنتيجه وان شاء الله تكون نتيجه ممتازه لانها من يد معلمنا العزيز

9 دقائق مضت, jjafferr said:

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

انا اتبع هذا النمط بعد الاطمئنان لكل خطوه فى اى شىء اعمل عليه حتى ان حدثت مشكله احذفه واخد نسخه اخرى للعمل عليها

image.png.e039a61c94c6753ec4741977f3d30a4e.png

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

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

23 دقائق مضت, jjafferr said:

يا ريت تخبرنا تجربتك

الحقيقة انا ايضا اعمل عدة نسخة احتياطيه ودائما لدي نسخة قبل اي تعديل

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

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

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

37 دقائق مضت, jjafferr said:

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

حقيقة لا تكفي كلمات الشكر التي نعرفها حقكم - فعطائكم الغير منقطع لا تكفيه كلمات الشكر.

ولكن نقول كما علمنا رسول الله (صلي الله عليه وسلم) فقال : ( مَنْ صَنَعَ إِلَيْكُمْ مَعْرُوفًا فَكَافِئُوهُ ، فَإِنْ لَمْ تَجِدُوا مَا تُكَافِئُونَهُ فَادْعُوا لَهُ حَتَّى تَرَوْا أَنَّكُمْ قَدْ كَافَأْتُمُوهُ) . رواه أبو داود (1672) . وصححه الألباني في صحيح أبي داود

وكما قال: (صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ) : ( مَنْ صُنِعَ إِلَيْهِ مَعْرُوفٌ فَقَالَ لِفَاعِلِهِ : جَزَاكَ اللَّهُ خَيْرًا فَقَدْ أَبْلَغَ فِي الثَّنَاءِ ) . رواه الترمذي (2035) . وصححه الألباني في صحيح الترمذي .

فجزاكم الله عنا خيرا، ورحم والديكم وأصلح في ذرياتكم وأهليكم ورزقنا واياكم حسن الختام

 

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

السلام عليكم 

بعد التجربة يظهر معي هذا الخطأ ولا يكتمل العمل

ما المشكلة

هل هذا يعني أن لدي أخطاء يجب معالجتها - رغم أني أقوم بعمل compile ولا تظهر أخطاء كما بالصورة المرفقة

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

123.png

1231.png

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

12 ساعات مضت, أبو عبدالله الحلوانى said:

ما المشكلة

 

الظاهر انك استخدمت صيغة mdb ، ووجدت هذا الجواب في احد المواقع:

1.

ابحث في جهازك عن ملفات doa3*.dll ، واحذفها جميعا ، ولا تحذف ملف dao360.dll الموجود في :

 

لنظام 32بت
C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll
  
لنظام 64بت 
C:\Program Files (x86)\Common Files\Microsoft Shared\DAO\dao360.dll

 

2.

ثم سجل الملف dao360.dll كمسؤول في برنامج cmd :

لنظام 32بت
C:\Windows\system32>regsvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll"
  
لنظام 64بت 
C:\Windows\system32>regsvr32 "C:\Program Files (x86)\Common Files\Microsoft Shared\DAO\dao360.dll"

لتحصل على هذه الرسالة المؤكدة بنجاح الامر:

image.png.ded594a51dac66a58c95beb463199e42.png

 

3.

واعد تشغيل الكمبيوتر ، ثم جرب البرنامج مرة اخرى 🙂

 

 

جعفر

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

53 دقائق مضت, jjafferr said:

الظاهر انك استخدمت صيغة mdb ، ووجدت هذا الجواب في احد المواقع:

الظاهر أني أتعبت حضرتك بسؤالي حقا أنا آسف :wub: 

1- استخدمت صيغة accdb

2- لدي علي الجهاز نسختي أكسس 2010 و 2016  (يبدو أن المشكلة بوجود النسختين معا أعتقد هذا لأني حاولت الاتصال بنفس المكتبة من vb.net  وأعطاني خطأ في الاتصال :blink:)

3- بعد البحث وجدت هذه الملفات 

سأجرب وأوفيكم بالنتيجة

 

 

1233.png

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

منذ ساعه, jjafferr said:

ثم سجل الملف dao360.dll بإستخدام المسؤول في برنامج cmd :

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

 

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

9 ساعات مضت, أبو عبدالله الحلوانى said:

(يبدو أن المشكلة بوجود النسختين معا أعتقد هذا لأني حاولت الاتصال بنفس المكتبة من vb.net  وأعطاني خطأ في الاتصال :blink:)

لا اعلم اذا هذا له علاقة بالموضوع ، ولا استبعد ذلك !!

ولا تحذف اي ملف الآن ،

 

10 ساعات مضت, jjafferr said:

2.

ثم سجل الملف dao360.dll بإستخدام المسؤول في برنامج cmd :

.. إذا كان نظامك  64bit: قم بنسخ المكتبة وضعها في المجلد (sysWOW64):

regsvr32 c:\windows\sysWOW64\dao360.dll

.. إذا كان نظامك  32bit: قم بنسخ المكتبة وضعها في المجلد (system32).

regsvr32 c:\windows\system32\dao360.dll

هناك خطأ في التعليمات اعلاه ، فلا نحتاج الى نسخه الى مجلدات النظام (وتم تحديث التعليمات اعلاه)

 

 

9 ساعات مضت, أبو عبدالله الحلوانى said:

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

هكذا :

C:\Windows\system32>regsvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll"
  
او حسب نظامك 
C:\Windows\system32>regsvr32 "C:\Program Files (x86)\Common Files\Microsoft Shared\DAO\dao360.dll"

image.png.7a8710bacdeaa5049e1b8bc275bf2c1e.png

.

جعفر

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

في ٢٥‏/١‏/٢٠٢١ at 09:40, jjafferr said:

هناك خطأ في التعليمات اعلاه ، فلا نحتاج الى نسخه الى مجلدات النظام (وتم تحديث التعليمات اعلاه)

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

تم تسجيل المكتبة بالمسارين المشار اليهما بنجاح والحمد لله 

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

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

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

21 ساعات مضت, عفرنس said:

يا أستاذ الأستاذين .. 

يا أبا عبدالرحمن ليسا أستاذين فقط بل أساتيذ كثر :yes:

في ٢٦‏/١‏/٢٠٢١ at 20:00, أبو عبدالله الحلوانى said:

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

قمت بازالة الأوفيس بنسختيه وقمت بتسطيب نسخة 2016 فقط. ولازال الوضع علي ما هو عليه

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

يبدو أن المشكلة لم تكن بالأوفس منذ البداية!!!!

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

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

1234.png

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

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

يا أبا عبدالرحمن ليسا أستاذين فقط بل أساتيذ كثر :yes:

في ٢٦‏/١‏/٢٠٢١ at 21:00, أبو عبدالله الحلوانى said:

ههههههه الجمع  ( أُستاذِين )

وهذه الكلمة مقتبسة من جملة قالها الإمام مسلم رحمه الله  لشيخه الإمام البخاري رحمه الله حينما سأله عن إسناد حديث كفارة المجلس . فأجابه رحمه الله فقال له الإمام مسلم :  «دَعْنِي حَتَّى أُقَبِّلَ رِجْلَيْكَ يَا أُسْتَاذَ الْأُسْتَاذِينَ، وَسَيِّدَ الْمُحَدِّثِينَ، وَطَبِيبَ الْحَدِيثِ فِي عِلَلِهِ» . 

 

دمت بود @أبو عبدالله الحلوانى
 

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

انا جربته على :

اكسس 2010 ، 32بت ، على وندوز 10 ، 64بت ،

اكسس 2019 ، 64بت ، على وندوز 10 ، 64بت ،

 

ما هو النظام الذي تشتغل عليه ؟

 

 

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

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

هل ممكن تعمل BreakPoint في اول كود النقر على زر Decompile ، وتمشي فيه خطوة خطوة باستعمال F8 ، وتخبرني اي سطر يعطيك الخطأ 🙂

 

جعفر

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

57 دقائق مضت, jjafferr said:

ما هو النظام الذي تشتغل عليه ؟

ويندوز 10 64 بت

57 دقائق مضت, jjafferr said:

هل ممكن تعمل BreakPoint في اول كود النقر على زر Decompile ، وتمشي فيه خطوة خطوة باستعمال F8

علي راسي 

تفضل هنا أول وقفة وأعطاني تلك الرسالة وأخيرا ظهرت تلك الرسالة

وشكرا علي معلومة ال BreakPoint سمعت عنها ولم أجربها الا الآن :biggrin:

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

 

1235.png

123.png

1236.png

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

2 ساعات مضت, أبو عبدالله الحلوانى said:

ليسا أستاذين فقط بل أساتيذ كثر

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

قليل من يستخدم اساتيذ لجمع كلمة استاذ مع صحة الجمع أساتذة وأساتيذ وأستاذون

فائدة

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

إنّ أباها وأبا أباها .... قد بلغا في المجد غايتاها

وكذلك العرب استخدمت الجمع للاثنين من ذلك قوله تعالى ( وَدَاوُودَ وَسُلَيْمَانَ إِذْ يَحْكُمَانِ فِي الْحَرْثِ إِذْ نَفَشَتْ فِيهِ غَنَمُ الْقَوْمِ وَكُنَّا لِحُكْمِهِمْ شَاهِدِينَ )

وقوله تعالى ( قَالَ ٱهْبِطَا مِنْهَا جَمِيعًۢا ۖ بَعْضُكُمْ لِبَعْضٍ عَدُوٌّ ۖ فَإِمَّا يَأْتِيَنَّكُم مِّنِّى هُدًى فَمَنِ ٱتَّبَعَ هُدَاىَ فَلَا يَضِلُّ وَلَا يَشْقَىٰ )

واجازت التثنية للجمع ومن ذلك قول نصيب

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

واعتذر مقدما عن خروجي عن الموضوع

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

56 دقائق مضت, kha9009lid said:

قليل من يستخدم اساتيذ

لا احنا الصعايدة بنستخدمها كثير :biggrin: (رجعت لتخريب اللغة تاني)

جزاكم الله عنا خيرا 

لا فض فوك - حقيقة أنتشي فرحا لوجود المهتمين بالحفاظ علي أصالة لغتنا واستعمالها بشكل صحيح (فبدون لغة لا هوية علي حسب اعتقادي:rol:)

أحسن الله اليكم

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

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

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.

  • محتوي مشابه

    • بواسطه jjafferr
      السلام عليكم 🙂
       
      اذا عملنا برنامج على الاكسس 32بت ، وفيه مكتبات الوندوز الـ 32بت (لاحظ الرقم 32 في اسم المكتبة: comdlg32.dll) ، ثم شغلنا البرنامج على اكسس 64بت ، فنحصل على هذا الخطأ :

      .
      يوجد ملف في موقع مايكروسوف (مرفق نسخة Win32API_PtrSafe.zip) ، وفيه طريقة عمل مناداة النواتين :
      https://www.microsoft.com/en-us/download/details.aspx?id=9970
      وتوجد مواقع مجهزة الكود للنواتين ، مثل (فقط ابحث عن الدالة ، واعمل نسخ/لصق للكود) :
      http://www.jkp-ads.com/articles/apideclarations.asp
      ------------------------------------------------------------------------------------------------------------------
       
      ولكني هنا سأناقش كيف يمكننا تعديل المكتبة بدون الرجوع لهذه الروابط  (للأسف ، سنضطر للرجوع لهذه الروابط لبعض المكتبات) !!
      والدوال التي استعملها هنا ، هي كأمثلة فقط ، والطريقة التي سنعمل بها هي ، ان نضع برنامج 32بت فيه الدالة ، ثم نفتح البرنامج بالاكسس 64بت ، ونبدأ نلاحق الاخطاء ونصلحها. وهناك 3 احتمالات فقط ، وسنناقشها جميعا ان شاء الله 🙂
       
      الخطوة الاولى والاهم هي اضافة كلمة PtrSafe بعد كلمة Declare ، للنواتين 32بت و 64بت.
       
      أ. الدالة : Sleep
      نناديها بنواة 32بت هكذا :
      Private Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) وهنا مثال لعملها : 1.Sleep.32bits.accdb.zip
       
      عندنا الطرق التالية (وجميعها تعمل وصحيحة) لنبدا العمل لجعل المكتبة تعمل على النواتين 32بت و64بت (وستكون طريقة عملنا بأحد هذه الطرق لجميع المكتبات) :
      نلاحظ ان الفرق بين كود 32بت (اعلاه) ، واول كود 64بت (ادناه) هو اضافة كلمة PtrSafe بعد كلمة Declare ، والتي يقبلها نظام 32بت كذلك ،
      وفي الطرق الثلاثة التالية ، نستخدم نفس الكود رقم 1 ، ولكننا نغلفه بالامر IF# ،
      ولهذا المثال ، سوف استخدم الطريقة رقم 3 :
      '1 'Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '2 '#If VBA7 Then ' Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '#Else ' Public Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '#End If '3 #If VBA7 And Win64 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) #Else Public Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) #End If '4 '#If Win64 Then ' Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '#Else ' Public Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '#End If .
      ولكن ، لما نفتح الكود في الاكسس 64بت ، نلاحظ انه جعل كود 32بت باللون الاحمر :

      .
      على الرغم من البرنامج عمل لنا هذا السطر باللون الاحمر ، إلا ان الكود يعمل بطريقة صحيحة ،
      وبعد كل خطوة نعملها ، يجب ان نعمل Compile :
       
      حتى نعرف الخطأ التالي ، ونعدل عليه 🙂
      ولما ما نحصل على خطأ ، فهنا نبدأ بتجربة البرنامج (على والاكسس 64بت ، والاكسس 32بت) ، حتى نتأكد بأنه يعمل بالطريقة الصحيحة ،
      والحمدلله ، هذه الدالة اصبحت جاهزة للعمل بالنواتين بهذا التغيير ، وتم تجربة الملف المرفق على النواتين🙂
      وهذه النسخة بعد تحديثها للعمل على النواتين 32بت و64بت : 1.Sleep.64bits.accdb.zip
      ------------------------------------------------------------------------------------------------------
       
      ب. الدوال: GetSystemDirectory ، GetWindowsDirectory ، GetTempDir
      نواة 32بت :
      Private Declare Function apiGetSystemDirectory& Lib "kernel32" _ Alias "GetSystemDirectoryA" _ (ByVal lpBuffer As String, ByVal nSize As Long) Private Declare Function apiGetWindowsDirectory& Lib "kernel32" _ Alias "GetWindowsDirectoryA" _ (ByVal lpBuffer As String, ByVal nSize As Long) Private Declare Function apiGetTempDir Lib "kernel32" _ Alias "GetTempPathA" (ByVal nBufferLength As Long, _ ByVal lpBuffer As String) As Long والبرنامج : 2.System_Directories.32bits.accdb.zip
       
      64بت، خطوات التعديل ، بإضافة PtrSafe فقط:
      Private Declare PtrSafe Function apiGetSystemDirectory& Lib "kernel32" _ Alias "GetSystemDirectoryA" _ (ByVal lpBuffer As String, ByVal nSize As Long) Private Declare PtrSafe Function apiGetWindowsDirectory& Lib "kernel32" _ Alias "GetWindowsDirectoryA" _ (ByVal lpBuffer As String, ByVal nSize As Long) Private Declare PtrSafe Function apiGetTempDir Lib "kernel32" _ Alias "GetTempPathA" (ByVal nBufferLength As Long, _ ByVal lpBuffer As String) As Long وعمل البرنامج بشكل صحيح للنواتين : 2.System_Directories.64bits.accdb.zip
      ------------------------------------------------------------------------------------------------------
       
      ج. الدالة: EnumFontFamilies
      عرض الخطوط fornts في مربع تحرير وسرد في الاكسس - قسم الأكسيس Access - أوفيسنا (officena.net)
      لأخونا @kanory 🙂 
      32بت :
      Private Declare Function EnumFontFamilies Lib "gdi32" Alias "EnumFontFamiliesA" (ByVal hdc As Long, ByVal lpszFamily As String, ByVal lpEnumFontFamProc As Long, lParam As Any) As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function GetFocus Lib "user32" () As Long والبرنامج: 4.Kan_Fonts.32bits.accdb.zip
       
      64بت، خطوات التعديل ، بإضافة PtrSafe فقط:
      Private Declare PtrSafe Function EnumFontFamilies Lib "gdi32" Alias "EnumFontFamiliesA" (ByVal hdc As Long, ByVal lpszFamily As String, ByVal lpEnumFontFamProc As Long, lParam As Any) As Long Private Declare PtrSafe Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare PtrSafe Function GetFocus Lib "user32" () As Long  
      - لما نعمل Compile نحصل على الخطأ في السطر التالي:

      .
      اذن الخطأ في المتغير الثالث من الدالة EnumFontFamilies ، والذي نوعه Long ، فيجب تغييره في الدالة الى LongPtr ،
      الخطوة الثانية تغيير النوع Long الى LongPtr في الدالة
      وطبعا اذا عملنا التغيير على السطر اعلاه، فالنواة 32بت ستعطيك خطأ هنا ، لذا يجب تغليف الدالة بالامر IF# ، هكذا :

      .
      وعند عمل Compile مرة اخرى ، لا نحصل على خطأ ، والبرنامج يعمل بطريقة صحيحة ،
      البرنامج يعمل بطريقة صحيحة : 4.Kan_Fonts.64bits.accdb.zip
      ------------------------------------------------------------------------------------------------------
       
      د. دعوة لتجربة الاصدار الثالث من برنامج القران الكريم - صفحه 2 - قسم الأكسيس Access - أوفيسنا (officena.net)
      برنامج الذكر الحكيم لأخونا @ابا جودى 🙂
       برنامج 32بت: 5.الذكر الحكيم V. 3.0.2.32bits.mdb.zip
       
      وقبل تشغيله على 64بت ، نضيف الامر PtrSafe الى جميع الدوال ، سواء لنواة 32بت او 64بت (ومنها تم عمله) ، ومنهم :
      Private Declare Sub ChooseColor Lib "msaccess.exe" Alias "#53" (ByVal hwnd As Long, clr As Long) '---color Picer الى Private Declare PtrSafe Sub ChooseColor Lib "msaccess.exe" Alias "#53" (ByVal hwnd As Long, clr As Long) '---color Picer  
      والنتيجة تمام : 5.الذكر الحكيم V. 3.0.2.64bits.mdb.zip
      ------------------------------------------------------------------------------------------------------
       
      هـ. عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 3 - قسم الأكسيس Access - أوفيسنا (officena.net)
      مع ان الوحدة النمطية Shell_n_Wait تم اخذها من هذا الموقع :
      https://github.com/xxdoc/vb6-Shell-Wait/blob/master/Shell %26 Wait v2/modShellWait.bas
      والتي تم عملها للنواتين 32بت و64بت ، ولكن لايزال البرنامج يعطي اخطاء في بيئة 64بت ، فنفتحة في برنامج 64بت ،
      نضيف الامر PtrSafe الى جميع الدوال ، ونعمل Compile ، 
      وجدنا خطأ ، ونلاحظ اننا ننادي الدالة MoveWindow والتي تعطي قيمتها الى المتغير retval :

      .
      والآن لنرى الدالة نفسها ،
      ولكن الدالة جاهزة من الاصل للنواة 64بت ، ولا تحتاج الى تعديل :

      .
      وبعد التمعن ، نرى ان الخطأ موجود في نوع المتغير retval ، حيث اننا اعلنا انه Long ، بينما في بيئة 64بت نلاحظ انه LongPtr ،
      فالحل يكون ، اما ان نعمل IF# في الكود الاول ، واما ان نوقف الاعلان في الكود الاول ، ونضيفه في الكود الثاني ، كل حسب نوعه ، وانا سأعمل المقترح الثاني:
      #If VBA7 Then Declare PtrSafe Function MoveWindow Lib "User32.dll" (ByVal HWnd As LongPtr, ByVal X As LongPtr, ByVal Y As LongPtr, ByVal nWidth As LongPtr, _ ByVal nHeight As LongPtr, ByVal bRepaint As LongPtr) As LongPtr Public retval As LongPtr #Else Declare Function MoveWindow Lib "User32.dll" (ByVal HWnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, _ ByVal nHeight As Long, ByVal bRepaint As Long) As Long Public retval As Long #End If .
      نعمل Compile مرة اخرى ، لنحصل على الخطأ التالي:

      .
      والدوال:

      .
      فالحل هو ان نغلف الدوال بالامر IF# ،
      ونجعل بيئة 64بت ان يكون LongPtr ، فقط للمتغير الاول لهذه الدالة ، 

      .
      نعمل Compile مرة اخرى ، لنحصل على الخطأ التالي:

      .
      والتعديل :

      .
      وهكذا الى بقية الاخطاء المشابهة .....
      الخطأ التالي ، والغير عن الاخطاء اعلاه :

      .
      بالبحث ، لا نجد له دالة ، وانما نجد انه تم الاعلان عنه:

      .
      فيجب حذفه من هذا الاعلان ، وإضافته الى التغليف IF# ، فيكون اعلاه للبيئة 32بت ، واما للنواة 64بت فيكون LongPtr ،
      وبعد جميع التعديلات ، تكون النسخة تعمل على النواتين ، كما في المرفق: 
      عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية - قسم الأكسيس Access - أوفيسنا (officena.net)
      ------------------------------------------------------------------------------------------------------
       
      واخيرا:
      و. دالة فتح نافذة اختيار/حفظ الملف: GetOpenFileName و GetSaveFileName
      والتعديل على هذه الدوال لا يعتمد على التغليف IF# ، وجعل الاعلان عن المتغير فيه ، ونما نحتاج الى تغيير Len الى LenB ، ونحتاج الى تعديل هذه الجزئية كذلك:

      .
      وهذا الملف للنواتين: 9.Allow_ByPass_Key.64bits.mdb.zip
       
       
      بهذه الطرق ، نستطيع ان نحول برامجنا لتعمل على نواتي اكسس 32بت و64بت 🙂
      الموضوع فني بحت ، وتحتاج ان يكون عندك نواتي اكسس ، حتى تعدل على النواتين ، ثم تجربهم الاثنين 🙂
       
      جعفر
      1.Sleep.64bits.accdb.zip 1.Sleep.32bits.accdb.zip
      Win32API_PtrSafe.zip
    • بواسطه jjafferr
      السلام عليكم 🙂
       
      رجاء مراجعة موضوع النسخة 2 من هنا :
       
      واجهة هذه النسخة:

       
      البرنامج يقوم بهذه الخطوات التي يوصي بها المحترفين (كما هو موضح في الصورة اعلاه) ،
      طريقة العمل:
      1. اختار ملف اكسس ،
      2. اذا الملف محمي بكلمة سر ، فيمكن كتابته في المربع المخصص ، حيث سيتم حفظه في ذاكرة الكمبيوتر ، والتي يجب عليك ان تدخلها يدويا للقيام بالخطوات 2 و 3 لمرة واحدة ، بينما البرنامج سيدخلها تلقائيا للخطوات التالية ،
      3. يجب ان تمسك مفتاح الشفت ، ثم تضغط على زر Decompile ، ولا تترك الزر إلا لما ينتهي البرنامج من عمله ، عندما نرى الخطوات 8 و 9 🙂
       
      هذه النسخة اسرع من النسخة السابقة ، وافضل 🙂
       
      جعفر
       
       
      Decompile_3.zip
    • بواسطه عبد اللطيف سلوم
      السلام عليكم
      نظرا للطلب على عمل نسخة احتياطية
      اضع بين ايديكم افضل تطبيق للنسخة الاحتياطية
      حيث يتيح لك اختيار مكان النسخة على فلاشة او على هارد ديسك
      استعملها منذ مدة ولا اعرف من قام بتصميمها
      سحبتها  من هذا القروب الرائع 
      ونشكر من صممها بدون ما نعرفه
      backupform.accdb
    • بواسطه Mohameddd200300
      اسلام عليكم اخواني  قد تطرق الاستاذ ابو خليل  ونزل موضع النسخ الاحطياطي  بي معاد مثل ساع اسبوع شهر. والى ذالك  وصورة الموضع تحت. المهم. عندي مشكلة النسخ في الوقت. يعني يجي الوقت المحدد وما يحصل شي  هل في مشكلة عندي هل هناك مشكلة في الكود مادري ارجو المساعده وشكرا   يوجد ملف مرفق  اتمنا ابو خليل او احد الاعضاء المميزن يشوفة ويعرفو ايش المشكلة  واكون لكم من الشاكرين.
      ترجبة محمد.accdb
    • بواسطه عبد اللطيف سلوم
      السلام عليكم 
      هل تتوفر خدمة او هناك طريقة لرفع نسخة من البرنامج على النت بشكل اوتوماتيك كل يومين مثلا
      حيث يستطيع صاحب العمل الرجو ع اليها اذا حدث خلل في جهاز ه الكمبيوتر ؟؟
       
  • المتواجدين الان   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information