الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اخفاء واظهار مربعات نص بناء على الاختيار من قائمة

مغلق
بدأه محمد فؤاد تركي في 5 يونيو 2006 · 10 رد · 6,137 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي نموذج بة قائمة منسدلة بها الاتي

حركة 1

حركة 2

حركة 3

اريد عند اختيار الحركة المناسبة من القائمة المنسدلة يتم اظهار تكست بوكس الخاص بالحركة

وعند اخيار حركة اخري يتم اخفاء التكست بوكس الاول واظهار التكست بوكس الثاني الخاص بالحركة الثانية وهكذا يتم اخفاء واظهار الحقول علي الفورم مع اختلاف انواع الحركات

أحبائي

من يتوصل للحل برجاء يكون متبوع بالشرح

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#2

اخي الفاضل محمد فؤاد

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

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

لهذا تم تعديل عنوان الموضوع .

تستطيع بكل سهوله عمل الاتي :

1. يوجد لديك في النموذج مربع تحرير وسرد اسمه ComboBox وبه الخيارات التالية

حركة 1

حركة 2

حركة 3

ولديك ايضا في النموذج ثلاث مربعات نص هي Text1 و Text2 و Text3

الان نستخدم اداة الشرط IF .....THEN لهذه العملية حسب الكود التالي في حدث بعد التحديث للـ ComboBox

Private Sub ComboBox_AfterUpdate()
If Me.ComboBox.Value = "حركة 1" Then
Me.Text1.Visible = True
Me.Text2.Visible = False
Me.Text3.Visible = False
End If

If Me.ComboBox.Value = "حركة 2" Then
Me.Text1.Visible = False
Me.Text2.Visible = True
Me.Text3.Visible = False
End If

If Me.ComboBox.Value = "حركة 3" Then
Me.Text1.Visible = False
Me.Text2.Visible = False
Me.Text3.Visible = True
End If
Me.Requery
End Sub

وهذا مثال للتطبيق عليه

mmfouad.rar

اختكم

زهره

تم تعديل هذه المشاركة بواسطة zahrah في 6 يونيو 2006 في 12:30

#3

الاستاذة زهرة

هل من الممكن وضع خاصية مرئي لمربعات النصوص بـ لا ليتم اخفاؤها عند ظهور النموذج ومن ثم يتم تعاقب الاظهار والاخفاء ام ان هذا غير ضروري

وشكراً

#4

الاستاذ /

يوسف أحمد

فكرة كتير حلوة لذلك أنا أؤيد فكرتك هذه لعدة أسباب ،،،،

1 - عندما يكون الربط بين القائمة المنسدلة ومربعات نصوص كثيرة علي المنوذج اعتقد عند تحميل المنوذج سيمتليء النموذج بمربعات نصوص كثيرة غير مستخدمة ويصبح النموذج مزدحما

2 - ظهور النموذج فارغ عند التحميل من اي اوبجيكت علية اعتقد انه سيعطيه شكل جمالي افضل ( طبعا ما عدا القائمة المنسدلة يجب ان تكون عند تحميل المنوذج ظاهرة )

لذلك اناشد المشرفة زهرة

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

3 - الاخت زهرة برجاء شرح الاكواد وخاصة هذه العبارة الغير مفهومة فأنا مبتديء واريد أن أفهم بعض الاكواد مثل

"Iacute;ÑßÉ 1&"

وهذا الكود أيضا

Me.Requery

ملحوظة

برجاء الاخت زهرة ارسال الملف بتنسيق 2000

شكراً

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#5

اخي / محمد فؤاد

شكرا لك

إذا كنت ترغب في عمل ذلك فبإمكانك بكل سهولة تغيير خاصية مرئي (visible) لمربعات النصوص من نافذة الخصائص بالقيمة لا .

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

مع الشكر والتقدير

اخوكم يوسف احمد

#6

اخواني الافاضل

بارك الله فيكم جميعا

مع ان الموضوع سهل وبسيط فقد حاولت ان اختصره بشكل مبسط بعيدا عن التعقيد و عن طريق الوحدات النمطية والاكواد الاكثر تعقيدا حتى يسهل على المتلقي فهم الكود بسهوله

لهذا سأشرح الية الكود وطريقة عمله

اولا : الخاصية اخفاء Visible

تأخذ نمطين الاول صحيح True والثاني خاطىء False وهذه القيم تعتمد على قيمة الحقل المطلوب اظهاره او اخفاؤه مثل مربعات النص او اي كنترول يحمل قيمة معينة ( حركة 1 - حركة 2 - حركة 3 ) فهذه قيم يتم تعريفها في دالة شرط الكود

في هذا الكود نريد اخفاء جميع مربعات النص عند حدث فتح النموذج لهذا نضع هذا الكود

Private Sub Form_Open(Cancel As Integer)
Me.Text1.Visible = False
Me.Text2.Visible = False
Me.Text3.Visible = False
End Sub

في هذا الكود نريد انه اذا تحقق شرط معين او قيمة معينه ان يتم عمل حدث ما وهو اما اظهار او اخفاء

دعونا نرى التطبيق على مربع النص الاول

في حدث بعد التحديث ( اي عند اختيار اي قيمه من مربع القائمة المنسدله ) نضع شرط لقيمة مربعات النص الثلاثة

هذا الشرط هو تحقق وجود كلمة " حركة 1 " التي يقابلها مربع النص الاول ( ليس لزاما ان يكون يحمل نفس القيمه فستطيع ان تضع به اي كلمة مختلفه ) لهذا نحن نتحدث عن مربع النص نفسه وليس قيمته .

