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

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

قام بنشر

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

استأذنكم الاخوة الكرام اعمل على برنامج يحتوي على اكثر من صفحة نموذج

واستخدم الكود التالي لكي يتم عند فتح اي صفحة نموذج تقوم باغلاق كل صفحات النماذج المفتوحة مسبقا 

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

ولكم خالص الشكر

 

()Private Sub Form_Current
Dim FormCount As Integer
 
Dim I As Integer
FormCount = Forms.Count
For I = FormCount - 1 To 0 Step -1
If Forms(I).Name <> FormName Then
DoCmd.Close acForm, Forms(I).Name
End If
Next I
End Sub
  • أفضل إجابة
قام بنشر

إليك الكود المعدل الذي سيسمح لك بإغلاق صفحات النموذج المحددة بدلاً من إغلاق جميع صفحات النماذج المفتوحة:
 

Private Sub Form_Current()
    Dim FormCount As Integer
    Dim I As Integer
    Dim FormNamesToClose As Variant
    
    ' أضف أسماء صفحات النموذج التي تريد إغلاقها في هذه المصفوفة
    FormNamesToClose = Array("Form1", "Form2", "Form3")
    
    FormCount = Forms.Count
    For I = FormCount - 1 To 0 Step -1
        If IsInArray(Forms(I).Name, FormNamesToClose) Then
            DoCmd.Close acForm, Forms(I).Name
        End If
    Next I
End Sub

Private Function IsInArray(ByVal stringToSearch As String, ByVal arr As Variant) As Boolean
    Dim i As Integer
    For i = LBound(arr) To UBound(arr)
        If arr(i) = stringToSearch Then
            IsInArray = True
            Exit Function
        End If
    Next i
    IsInArray = False
End Function

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

1- مصفوفة FormNamesToClose تحتوي على أسماء صفحات النماذج التي تريد إغلاقها عند فتح النموذج الحالي. يمكنك إضافة أو إزالة أسماء النماذج من هذه المصفوفة حسب الحاجة.
2- دالة Form_Current() تقوم بالتمرير على جميع صفحات النماذج المفتوحة باستخدام خاصية Forms.Count.
3- لكل صفحة نموذج، يتحقق ما إذا كان اسم النموذج موجودًا في مصفوفة FormNamesToClose باستخدام دالة المساعدة IsInArray().
4- إذا كان اسم النموذج موجودًا في مصفوفة FormNamesToClose، يتم استخدام بيان DoCmd.Close لإغلاق تلك صفحة النموذج.

دالة IsInArray() هي دالة مساعدة تتحقق مما إذا كان السلسلة المعطاة موجودة في المصفوفة المقدمة. إنها تُرجع True إذا تم العثور على السلسلة، وFalse خلاف ذلك.

بهذا الكود المعدل، يمكنك الآن تحديد صفحات النماذج التي تريد إغلاقها عند فتح النموذج الحالي، بدلاً من إغلاق جميع صفحات النماذج المفتوحة.

 

ما يحتاج أخبرك من وين جبت الجواب :biggrin:

  • Like 1
قام بنشر

الاخ العزيز Moosak خالص شكري على مجهودك

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

هل من الممكن اضافة اي تعديل على الكود؟؟؟

قام بنشر
2 ساعات مضت, pingo22 said:

بعد محاولات عديدة الكود لا يعمل معي باشكل الصحيح

أرفق ملفك أخي @pingo22 🙂 

قام بنشر

الاخ العزيز والفاضل Moosak 

بعد محاولات اخرى تم بحمد الله حل المشكلة كل الشكر والتقدير والتحية لك على مجهودك وتعبك

جعله الله في ميزان حسناتك... خالص شكري

  • Like 1
قام بنشر
15 ساعات مضت, pingo22 said:

جعله الله في ميزان حسناتك... خالص شكري

اللهم آمين .. وإياكم أخي العزيز 🙂🌹

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