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

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

قام بنشر

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

كان البرنامج يعمل بكفاءة ممتازة وبعد ادخال اكثر من 300 سجل لاحظت ان البرنامج بدء في البطئ والواجهه تتجمد عن العمل. 

فهل لهذه الداله علاقة يهذا الموضوع؟؟

واذا كانت هذه الداله سبب المشاكل فلماذا نستخدمها؟؟

قام بنشر
46 دقائق مضت, aaabade said:

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

كان البرنامج يعمل بكفاءة ممتازة وبعد ادخال اكثر من 300 سجل لاحظت ان البرنامج بدء في البطئ والواجهه تتجمد عن العمل. 

فهل لهذه الداله علاقة يهذا الموضوع؟؟

واذا كانت هذه الداله سبب المشاكل فلماذا نستخدمها؟؟

المشكلة فى طريقة استخدامها وليس فى الدالة نفسها .. مثال اذا استخدمتها فى استعلام Query قد تسبب بطء شديد فيه على حسب عدد السجلات .. مثال اخر اذا استخدمتها فى نموذج Datasheet نفس المشكلة .. طيب الحل ايه ؟ فيه حلول كتير الحل الابسط على مثالك السابق تقوم بوضع الدالة فى حدث قبل التحديث Before Update للحقل المراد اختبار تكرار القيمة فيه ووضع رسالة تحدير فى حالة التكرار .. بالطريقة السابقة هتكون الدالة قامت بدورها دون كتابة نتيجتها فى اى مكان غير الذاكرة فقط .. والله اعلم .. بالتوفيق

  • Thanks 1
  • أفضل إجابة
قام بنشر

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

 

مثل ما قال اخوي عمرو ، هناك عدة طرق للوصول الى طلبك ، ومن الخطأ وضع DCount واخواتها في استعلام ،

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

وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل :

بدل
A = DCount("[Salary]","Table_Name","[ID]=" & myID)


استعمل
A = DCount("*","Table_Name","[ID]=" & myID)

 

جعفر

  • Like 2
  • Thanks 1
قام بنشر
منذ ساعه, jjafferr said:

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

 

مثل ما قال اخوي عمرو ، هناك عدة طرق للوصول الى طلبك ، ومن الخطأ وضع DCount واخواتها في استعلام ،

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

وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل :


بدل
A = DCount("[Salary]","Table_Name","[ID]=" & myID)


استعمل
A = DCount("*","Table_Name","[ID]=" & myID)

 

جعفر

اشكرك استاذ جعفر

قام بنشر
52 دقائق مضت, aaabade said:

اشكرك استاذ جعفر

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

  • Like 1
قام بنشر
في ٢٤‏/٢‏/٢٠٢١ at 19:31, jjafferr said:

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

 

مثل ما قال اخوي عمرو ، هناك عدة طرق للوصول الى طلبك ، ومن الخطأ وضع DCount واخواتها في استعلام ،

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

وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل :


بدل
A = DCount("[Salary]","Table_Name","[ID]=" & myID)


استعمل
A = DCount("*","Table_Name","[ID]=" & myID)

 

جعفر

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

 

شكرا لك على النصيحة

قام بنشر
3 ساعات مضت, aaabade said:

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

يا ولد يا فنان :dance1:

  • Like 1
قام بنشر
في ٢٤‏/٢‏/٢٠٢١ at 20:31, jjafferr said:

وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل :


بدل
A = DCount("[Salary]","Table_Name","[ID]=" & myID)


استعمل
A = DCount("*","Table_Name","[ID]=" & myID)

 

والسبب هو :

  • يقوم الاكسس بعمل فلترة/تصفية للسجلات حسب المعيار ،
  • ثم يقوم بحساب السجلات الخاصة بالحقل المطلوب ،
  • بينما في الواقع انت لا تريد حساب عدد السجلات التي في الجدول لحقل معين ، يهذا المعيار ، إنما انت تريد حساب عدد السجلات 🙂

 

ولجعل الدالة تعمل بطريقة اسرع ، فيجب ان يكون الحقل myID مفهرس (يجب ان تكون جميع الحقول التي تستعملها كمعيار مفهرسة ، سواء معيار في الكود او في استعلام) ، ثم ضغط واصلاح ، ثم جرب السرعة 🙂

 

جعفر

  • Like 1

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