لهذا فإن الدالة الشرطية تتأكد من وجود الشرط اذا كانت قيمة القائمة المنسدلة تساوي " حركة 1 " اذن يتم اظهار مربع النص الاول Text1.Visible = True واخفاء المريعين الاخرين ونطبق هذا الشرط على بقية مربعات النص الثاني والثالث .

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

[Forms]![YourNameForm]![YourNameText]

النماذج ثم علامة تعجب ثم اسم نموذجك ثم علامة تعجب ثم اسم مربع النص

لذا فقد تم اختصارها الى كلمة ME.Text

واخبراننهي الجملة الشرطية بـ End If

عبارة Me.Requery هي خاصية تنشيط وتحديث بيانات وتستخدم للحقول ( اي كائنات النموذج ) اما النماذج فنستخدم لها Me.Refresh

Private Sub ComboBox_AfterUpdate()
If Me.ComboBox.Value = "حركة 1" Then
Me.Text1.Visible = True
Me.Text2.Visible = False
Me.Text3.Visible = False
End If

If Me.ComboBox.Value = "حركة 2" Then
Me.Text1.Visible = False
Me.Text2.Visible = True
Me.Text3.Visible = False
End If

If Me.ComboBox.Value = "حركة 3" Then
Me.Text1.Visible = False
Me.Text2.Visible = False
Me.Text3.Visible = True
End If
Me.Requery
End Sub

هنا وضعنا جملة تحديث وانعاش بيانات النموذج في حدث الحالي يمعنى ان اي تغيير يطرأ على بيانات النوذج يتم انعاشه مباشرة بدون تأخير

Private Sub Form_Current()
Me.Refresh
End Sub

هذا الكود اضافي لاخفاء جميع الحقول في النموذج فيما لو رغبنا بعد اي عملية اختيار ان نخفي مربع النص الظاهر

Private Sub ALL_Click()
Me.Text1.Visible = False
Me.Text2.Visible = False
Me.Text3.Visible = False
End Sub

تنبيه : اثناء نقل الكود من محرر الفيجول بيسك للمنتدى اصبحت كلمة " حركة 1 " بهذا الشكل "Iacute;ÑßÉ 1&" لهذا تم تعديلها في الكود اما في الملف المرفق السابق والحالي فستجدها في المود بإسماءها

نشكرك اخي محمد فؤاد على التنبيه

هذا الملف خاص للاكسيس 2003

mmfouad_UP2003.rar

هذا الملف خاص للاكسيس 2000

mmfouad_UP2000.rar

تم تعديل هذه المشاركة بواسطة zahrah في 6 يونيو 2006 في 13:33

#7

استاذة / زهرة

لك كل الشكر والتقدير على توضيحك للكود بالكامل وتوضيحك للمشكلة عند نقل الكود إلى محرر الفيجوال بيسك . بارك الله فيك فأنت عادتك الكرم فإجاباتك ماشاء الله دروس وافية.

لي استفسار بسيط وهو هل هناك فرق في الطريقة لإخفاء مربعات النصوص بين وضع كود في حدث عند الفتح للنموذج وبين تغيير الخاصية للمربعات من نافذة الخصائص

فقد لاحظت بأنك قمت بوضعه في الحدث ارجو منك التكرم بالتوضيح للإستفادة واتباع الطرق الافضل.

لك كل الشكر والتقدير مرة اخرى

#8

الاخت زهرة

لم أجد شخص يعطي كل ما عنده بلا حدود ولا يبخل علي أحد بمعلومة مثلك

فأنت فعلاً زهرة المنتدي

شكراً الاخت زهرة علي هذه المعلومات الثرية

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#9

اخي يوسف احمد

ابدا لا يوجد هناك فرق سواء استخدمت خصائص عناصر التحكم او عن طريق الكود

لهذا فضلت ان يكون عن طريق الكود حتى ترى كيف يكون الحدث بدلا من اخفاء الحدث عن اعين القارىء الكريم

فكان بالامكان وضع النموذج في وضع التصميم واختيار مربعات النص الثلاثه ووضع الخاصية مرئي على لا

وإزالة الكود من محرر الفيجول بيسك

ولكن قد تأتي استفسارات كيف تم اخفاء مربعات النص عند فتح النموذج بدون كود ومن ثم نبدأ في شرح اساسيات الاكسيس من جديد

لذا فإن طريقة الكود اسهل واخف

كما ان طريقة وضع اخفاء واظهار مربعات النص لها فوائد

فلنفترض ان شخصا ما فتح النموذج على وضع التصميم واختار احد مربعات النص وقام بتغيير خاصيتها التي انت وضعتها اساسا على مرئي لا ثم قام بتعديلها الى نعم .

فالفائده هنا اننا نحن نتحكم في الكود ونشكله كيفما نريد بدون المساس بتصميم النموذج او العبث بالكائنات .

#10

استاذتي الكريمة / زهرة

تعاملك جميل جدا وتفكيرك عميق في اجاباتاك فأنت تضعين في الحسبان أشياء هي فعلاً مهمة للسائل وفقك الله فأنت مثال للمسئول الأمين على ايصال المعلومة بأفضل صورها... كلمة شكرقليلة في حقك.

بارك الله فيك زهرة منتدانا

#11

اريد تعلم كيفية عمل قائمة منسدلة بدلا من قواائم ملف وتحرير

[وسط]شركة النور للكمبيوتر والانترنت

taher_goracy

0120636935

taher_goracy@yahoo.com

taher_0120636935@gmail.com

http://alnour2010.blogspot.com

[/وسط]

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…