aaabade قام بنشر فبراير 24, 2021 قام بنشر فبراير 24, 2021 لدي برنامج به حقل يقوم بالبحث عن الرقم الوظيفي المتكرر في استعلام ثم يظهر رساله اذا كان هناك تكرار. كان البرنامج يعمل بكفاءة ممتازة وبعد ادخال اكثر من 300 سجل لاحظت ان البرنامج بدء في البطئ والواجهه تتجمد عن العمل. فهل لهذه الداله علاقة يهذا الموضوع؟؟ واذا كانت هذه الداله سبب المشاكل فلماذا نستخدمها؟؟
Amr Ashraf قام بنشر فبراير 24, 2021 قام بنشر فبراير 24, 2021 46 دقائق مضت, aaabade said: لدي برنامج به حقل يقوم بالبحث عن الرقم الوظيفي المتكرر في استعلام ثم يظهر رساله اذا كان هناك تكرار. كان البرنامج يعمل بكفاءة ممتازة وبعد ادخال اكثر من 300 سجل لاحظت ان البرنامج بدء في البطئ والواجهه تتجمد عن العمل. فهل لهذه الداله علاقة يهذا الموضوع؟؟ واذا كانت هذه الداله سبب المشاكل فلماذا نستخدمها؟؟ المشكلة فى طريقة استخدامها وليس فى الدالة نفسها .. مثال اذا استخدمتها فى استعلام Query قد تسبب بطء شديد فيه على حسب عدد السجلات .. مثال اخر اذا استخدمتها فى نموذج Datasheet نفس المشكلة .. طيب الحل ايه ؟ فيه حلول كتير الحل الابسط على مثالك السابق تقوم بوضع الدالة فى حدث قبل التحديث Before Update للحقل المراد اختبار تكرار القيمة فيه ووضع رسالة تحدير فى حالة التكرار .. بالطريقة السابقة هتكون الدالة قامت بدورها دون كتابة نتيجتها فى اى مكان غير الذاكرة فقط .. والله اعلم .. بالتوفيق 1
أفضل إجابة jjafferr قام بنشر فبراير 24, 2021 أفضل إجابة قام بنشر فبراير 24, 2021 وعليكم السلام 🙂 مثل ما قال اخوي عمرو ، هناك عدة طرق للوصول الى طلبك ، ومن الخطأ وضع DCount واخواتها في استعلام ، والافضل استعمال الاستعلام للحصول على النتيجة المطلوبة (وليس عن طريق استعلام المجاميع ، لأنه بطيء كذلك) ، وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل : بدل A = DCount("[Salary]","Table_Name","[ID]=" & myID) استعمل A = DCount("*","Table_Name","[ID]=" & myID) جعفر 2 1
aaabade قام بنشر فبراير 24, 2021 الكاتب قام بنشر فبراير 24, 2021 منذ ساعه, jjafferr said: وعليكم السلام 🙂 مثل ما قال اخوي عمرو ، هناك عدة طرق للوصول الى طلبك ، ومن الخطأ وضع DCount واخواتها في استعلام ، والافضل استعمال الاستعلام للحصول على النتيجة المطلوبة (وليس عن طريق استعلام المجاميع ، لأنه بطيء كذلك) ، وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل : بدل A = DCount("[Salary]","Table_Name","[ID]=" & myID) استعمل A = DCount("*","Table_Name","[ID]=" & myID) جعفر اشكرك استاذ جعفر
biskra قام بنشر فبراير 24, 2021 قام بنشر فبراير 24, 2021 52 دقائق مضت, aaabade said: اشكرك استاذ جعفر أظن أنه من الأحسن أن تجرب ما تم اقتراحه من حلول و موافاتنا بخلاصة التجربة حتى يكون للموضوع فائدة و يفيد الجميع. 1
aaabade قام بنشر فبراير 26, 2021 الكاتب قام بنشر فبراير 26, 2021 في ٢٤/٢/٢٠٢١ at 19:31, jjafferr said: وعليكم السلام 🙂 مثل ما قال اخوي عمرو ، هناك عدة طرق للوصول الى طلبك ، ومن الخطأ وضع DCount واخواتها في استعلام ، والافضل استعمال الاستعلام للحصول على النتيجة المطلوبة (وليس عن طريق استعلام المجاميع ، لأنه بطيء كذلك) ، وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل : بدل A = DCount("[Salary]","Table_Name","[ID]=" & myID) استعمل A = DCount("*","Table_Name","[ID]=" & myID) جعفر قمت باستبدال اسم الحقل بالنجمة و تحسنت استجابه البرنامج بشكل ملحوظ شكرا لك على النصيحة
jjafferr قام بنشر فبراير 26, 2021 قام بنشر فبراير 26, 2021 3 ساعات مضت, aaabade said: قمت باستبدال اسم الحقل بالنجمة و تحسنت استجابه البرنامج بشكل ملحوظ يا ولد يا فنان 1
jjafferr قام بنشر فبراير 26, 2021 قام بنشر فبراير 26, 2021 في ٢٤/٢/٢٠٢١ at 20:31, jjafferr said: وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل : بدل A = DCount("[Salary]","Table_Name","[ID]=" & myID) استعمل A = DCount("*","Table_Name","[ID]=" & myID) والسبب هو : يقوم الاكسس بعمل فلترة/تصفية للسجلات حسب المعيار ، ثم يقوم بحساب السجلات الخاصة بالحقل المطلوب ، بينما في الواقع انت لا تريد حساب عدد السجلات التي في الجدول لحقل معين ، يهذا المعيار ، إنما انت تريد حساب عدد السجلات 🙂 ولجعل الدالة تعمل بطريقة اسرع ، فيجب ان يكون الحقل myID مفهرس (يجب ان تكون جميع الحقول التي تستعملها كمعيار مفهرسة ، سواء معيار في الكود او في استعلام) ، ثم ضغط واصلاح ، ثم جرب السرعة 🙂 جعفر 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.