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

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


kaser906

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

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

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

وعند تحويل قاعدة البيانات( الواجهة) الى  accde  بظهور رسالة غريبة

ولا يتم بعدها اكمال العملية سواء الضغط والاصلاح أو عملية تحويل القاعدة

هذه صورة الرسالة

1.png.7973bac89edf02b3c85a33d743662cda.png

فصرت ابحث وين المشكلة مدة اسبوعين  في الاكواد

لكن لم اجد اي كود يوجد به خطأ

صرت ابحث في الاستعلامات ونفس الشي لم اتوصل الى اي خطأ

وبعد التعب في البحث

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

كانت  الجداول سليمة تمام

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

وهو عبارة عن حقل قائمة منسدلة يقبل اختيار عدة قيم  لكن يظهر بشكل حقل مرفق

هذه الصورة قبل

2.png.3adf3cee5086c95916e9e7de501f922c.png

وهذه الصورة بعد

3.png.0bc244ebfec842d8709223dafbb7b5f2.png

الان عرفت وين المشكلة لكن مش عارف سببها

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

مباشرة ولكن كل شي كان تمام التمام

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

الى ان وصلت الى كود اخفاء الجداول المرتبطة وهنا كانت المفاجأه

فبعد ايقاف هذا الكود واعادة اصلاح الجدول واظهارة اختفت المشكلة

وبعد اعادة الكود للعمل وتنفيذ اخفاء الجداول ترجع المشكلة

مع العلم ان المشكلة ما تصير الا مع هذا الحقل في هذا الجدول فقط

فتذكرت كلمة لاستاذنا @jjafferr في احد المواضيع ( لا اتذكر الموضوع بالضبط )

وهو يقول انه قرأ ان اكواد احفاء الجداول  تسبب مشاكل

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

وهذا هو الكود

Dim db As DAO.Database
Dim tdf As TableDef
Set db = CurrentDb
For Each tdf In db.TableDefs
If tdf.Attributes = 1073741824 Then tdf.Attributes = 1
Next
db.Close
Set tdf = Nothing
Set db = Nothing

 

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

1 دقيقه مضت, ابوخليل said:

شكرا لك على المعلومة النادرة المهمة ،  كتب الله اجرك ،،،

نبقى تلامذة لكم استاذي الكريم

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

ولو بمعلومه بسيطه

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

8 ساعات مضت, kaser906 said:

وهذا هو الكود


Dim db As DAO.Database
Dim tdf As TableDef
Set db = CurrentDb
For Each tdf In db.TableDefs
If tdf.Attributes = 1073741824 Then tdf.Attributes = 1
Next
db.Close
Set tdf = Nothing
Set db = Nothing

 

في تقديري أن هذه المقطوعة من الشفرة ناقصة!

وعند مراجعتي _على عجل_ للمشاركات المتعلقة بالموضوع وجدت أنها تفتقر إلى الطريقة الصحيحة للطبيق!

 

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

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

شكرا لك اخي كاسر على المعلومة ، والتحقيق ، والاهم انك تذكرت اني حذرتكم :biggrin2:

على راسي استاذ

بعض الكلمات من بعض الاشخاص لا تنسى

3 ساعات مضت, أبو إبراهيم الغامدي said:

في تقديري أن هذه المقطوعة من الشفرة ناقصة!

مرحبا استاذنا

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

3 ساعات مضت, أبو إبراهيم الغامدي said:

وعند مراجعتي _على عجل_ للمشاركات المتعلقة بالموضوع وجدت أنها تفتقر إلى الطريقة الصحيحة للطبيق

ياليت تشرح الطريقة ونكون لك من الشاكرين

 

ملاحظة :

حبيت اضيف على الكلام اللي ذكرته

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

ستبقى الرسالة تظهر

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

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

أهلا @kaser906

للأسف ما لا يعرفه الكثير أن أكسس يستعمل خصيصة الإخفاء للإشارة إلى الجداول الموقتة! وما المشكلة في ذلك؟!

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

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

4 دقائق مضت, أبو إبراهيم الغامدي said:

أهلا @kaser906

للأسف ما لا يعرفه الكثير أن أكسس يستعمل خصيصة الإخفاء للإشارة إلى الجداول الموقتة! وما المشكلة في ذلك؟!

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

سبحان الله

انا استعمل اخفاء جميع الكائنات بما فيهم الجداول من حوالى سنتين
واستخدم من ان لاخر الضغط و الاصلاح دون اى مشاكل نهائيا لا مثل التى تطرق اليها اخونا @kaser906

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

