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

كيف يكمن السماح بالتحرير في النموذج برمجياً ؟

مغلق
بدأه الغريب في 9 أكتوبر 2001 · 8 رد · 664 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

المسألة على النحو التالي :-

لدي نموج يحتوي على عدة حقول وتذييل النموذج يحتوي على مربع سرد وتحرير استخدمه في استعراض قيمة سجل معين حسب قيمة أحد الحقول بالنموذج . المشكلة التي اعاني منها هي حصول تعديلات على البيانات بطريق الخطأ ، ولكن أحياناً احتاج إلى التعديل على البيانات . فإذا منعت السماح بالتحرير في النموذج في الخصائص لن يمكنني التحرير في الحقول وكذلك في مربع التحرير .

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

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

وشكراً لكم .

#2

الأخ الغريب :

ما رأيك بعمل نموذج مشابه تماما للنموذج الذي تريده الأول غير مسمود به بالتعديل والثاني مثله تماماً ولكن الثاني قابل للتعديل ولكن بشرط أن يرتبط بكلمة سر أي قبل فتح النموذج للتعديل يفتح نموذج به كلمة سر أولا ومن لديه حق التعديل معه كلمة السر .

فما رأيك ؟

أشرف خليل

#3

الأخ الغريب

للمنع أو السماح بالتحرير في النموذج ككل استخدم :

Me.AllowEdits=True(السماح)

Me.AllowEdits=False(المنع)

والذي فهمته من سؤالك أنك ترغب في منع تحرير الحقول ما عدا القائمة المنسدلة الموجودة في تذييل النموذج :

1- أنشئ مجموعة خيار باسم التحرير فيها ثلاثة أزرار بالأسماء التالية ( انتبه الأسماء غير العناوين) :

(الأول) منع_الكل

(الثاني) منع_تحرير_الكل_ماعدا_القائمة

(الثالث) السماح_بتحرير_الكل

يجب أن تنشئها بهذا الترتيب حتى تحصل الأولى على قيمة واحد والثاني على اثنين والثالث على ثلاثة .

في حدث عند التحميل للنموذج ضع السطر التالي :

Call التحرير_AfterUpdate

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

Select Case Me![التحرير]

Case 1 ' منع التحرير على النموذج

تحرير_عناصر_النموذج "منع"

Case 2 ' منع الكل ما عدا القائمة المنسدلة

تحرير_عناصر_النموذج "منع"

قائمة_التذييل.Locked = False

Case 3 ' السماح للكل

تحرير_عناصر_النموذج "سماح"

End Select

Me![التحرير].Locked = False

منع_الكل.Locked = False

منع_تحرير_الكل_ماعدا_القائمة.Locked = False

السماح_بتحرير_الكل.Locked = False

وفي الوحدة النمطية للنموذج ضع الإجراء التالية :

Private Sub تحرير_عناصر_النموذج(الاختيار As String)

Dim ctl As Control

For Each ctl In Me.Controls

If ctl.ControlType = acTextBox _

Or ctl.ControlType = acCheckBox _

Or ctl.ControlType = acComboBox _

Or ctl.ControlType = acListBox _

Or ctl.ControlType = acOptionButton _

Or ctl.ControlType = acOptionGroup _

Or ctl.ControlType = acSubform _

Or ctl.ControlType = acTabCtl _

Or ctl.ControlType = acToggleButton Then

With ctl

If الاختيار = "منع" Then

.Locked = True

Else

.Locked = False

End If

End With

End If

Next ctl

End Sub

ولك تحياتي

#4

الأخ أشرف

فكرتك تحل جزء من المشكلة ولكن مشكلة عدم إمكانية التحرير في مربع التحرير والسرد في النموذج الأول لاتزال قائمة .

الاخ أبو حمود

سأجرب الكود الذي تكرمت به ، وأوافيك بالنتيجة .

وشكراً لكما .

#5

الأخ الغريب

إذا كنت تريد منع إمكانية التحرير بمربع السرد إجعل خاصيتها إلتزام بالقائمة .على حسب ما فهمت من كلامك .

أشرف خليل

#6

الأخ أشرف

شكراً لتجاوبك وما كنت أريده ليس منع الإضافة لمربع التحرير والسرد وإنما استخدامه مع منع التحرير ( التعديل ) في بقية الحقول بالنموذج .

الأخ أبو حمود ما شاء الله عليك

لقد جربت الكود الذي وضعت وهو فعلاً الحل للمشكلة التي أعاني منها فجازك الله خيراً ، وفكرة الحل ممتازة .

#7

الأخ أبو حمود : جزاك الله خير على هذه الكود ، ولدي سؤال :

هل من خطأ فيما لو استخدمت الطريقة التالية :

في خصائص مربع التحرير والسرد الخاص بالانتقال في حدث عند التركيز :

Me.AllowEdits = True

وفي خصائصه في حدث عند الخروج :

Me.AllowEdits = False

في خصائص النموذج في حدث في الحالي وعند التحميل :

Me.AllowEdits = False

جعلت زر أمر في النموذج للتعديل في السجل المعروض من النموذج وفي حدث عند النقر :

Me.AllowEdits = True

(علما بأني لا أرغب في منع التغييرات في مربع التحرير والسرد بأي حال) .

الأخ الغريب : لدي استفسار ، وهو أني كنت أستخدم في نفس مشكلتك الطريقة التالية : في خصائص النموذج أسمح بالتحرير ، وفي خصائص الحقول كلها (مربعات النصوص) أجعلها مؤمنة عدا مربع التحرير والسرد الخاص بالتنقل بين السجلات، ومن ثم لا يمكن تعديل البيانات في النموذج ويمكن في نفس الوقت استخدام مربع التحرير والسرد ، أما التعديل فيكون عن طريق نموذج آخر يفتح بواسطة زر على نفس السجل المحدد في النموذج الخاص بالعرض ، فما هي سلبيات هذه الطريقة التي جعلتك لا تستخدمها ؟

#8

ماطرحته أخ حارث وأن لم أجربه لكن قد يكون فكره لحل آخر لنفس المشلكة ، أما سبب عدم تفضيلي لاستخدام نموذج آخر للتعديل فبسبب أني أفضل العمل على نموذج واحد فقط في الإضافة والتعديل والبحث . لكل شيخ طريقته .

#9

الأخ حارث

لقد جربت الطريقة التي ذكرتها وهي بالفعل أسهل وأفضل مما ذكرته .

وفقك الله وبارك فيك وزادك علما .

ولك تحياتي

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

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

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

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

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

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