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

وضعت كودين في حدثيين عند عمل أحدها يلغي عمل الثاني

مغلق
بدأه خالد1423 في 11 ديسمبر 2002 · 3 رد · 509 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

وضعت الكودين لمربع تحرير وسرد

الكود الأول في حدث ( بعد التحديث )

والكود الثاني في حدث ( عند عدم الوجود في القائمة )

الأكواد موضوع في مربع تحرير وسرد

Private Sub مدن_NotInList(NewData As String, Response As Integer)

' هذا الكود مأخوذ من موقع أبو حمود وهو  ديستدعي دالة

' Function من وحدة نمطية خاصة بالنموذج

' وهو يعمل مع مربعات السرد والتحرير

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

' حيث يمكنك تحديد بداية رقم المسلسل في الدالة

' فيأخذ كل بند قيمة بدأ من القيمة التي حددتها

' يمكنك إدخال رقم المسلسل لإضافة البند بدلاً من اختياره من القائمة

Response = acDataErrContinue

مدن = ConvertToStr(مدن, NewData) ' هنا يتم استدعاء الدالة



End Sub

Private Function ConvertToStr(MyList As ComboBox, ByVal NewDate2) As String

' هذه الدالة تقوم بإنشاء تسلسل لبنود مربع تحرير وسرد

' وهي توضع في الوحدة النمطية الخاصة بالنموذج

If IsNumeric(NewDate2) Then

    If CInt(NewDate2) <= MyList.ListCount Then

    ConvertToStr = MyList.ItemData(CInt(NewDate2) - 1) 'الرقم (1) يعني بداية الترقيم لبنود القائمة

    SendKeys "{ENTER}", False

    Else

    MsgBox "هذا الرقم غير موجود في القائمة ." & vbCrLf _

    & "اختر أحد البنود من القائمة .", vbMsgBoxRight + vbMsgBoxRtlReading + vbCritical

    End If

Else

MsgBox "إما أنك كتبت اسم غير موجود أو وضعت رقم غير صحيح .", vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading

End If



End Function

المشكلة الحاصلة عند استخدام تنفيذ الكود في حدث (عند عدم الوجود في القائمة ) لا يتم تنفيذ الكود في حدث ( بعد التحديث ) فكيف اجعل الحدثين يعملان

أم أن هنالك طريقة أخرى أفضل من المتبع " أرجو الإفادة

وأيضا

هذا الكود يوضع في وحدة خاصة

فكيف أضعها في وحدة عامة

' وما صيغة استدعائها في مربع التحرير والسرد

يمنكنك الاطلاع على المثال المرفق

ولكم تحياتي الخالصة

أخوكم (خالد)

p01.zip

#2

الأخ خالد

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

حل المشكلة بسيط جداً فهو يتطلب منك استدعاء الإجراء الذي تريد تنفيذه بعد التحديث بعد استدعاء دالة التحديث وببساطة اجعل الكود في حدث عند عدم الوجود في القائمة بالشكل التالي :

' هذا الكود مأخوذ من موقع أبو حمود وهو  ديستدعي دالة

' Function من وحدة نمطية خاصة بالنموذج

' وهو يعمل مع مربعات السرد والتحرير

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

' حيث يمكنك تحديد بداية رقم المسلسل في الدالة

' فيأخذ كل بند قيمة بدأ من القيمة التي حددتها

' يمكنك إدخال رقم المسلسل لإضافة البند بدلاً من اختياره من القائمة

Response = acDataErrContinue

مدن = ConvertToStr(مدن, NewData)



Call مدن_AfterUpdate 'الأمر الذي تم إضافته
#3

ماشاء الله أبو هاجر

زادك الله علما ونفعنا وإياك به .

أشرف خليل

#4

الأستاذ الفاضل : أبو هاجر

الأستاذ الكريم: أشرف خليل

حققة تعثرت كلمات الشكر التي أوافكم بها حقكم

غير أني لا أملك إلا أن أقول لكم

جزاكم الله ألف خير

وجعل عملكم هذا في ميزان أعمالكم الصالحة

أخوكم

خالد

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

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

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

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

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

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