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

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
رابط هذا التعليق
شارك

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.

×
×
  • اضف...

Important Information