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

هل دالة Dcount تسبب بطى البرنامج


aaabade
إذهب إلى أفضل إجابة Solved by jjafferr,

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

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

كان البرنامج يعمل بكفاءة ممتازة وبعد ادخال اكثر من 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)

 

جعفر

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

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

في ٢٤‏/٢‏/٢٠٢١ at 19:31, jjafferr said:

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

 

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

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

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


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


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

 

جعفر

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

 

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

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

في ٢٤‏/٢‏/٢٠٢١ 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