aaabade قام بنشر فبراير 24, 2021 مشاركة قام بنشر فبراير 24, 2021 لدي برنامج به حقل يقوم بالبحث عن الرقم الوظيفي المتكرر في استعلام ثم يظهر رساله اذا كان هناك تكرار. كان البرنامج يعمل بكفاءة ممتازة وبعد ادخال اكثر من 300 سجل لاحظت ان البرنامج بدء في البطئ والواجهه تتجمد عن العمل. فهل لهذه الداله علاقة يهذا الموضوع؟؟ واذا كانت هذه الداله سبب المشاكل فلماذا نستخدمها؟؟ رابط هذا التعليق شارك More sharing options...
Amr Ashraf قام بنشر فبراير 24, 2021 مشاركة قام بنشر فبراير 24, 2021 46 دقائق مضت, aaabade said: لدي برنامج به حقل يقوم بالبحث عن الرقم الوظيفي المتكرر في استعلام ثم يظهر رساله اذا كان هناك تكرار. كان البرنامج يعمل بكفاءة ممتازة وبعد ادخال اكثر من 300 سجل لاحظت ان البرنامج بدء في البطئ والواجهه تتجمد عن العمل. فهل لهذه الداله علاقة يهذا الموضوع؟؟ واذا كانت هذه الداله سبب المشاكل فلماذا نستخدمها؟؟ المشكلة فى طريقة استخدامها وليس فى الدالة نفسها .. مثال اذا استخدمتها فى استعلام Query قد تسبب بطء شديد فيه على حسب عدد السجلات .. مثال اخر اذا استخدمتها فى نموذج Datasheet نفس المشكلة .. طيب الحل ايه ؟ فيه حلول كتير الحل الابسط على مثالك السابق تقوم بوضع الدالة فى حدث قبل التحديث Before Update للحقل المراد اختبار تكرار القيمة فيه ووضع رسالة تحدير فى حالة التكرار .. بالطريقة السابقة هتكون الدالة قامت بدورها دون كتابة نتيجتها فى اى مكان غير الذاكرة فقط .. والله اعلم .. بالتوفيق 1 رابط هذا التعليق شارك More sharing options...
aaabade قام بنشر فبراير 24, 2021 الكاتب مشاركة قام بنشر فبراير 24, 2021 شكرا لك استاذ Amr Ashraf رابط هذا التعليق شارك More sharing options...
أفضل إجابة jjafferr قام بنشر فبراير 24, 2021 أفضل إجابة مشاركة قام بنشر فبراير 24, 2021 وعليكم السلام 🙂 مثل ما قال اخوي عمرو ، هناك عدة طرق للوصول الى طلبك ، ومن الخطأ وضع DCount واخواتها في استعلام ، والافضل استعمال الاستعلام للحصول على النتيجة المطلوبة (وليس عن طريق استعلام المجاميع ، لأنه بطيء كذلك) ، وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل : بدل A = DCount("[Salary]","Table_Name","[ID]=" & myID) استعمل A = DCount("*","Table_Name","[ID]=" & myID) جعفر 2 1 رابط هذا التعليق شارك More sharing options...
aaabade قام بنشر فبراير 24, 2021 الكاتب مشاركة قام بنشر فبراير 24, 2021 منذ ساعه, jjafferr said: وعليكم السلام 🙂 مثل ما قال اخوي عمرو ، هناك عدة طرق للوصول الى طلبك ، ومن الخطأ وضع DCount واخواتها في استعلام ، والافضل استعمال الاستعلام للحصول على النتيجة المطلوبة (وليس عن طريق استعلام المجاميع ، لأنه بطيء كذلك) ، وحتى الدالة Dcount يمكن جعلها تعمل اسرع ، هكذا ، نستعمل * بدل اسم الحقل : بدل A = DCount("[Salary]","Table_Name","[ID]=" & myID) استعمل A = DCount("*","Table_Name","[ID]=" & myID) جعفر اشكرك استاذ جعفر رابط هذا التعليق شارك More sharing options...
biskra قام بنشر فبراير 24, 2021 مشاركة قام بنشر فبراير 24, 2021 52 دقائق مضت, aaabade said: اشكرك استاذ جعفر أظن أنه من الأحسن أن تجرب ما تم اقتراحه من حلول و موافاتنا بخلاصة التجربة حتى يكون للموضوع فائدة و يفيد الجميع. 1 رابط هذا التعليق شارك More sharing options...
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) جعفر قمت باستبدال اسم الحقل بالنجمة و تحسنت استجابه البرنامج بشكل ملحوظ شكرا لك على النصيحة رابط هذا التعليق شارك More sharing options...
jjafferr قام بنشر فبراير 26, 2021 مشاركة قام بنشر فبراير 26, 2021 3 ساعات مضت, aaabade said: قمت باستبدال اسم الحقل بالنجمة و تحسنت استجابه البرنامج بشكل ملحوظ يا ولد يا فنان 1 رابط هذا التعليق شارك More sharing options...
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 رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان