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

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

قام بنشر (معدل)

السلام عليكم

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

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

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

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

Sans_titre.png

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

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

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

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

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

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

تحياتي

قام بنشر
منذ ساعه, 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

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