والله اكثر من سنتين قاعدة بيانات حضور وانصراف واجازات وتحديد اسماء المستمرين بالعمل وطباعة الوجبات وطباعة تقارير الحضور والتاخير والغياب والمستمرين بالعمل و....... كثيرررررررر غير ذلك
القاعدة تستخدم يوميا من الساعة  6  صباحا الى الساعه 3 مساءا واحيانا اكثر من ذلك

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

أهلا @ابا جودى

من المفترض أن قاعدة البيانات الخلفية هي التي يطبق عليها الضغط والإصلاح! لا القاعدة الأمامية! وفي تقديري هذا ما تفعله أنت! 

 

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

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

1 دقيقه مضت, أبو إبراهيم الغامدي said:

أهلا @ابا جودى

من المفترض أن قاعدة البيانات الخلفية هي التي يطبق عليها الضغط والإصلاح! لا القاعدة الأمامية! وفي تقديري هذا ما تفعله أنت! 

 

فى الغالب نعم

لكن احيانا اقوم بعمل الضغط والاصلاح لكل من القاعدتين الامامية والخلفية

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

فى العمل هناك اجهزة تعمل من 2007 الى 2019        لكن كلهم بالنواة 32 بيت

واكثر من حوالى 300 حساب قد يرتبط بالقاعدة ولكم فى الغالب دائما لا يقل عن من 5 : 8  حواسيب يعملون بصفة دائمة وابدا

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

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

2 دقائق مضت, أبو إبراهيم الغامدي said:

أستاذ جعفر.. بل أتفق معك أنت!

طبعا فى المقام الاول والاخير انا لا اعارض رأى اساتذتى العظماء

ولكن انا انقل تجربتى الشخصية فقط

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

*** Warning!***
With older versions of JET there is a bug where running  compact on a database 
would delete tables marked hidden with this method. 
It has been fixed in later versions. 
It is very important that you test to see if this works with your version of JET.

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

 اذن  ليست المشكلة عامة فى كل الاصدارات

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

2 ساعات مضت, ابا جودى said:

It is very important that you test to see if this works with your version of JET.

لضمان هذه الإشكالية من الوقوع؛ أن نقوم بإعادة الجداول إلى الوضع المعتاد قبل ضغط البيانات وإصلاحها..

 

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

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

وهذه هي المشاركة اللي اشار لها اخي كاسر ،

شكرا لك استاذي للإشارة للموضوع

 

11 ساعات مضت, أبو إبراهيم الغامدي said:

من المفترض أن قاعدة البيانات الخلفية هي التي يطبق عليها الضغط والإصلاح! لا القاعدة الأمامية! وفي تقديري هذا ما تفعله أنت!

استاذي الكريم

احياناً نحتاج الى ان نقوم بعملية ضغط واصلاح لقاعدة البيانات الامامية

بسبب اننا نضع  جداول مؤقته(( هذه ايضاً يحذرنا منها استاذنا @jjafferr ))نرحل اليها بعض السجلات وبعد انتهاء

المهمة نقوم بحذفها

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

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

10 ساعات مضت, ابا جودى said:

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

 

جربت على اصدار 2016 أخر نسخه وأخر تحديث  على نظام وندوز ثاني غير اللي انا اشتغل عليه وظهرت نفس المشكلة

 

1.png.b2a08dcabd7a18a6aa889a772c0adc60.png

2.png.16bc2ea7e0c2eefa529e6b27fd1dee0d.png

 

قمت بعمل مثال يمكنكم التجربه عليه باتباع الخطوات التالية

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

قم  بالخطوات التالية لترى المشكلة

بعد فك الضغط عن الملف

1- افتح قاعدة البيانات الواجهة Hide_linked_tables

2- اعد ربط الجداول بقاعدة البيانات الخلفية

الان اعمل ضغط واصلاح او تحويل قاعدة البيانات الى Accde

ستجد ان اعملية تتم بدون مشاكل

الان قم بالخطوات التالية

1- قم باخفاء الجداول المرتبطة من خلال النموذج frm_htbl

2- اغلق قاعدة البيانات الواجهة

3- قم بتغير مسار قاعدة البيانات الخلفية

4- افتح قاعدة البيانات الواجهة وأظهر الجداول من خلال النموذج

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

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

الان حاول القيام بعملية اضغط واصلاح او تحويل لقاعدة البيانات الى Accde

ستجد ان المشكلة ظهرت من خلال الرسالة

 

hidtbl.rar

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

  • 4 weeks 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