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

VBA التأكد من جميع الحقول في النموذج


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

السلام عليكم

أحاول كتابة كود في النموذج الخاص بي ولكنني لم انجح 

اتمنى منكم المساعدة

Tagفي ال   DocHidTg ما اريد كتابته هو أن ينظر الكود الى جميع الحقول في النموذج والتي تحمل اسم

  ويتاكد اذا قيمتها صفر فيقوم بإخفائها

 علماً أن جميع الحقول من نوع رقم

 

Private Sub DocHid()
Dim ctrl As Control
For Each ctrl In Me.Controls
    If ctrl.Tag = "DocHidTg" And ctrl.Value = "0" Then
            ctrl.Visible = False
    End If
Next
End Sub

 

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

وعليكم السلام:smile:

 

ظاهرا الكود تمام ، ولكنه لن يعمل إلا في نموذج فردي.

 

54 دقائق مضت, أبو ليمونه said:

علما أن الحقول التي تحمل اسم DocHidTg في Tag جميعها حقول من نوع "رقم"

في هذه الحالة

استبدل السطر
ctrl.Value = "0"

بهذا السطر
ctrl.Value = 0

 

جعفر

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

اخي جعفر

شكرا لتعقيبك

الكود هو لنموذج فردي ولكن لازال الكود لا يعمل

يضع لي هاي لايت اصفر على هذا السطر

If ctrl.Tag = "DocHidTg" And ctrl.Value = 0 Then

 

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

ممتاز اخي جعفر الكود يعمل بجداره

الله يعطيك العافية

راح اكون طماع واتعلم منك اكثر 

لو اردنا تطبيق الكود على نموذج فردي وفرعي

   ويقوم بتعطيلها  Admin2Tg  بحيث يبحث عن جميع التاقات في الفرعي والأساسي التي تحمل اسم 

مثال:

انا كتبت الكود الحالي وهو يعمل لكن احاول ان اقوم بتطويره بحيث ينظر الى جميع النماذج الفرعية التي تحمل نفس اسم التاق

Private Sub AdminContral()
Dim ctrl As Control
If (Forms!frm.fsubUser!Admin2.Value) = 1 Then
    Forms!frm.fsub1!KNo.Enabled = True
    Forms!frm.fsub5!KNo.Enabled = True
    Forms!frm.fsub5!KELNm.Enabled = True
    Forms!frm.fsub5!KTyE.Enabled = True
    Forms!frm.fsub5!KEANo.Enabled = True
    Forms!frm.fsub5!KEADt.Enabled = True
    For Each ctrl In Me.Controls
    If ctrl.Tag = "Admin2Tg" Then
        ctrl.Enabled = True
    End If
Next
End Sub

 

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

 

 

وطريقة اخرى للكود اعلاه

 

Private Sub DocHid()
Dim ctrl As Control
For Each ctrl In Me.Controls
    If ctrl.Tag = "DocHidTg" And ctrl.Value = val("0") Then
            ctrl.Visible = False
    End If
Next
End Sub

.

 

 

اما بالنسبة الى سؤالك الثاني:

هذا الكود يقرا كائنات النموذج الذي يفتح منه فقط ،

يعني اذا فتحت الكود في النموذج الرئيسي (بغض النظر عن اي حدث) ، فسيقرأ كائناته فقط ،

واذا فتحت الكود في النموذج الفرعي (بغض النظر عن اي حدث) ، فسيقرأ كائناته فقط ،

    If ctrl.Tag = "Admin2Tg" Then
        ctrl.Enabled = True
    End If

.

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

وطبعا اذا ارفقت هذه الجزئية من برنامجك ، يكون افضل:smile:

 

جعفر

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

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

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



سجل دخولك الان
×
×
  • اضف...

Important Information