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

تشغيل الدوال بالتدريج عند فتح فورم


AliAli47

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

السلام عليكم

لدي برنامج به لوحة تحكم بها اكثر من 900 دالة 

عندما افتح فورم لوحة التحكم النتائج تتأخر في الظهور لكثرة الدوالة 

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

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

Sans_titre.png

تم تعديل بواسطه AliAli47
رابط هذا التعليق
شارك

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

3 ساعات مضت, AliAli47 said:

اريد نقلها كلها الى vba

هذا هو الحل الافضل نظرا لكثرة العمليات

ارفق مثال بارك الله فيك

تحياتي

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

في ١٩‏/٩‏/٢٠٢١ at 00:57, محمد أبوعبدالله said:

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

هذا هو الحل الافضل نظرا لكثرة العمليات

ارفق مثال بارك الله فيك

تحياتي

 

Nouveau Microsoft Access Database.accdb

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

56 دقائق مضت, kanory said:

لاحظ الفرق بين ظهور الصف الاول من التقرير والصف الثاني من حيث السرعة !!!!!

 

Nouveau Microsoft Access Database.accdb 736 kB · 35 downloads

هناك مشكل في الكود لا يعمل 

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

منذ ساعه, Eng.Qassim said:

ضع اخر المعادلة

,0)

 

نعم تم حل المشكلة بارك الله فيك استاذ @kanory والاستاذ @Eng.Qassim 

تبقى لدي سؤال واحد فقط 

عند رفع كل الدوال الى vba عبر حدث current هل سيتشنج الجهاز في حالة ماكان هناك كثير من الدوال 

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

حسب علمي .. لا اعتقد ذلك لان تنفيذ ال vba  يكون من خلال ذاكرة الحاسوب عكس الاستعلام او جمل SQL التي تنفذ مباشرة من خلال اكسس .. ولهذا في مثالك يتم اللجوء الى vba  حتى لاتثقل على اكسس

واعتقد ان ذلك يحتاج الى اختبار بوضع بضعة الاف من السجلات

والله اعلم

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

هذه محاولة ومع التجربة وجدت انها اسرع

احذف اولاً الكود الموجود وضع الكود التالي في vba

Private Sub Form_Load()
'1
    Me.mois1 = Format(Date, "mm/yyyy")
    Me.mois2 = Format(DateAdd("m", 1, Date), "mm/yyyy")
    Me.mois3 = Format(DateAdd("m", 2, Date), "mm/yyyy")
    Me.mois4 = Format(DateAdd("m", 3, Date), "mm/yyyy")
    Me.mois5 = Format(DateAdd("m", 4, Date), "mm/yyyy")
    Me.mois6 = Format(DateAdd("m", 5, Date), "mm/yyyy")
    Me.mois7 = Format(DateAdd("m", 6, Date), "mm/yyyy")
    Me.mois8 = Format(DateAdd("m", 7, Date), "mm/yyyy")
    Me.mois9 = Format(DateAdd("m", 8, Date), "mm/yyyy")
    Me.mois10 = Format(DateAdd("m", 9, Date), "mm/yyyy")
    Me.mois11 = Format(DateAdd("m", 10, Date), "mm/yyyy")
    Me.mois12 = Format(DateAdd("m", 11, Date), "mm/yyyy")
    Me.mois13 = Format(DateAdd("m", 12, Date), "mm/yyyy")
    
'das2_1
    das2_1 = _
    Nz(DSum("ca_moiss1", "phase_chantier", "moiss1>=[mois1] and moiss1<[mois2] "), 0) + _
    Nz(DSum("ca_moiss2", "phase_chantier", "moiss2>=[mois1] and moiss2<[mois2] "), 0) + _
    Nz(DSum("ca_moiss3", "phase_chantier", "moiss3>=[mois1] and moiss3<[mois2] "), 0) + _
    Nz(DSum("ca_moiss4", "phase_chantier", "moiss4>=[mois1] and moiss4<[mois2] "), 0) + _
    Nz(DSum("ca_moiss5", "phase_chantier", "moiss5>=[mois1] and moiss5<[mois2] "), 0) + _
    Nz(DSum("ca_moiss6", "phase_chantier", "moiss6>=[mois1] and moiss6<[mois2] "), 0) + _
    Nz(DSum("ca_moiss7", "phase_chantier", "moiss7>=[mois1] and moiss7<[mois2] "), 0) + _
    Nz(DSum("ca_moiss8", "phase_chantier", "moiss8>=[mois1] and moiss8<[mois2] "), 0) + _
    Nz(DSum("ca_moiss9", "phase_chantier", "moiss9>=[mois1] and moiss9<[mois2] "), 0) + _
    Nz(DSum("ca_moiss10", "phase_chantier", "moiss10>=[mois1] and moiss10<[mois2] "), 0) + _
    Nz(DSum("ca_moiss11", "phase_chantier", "moiss11>=[mois1] and moiss11<[mois2] "), 0) + _
    Nz(DSum("ca_moiss12", "phase_chantier", "moiss12>=[mois1] and moiss12<[mois2] "))
   
'das2_2
    das2_2 = _
    Nz(DSum("ca_moiss1", "phase_chantier", "moiss1>=[mois2] and moiss2<[mois3] "), 0) + _
    Nz(DSum("ca_moiss2", "phase_chantier", "moiss2>=[mois2] and moiss2<[mois3] "), 0) + _
    Nz(DSum("ca_moiss3", "phase_chantier", "moiss3>=[mois2] and moiss3<[mois3] "), 0) + _
    Nz(DSum("ca_moiss4", "phase_chantier", "moiss4>=[mois2] and moiss4<[mois3] "), 0) + _
    Nz(DSum("ca_moiss5", "phase_chantier", "moiss5>=[mois2] and moiss5<[mois3] "), 0) + _
    Nz(DSum("ca_moiss6", "phase_chantier", "moiss6>=[mois2] and moiss6<[mois3] "), 0) + _
    Nz(DSum("ca_moiss7", "phase_chantier", "moiss7>=[mois2] and moiss7<[mois3] "), 0) + _
    Nz(DSum("ca_moiss8", "phase_chantier", "moiss8>=[mois2] and moiss8<[mois3] "), 0) + _
    Nz(DSum("ca_moiss9", "phase_chantier", "moiss9>=[mois2] and moiss9<[mois3] "), 0) + _
    Nz(DSum("ca_moiss10", "phase_chantier", "moiss10>=[mois2] and moiss10<[mois3] "), 0) + _
    Nz(DSum("ca_moiss11", "phase_chantier", "moiss11>=[mois2] and moiss11<[mois3] "), 0) + _
    Nz(DSum("ca_moiss12", "phase_chantier", "moiss12>=[mois3] and moiss12<[mois3] "))
    

End Sub

ثم اكمل باقي الحقول بنفس الطريقة

تحياتي

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

في ٢١‏/٩‏/٢٠٢١ at 02:27, محمد أبوعبدالله said:

هذه محاولة ومع التجربة وجدت انها اسرع

احذف اولاً الكود الموجود وضع الكود التالي في vba

Private Sub Form_Load()
'1
    Me.mois1 = Format(Date, "mm/yyyy")
    Me.mois2 = Format(DateAdd("m", 1, Date), "mm/yyyy")
    Me.mois3 = Format(DateAdd("m", 2, Date), "mm/yyyy")
    Me.mois4 = Format(DateAdd("m", 3, Date), "mm/yyyy")
    Me.mois5 = Format(DateAdd("m", 4, Date), "mm/yyyy")
    Me.mois6 = Format(DateAdd("m", 5, Date), "mm/yyyy")
    Me.mois7 = Format(DateAdd("m", 6, Date), "mm/yyyy")
    Me.mois8 = Format(DateAdd("m", 7, Date), "mm/yyyy")
    Me.mois9 = Format(DateAdd("m", 8, Date), "mm/yyyy")
    Me.mois10 = Format(DateAdd("m", 9, Date), "mm/yyyy")
    Me.mois11 = Format(DateAdd("m", 10, Date), "mm/yyyy")
    Me.mois12 = Format(DateAdd("m", 11, Date), "mm/yyyy")
    Me.mois13 = Format(DateAdd("m", 12, Date), "mm/yyyy")
    
'das2_1
    das2_1 = _
    Nz(DSum("ca_moiss1", "phase_chantier", "moiss1>=[mois1] and moiss1<[mois2] "), 0) + _
    Nz(DSum("ca_moiss2", "phase_chantier", "moiss2>=[mois1] and moiss2<[mois2] "), 0) + _
    Nz(DSum("ca_moiss3", "phase_chantier", "moiss3>=[mois1] and moiss3<[mois2] "), 0) + _
    Nz(DSum("ca_moiss4", "phase_chantier", "moiss4>=[mois1] and moiss4<[mois2] "), 0) + _
    Nz(DSum("ca_moiss5", "phase_chantier", "moiss5>=[mois1] and moiss5<[mois2] "), 0) + _
    Nz(DSum("ca_moiss6", "phase_chantier", "moiss6>=[mois1] and moiss6<[mois2] "), 0) + _
    Nz(DSum("ca_moiss7", "phase_chantier", "moiss7>=[mois1] and moiss7<[mois2] "), 0) + _
    Nz(DSum("ca_moiss8", "phase_chantier", "moiss8>=[mois1] and moiss8<[mois2] "), 0) + _
    Nz(DSum("ca_moiss9", "phase_chantier", "moiss9>=[mois1] and moiss9<[mois2] "), 0) + _
    Nz(DSum("ca_moiss10", "phase_chantier", "moiss10>=[mois1] and moiss10<[mois2] "), 0) + _
    Nz(DSum("ca_moiss11", "phase_chantier", "moiss11>=[mois1] and moiss11<[mois2] "), 0) + _
    Nz(DSum("ca_moiss12", "phase_chantier", "moiss12>=[mois1] and moiss12<[mois2] "))
   
'das2_2
    das2_2 = _
    Nz(DSum("ca_moiss1", "phase_chantier", "moiss1>=[mois2] and moiss2<[mois3] "), 0) + _
    Nz(DSum("ca_moiss2", "phase_chantier", "moiss2>=[mois2] and moiss2<[mois3] "), 0) + _
    Nz(DSum("ca_moiss3", "phase_chantier", "moiss3>=[mois2] and moiss3<[mois3] "), 0) + _
    Nz(DSum("ca_moiss4", "phase_chantier", "moiss4>=[mois2] and moiss4<[mois3] "), 0) + _
    Nz(DSum("ca_moiss5", "phase_chantier", "moiss5>=[mois2] and moiss5<[mois3] "), 0) + _
    Nz(DSum("ca_moiss6", "phase_chantier", "moiss6>=[mois2] and moiss6<[mois3] "), 0) + _
    Nz(DSum("ca_moiss7", "phase_chantier", "moiss7>=[mois2] and moiss7<[mois3] "), 0) + _
    Nz(DSum("ca_moiss8", "phase_chantier", "moiss8>=[mois2] and moiss8<[mois3] "), 0) + _
    Nz(DSum("ca_moiss9", "phase_chantier", "moiss9>=[mois2] and moiss9<[mois3] "), 0) + _
    Nz(DSum("ca_moiss10", "phase_chantier", "moiss10>=[mois2] and moiss10<[mois3] "), 0) + _
    Nz(DSum("ca_moiss11", "phase_chantier", "moiss11>=[mois2] and moiss11<[mois3] "), 0) + _
    Nz(DSum("ca_moiss12", "phase_chantier", "moiss12>=[mois3] and moiss12<[mois3] "))
    

End Sub

ثم اكمل باقي الحقول بنفس الطريقة

تحياتي

لاحظت انه عند استعمال حدث form_load لتشغيل الدوال 

عند ادخال البيانات لا استطيع تحديث البيانات عن طريق requery او refresh

ولا استطيع استعمال timer لكثرة البيانات هل يوجد طريقة غير ذلك ؟

 

تم تعديل بواسطه AliAli47
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information