Abdelaziz Osman قام بنشر الأربعاء at 08:45 مشاركة قام بنشر الأربعاء at 08:45 السلام عليكم ورحمة الله لدي حقل باسم dev داخل نموذج أريد له كود vba لشرط بعد التحديث اذا لم يحتوى التحديث على الرقم 5000000000 او اكبر يتم التراجع عن التحديث رابط هذا التعليق شارك More sharing options...
ازهر عبد العزيز قام بنشر الأربعاء at 09:07 مشاركة قام بنشر الأربعاء at 09:07 (معدل) وعليكم السلام If Me.dev <> 5000000000 Then dev = OldValue End If تم تعديل الأربعاء at 09:41 بواسطه ازهر عبد العزيز 1 رابط هذا التعليق شارك More sharing options...
Foksh قام بنشر الأربعاء at 09:31 مشاركة قام بنشر الأربعاء at 09:31 مشاركة مع أخي الكريم @ازهر عبد العزيز .. Private Sub dev_AfterUpdate() If Me.dev < 5000000000 Then Me.Undo End If End Sub 2 رابط هذا التعليق شارك More sharing options...
MOHAMMAD IBRAHIM قام بنشر الأربعاء at 09:41 مشاركة قام بنشر الأربعاء at 09:41 (معدل) وعليكم السلام اقتباس و توضيح فقط لا اكثر 1. افتح نموذجك في وضع التصميم. 2. انقر بزر الماوس الأيمن على الحقل "dev" واختر "خصائص". 3. اذهب إلى علامة التبويب "الحدث" وابحث عن "After Update". 4. انقر على زر "..." الموجود بجوار "After Update" لفتح محرر VBA. 5. أدخل الكود التالي: ```vba Private Sub dev_AfterUpdate() If Me.dev < 5000000000 Then MsgBox "القيمة المدخلة يجب أن تكون 5000000000 أو أكبر. سيتم التراجع عن التحديث." ' قم بإعادة الحقل إلى حالته السابقة Me.Undo End If End Sub ### شرح الكود: - `Private Sub dev_AfterUpdate()`: هذا هو حدث "After Update" الخاص بحقل "dev". - `If Me.dev < 5000000000 Then`: يتحقق مما إذا كانت القيمة المدخلة أقل من 5000000000. - `MsgBox`: يعرض رسالة تنبه المستخدم بأن القيمة المدخلة غير صحيحة. - `Me.Undo`: يقوم بالتراجع عن التحديث وإعادة القيمة السابقة للحقل. بهذا الشكل، إذا أدخل المستخدم قيمة أقل من 5000000000، سيظهر تحذير وسيتراجع عن التحديث. تم تعديل الأربعاء at 09:52 بواسطه MOHAMMAD IBRAHIM 1 رابط هذا التعليق شارك More sharing options...
Abdelaziz Osman قام بنشر الأربعاء at 10:35 الكاتب مشاركة قام بنشر الأربعاء at 10:35 الزملاء الأعزاء لكم منى كل التحية والتقدير ولكن طلبى هو يحتوى وليس يساوى كما أريد رسالة هل أنت موافق ب (نعم) و (لا) واذا تم الضغط على نعم يتم عمل undo وعند الضغط على( لا ) يتم الوقف على الحقل dev لكتابة التحديث المناسب رابط هذا التعليق شارك More sharing options...
Foksh قام بنشر الأربعاء at 11:00 مشاركة قام بنشر الأربعاء at 11:00 اخي العزيز @Abdelaziz Osman ، انت عضو مميز ما شاء الله عليك ، وأكيد لا حاجة لتذكيرك بالشرح الوافي لمفهومك الذي تريد توصيله كمعلومة اعطنا امثلة على كلمة يحتوي التي تريدها كقيمة . كمثال ( 50000000001 تحتوي على الرقم الذي ذكرته و 5000000000000 ايضاً تحتوي على الرقم الذي ذكرته ) شكراً للتوضيح رابط هذا التعليق شارك More sharing options...
Abdelaziz Osman قام بنشر الأربعاء at 11:07 الكاتب مشاركة قام بنشر الأربعاء at 11:07 4 دقائق مضت, Foksh said: اخي العزيز @Abdelaziz Osman ، انت عضو مميز ما شاء الله عليك ، وأكيد لا حاجة لتذكيرك بالشرح الوافي لمفهومك الذي تريد توصيله كمعلومة اعطنا امثلة على كلمة يحتوي التي تريدها كقيمة . كمثال ( 50000000001 تحتوي على الرقم الذي ذكرته و 5000000000000 ايضاً تحتوي على الرقم الذي ذكرته ) شكراً للتوضيح المثال هو " تم تنفيذ الطلبية رقم 5100152369 بتاريخ 16 اكتوبر 2024 " 1 رابط هذا التعليق شارك More sharing options...
Abdelaziz Osman قام بنشر الأربعاء at 11:21 الكاتب مشاركة قام بنشر الأربعاء at 11:21 (معدل) أعطيته هذا الكود ولكن للأسف تم رفضه if not me.dev.value like "*5?????????*" and me.t54 = 6 then لكن للأسف تم رفضه وكنت أريد حقل اخر معه باسم t54 يكون = 6 10 دقائق مضت, Abdelaziz Osman said: أعطيته هذا الكود ولكن للأسف تم رفضه if not me.dev.value like "*5?????????"* and me.t54 = 6 then لكن للأسف تم رفضه وكنت أريد حقل اخر معه باسم t54 يكون = 6 وكذلك وضعت هذا الكود بحدث عند الاغلاق للنموذج ولكن للأسف لم اصل للحل الصحيح تم تعديل الأربعاء at 11:33 بواسطه Abdelaziz Osman رابط هذا التعليق شارك More sharing options...
Abdelaziz Osman قام بنشر الأربعاء at 11:49 الكاتب مشاركة قام بنشر الأربعاء at 11:49 كل الذى أريده هو عندما يقوم المستخدم بفتح النموذج وينتهى من التحديث وعندما يقوم بغلق النموذج واسم النموذج هو open اذا كان الحقل t54=6 مع الحقل dev لا يحتوى على العدد ?????????5 يقوم الاكسيس بعمل رجوع للحقل Dev والحقل t54 رابط هذا التعليق شارك More sharing options...
Foksh قام بنشر الأربعاء at 12:07 مشاركة قام بنشر الأربعاء at 12:07 16 دقائق مضت, Abdelaziz Osman said: لا يحتوى على العدد لا يحتوي على العدد 5 ضمن منزلة محددة كما هو في أول الموضوع ؟ أم في أي منزلة !!!!!!! واذا كان اسم النموذج Open فهذا غير منطقي لأن الاسم من الأسماء المحجوزة في آكسيس ! ! على كل حال ارفق ملف أخي الكريم .. رابط هذا التعليق شارك More sharing options...
أفضل إجابة MOHAMMAD IBRAHIM قام بنشر الأربعاء at 12:11 أفضل إجابة مشاركة قام بنشر الأربعاء at 12:11 (معدل) جرب Private Sub Form_BeforeClose(Cancel As Integer) Dim userResponse As Integer ' تحقق من الشرط If Me.t54 = 6 Then If Not (Me.dev Like "5000000000") Then ' عرض رسالة تأكيد userResponse = MsgBox("هل تريد إعادة الحقل dev إلى القيمة السابقة؟", vbYesNo + vbQuestion, "تأكيد") If userResponse = vbYes Then ' قم بإعادة الحقل إلى القيمة السابقة Me.dev = "" ' أو قم بتغيير هذا إلى القيمة التي تريد إعادة تعيينها ' يمكنك أيضاً إضافة كود هنا لتخزين القيمة السابقة قبل تغييرها End If End If End If End Sub او Private Sub Form_BeforeUpdate(Cancel As Integer) Dim t54Value As Integer Dim devValue As String Dim response As Integer t54Value = Me.t54 devValue = Me.dev ' تحقق إذا كانت قيمة t54 تساوي 6 وأيضاً إذا dev لا يحتوي على الرقم 5 If t54Value = 6 And Not devValue Like "*5" Then ' إظهار رسالة تأكيد response = MsgBox("الحقل dev يجب أن يحتوي على الرقم 5. هل ترغب في الاستمرار؟", vbYesNo + vbExclamation, "تأكيد") If response = vbNo Then ' إذا اختار المستخدم "لا"، أعد الحقل t54 إلى Null أو القيمة الافتراضية Me.t54 = Null ' أو يمكنك تعيين قيمة معينة بدلًا من Null Cancel = True ' يمنع إغلاق النموذج End If End If End Sub تم تعديل الأربعاء at 12:15 بواسطه MOHAMMAD IBRAHIM 1 رابط هذا التعليق شارك More sharing options...
Abdelaziz Osman قام بنشر الأربعاء at 12:35 الكاتب مشاركة قام بنشر الأربعاء at 12:35 @MOHAMMAD IBRAHIM مدير. حالا سوف اقوم بالتشغيل وابلغ سيادتكم بالنتائج عند أقرب وقت ممكن لك منى بالغ التحية رابط هذا التعليق شارك More sharing options...
Abdelaziz Osman قام بنشر الأربعاء at 14:02 الكاتب مشاركة قام بنشر الأربعاء at 14:02 1 ساعه مضت, MOHAMMAD IBRAHIM said: جرب Private Sub Form_BeforeClose(Cancel As Integer) Dim userResponse As Integer ' تحقق من الشرط If Me.t54 = 6 Then If Not (Me.dev Like "5000000000") Then ' عرض رسالة تأكيد userResponse = MsgBox("هل تريد إعادة الحقل dev إلى القيمة السابقة؟", vbYesNo + vbQuestion, "تأكيد") If userResponse = vbYes Then ' قم بإعادة الحقل إلى القيمة السابقة Me.dev = "" ' أو قم بتغيير هذا إلى القيمة التي تريد إعادة تعيينها ' يمكنك أيضاً إضافة كود هنا لتخزين القيمة السابقة قبل تغييرها End If End If End If End Sub او Private Sub Form_BeforeUpdate(Cancel As Integer) Dim t54Value As Integer Dim devValue As String Dim response As Integer t54Value = Me.t54 devValue = Me.dev ' تحقق إذا كانت قيمة t54 تساوي 6 وأيضاً إذا dev لا يحتوي على الرقم 5 If t54Value = 6 And Not devValue Like "*5" Then ' إظهار رسالة تأكيد response = MsgBox("الحقل dev يجب أن يحتوي على الرقم 5. هل ترغب في الاستمرار؟", vbYesNo + vbExclamation, "تأكيد") If response = vbNo Then ' إذا اختار المستخدم "لا"، أعد الحقل t54 إلى Null أو القيمة الافتراضية Me.t54 = Null ' أو يمكنك تعيين قيمة معينة بدلًا من Null Cancel = True ' يمنع إغلاق النموذج End If End If End Sub ممتاز سيدى ولكن اريد ايضا خيار بديل عند الخروج انه إذا قام المستخدم بالخروج قبل كتابة رفم الطلب الذى يبدأ برقم 5 يقوم الاكسيس بتغيير t54=1 و dev = "لم يتم كتابة رقم الطلب أثناء التنفيذ" وبدون أي رسالة نعم أو لا فقط ان امكن رسالة تنبيه مفادها "تم الغاء التحديث لم يتم كتابة رقم الطلب" هل ممكن رابط هذا التعليق شارك More sharing options...
MOHAMMAD IBRAHIM قام بنشر الأربعاء at 14:57 مشاركة قام بنشر الأربعاء at 14:57 54 دقائق مضت, Abdelaziz Osman said: ممتاز سيدى ولكن اريد ايضا خيار بديل عند الخروج انه إذا قام المستخدم بالخروج قبل كتابة رفم الطلب الذى يبدأ برقم 5 يقوم الاكسيس بتغيير t54=1 و dev = "لم يتم كتابة رقم الطلب أثناء التنفيذ" وبدون أي رسالة نعم أو لا فقط ان امكن رسالة تنبيه مفادها "تم الغاء التحديث لم يتم كتابة رقم الطلب" اي كود تم تنفيذة ؟ لكي اقوم بتعديل عليه رابط هذا التعليق شارك More sharing options...
Abdelaziz Osman قام بنشر الأربعاء at 16:33 الكاتب مشاركة قام بنشر الأربعاء at 16:33 1 ساعه مضت, MOHAMMAD IBRAHIM said: اي كود تم تنفيذة ؟ لكي اقوم بتعديل عليه الكود الثانى رابط هذا التعليق شارك More sharing options...
MOHAMMAD IBRAHIM قام بنشر الأربعاء at 16:44 مشاركة قام بنشر الأربعاء at 16:44 7 دقائق مضت, Abdelaziz Osman said: الكود الثانى Private Sub Form_BeforeUpdate(Cancel As Integer) Dim t54Value As Integer Dim devValue As String Dim response As Integer t54Value = Me.t54 devValue = Me.dev ' تحقق إذا كانت قيمة t54 تساوي 6 وأيضاً إذا dev لا يحتوي على الرقم 5 If t54Value = 6 And Not devValue Like "*5" Then ' إظهار رسالة تأكيد response = MsgBox("الحقل dev يجب أن يحتوي على الرقم 5. هل ترغب في الاستمرار؟", vbYesNo + vbExclamation, "تأكيد") If response = vbNo Then ' إذا اختار المستخدم "لا"، أعد الحقل t54 إلى Null أو القيمة الافتراضية Me.t54 = Null ' أو يمكنك تعيين قيمة معينة بدلًا من Null Cancel = True ' يمنع إغلاق النموذج End If End If ' تحقق إذا كان المستخدم يحاول الخروج بدون كتابة رقم الطلب الذي يبدأ برقم 5 If devValue = "" Or Left(devValue, 1) <> "5" Then ' تعيين القيم المطلوبة Me.t54 = 1 Me.dev = "لم يتم كتابة رقم الطلب أثناء التنفيذ" ' إظهار رسالة تنبيه MsgBox "تم الغاء التحديث لم يتم كتابة رقم الطلب", vbInformation, "تنبيه" Cancel = True ' يمنع إغلاق النموذج End If End Sub شرح للمتغير عن الكود السابق. تم إنشاء شرط إضافي للتحقق إذا كان الحقل dev فارغًا أو لا يبدأ برقم 5. إذا تحقق الشرط، نقوم بتعيين t54 إلى 1 و dev إلى "لم يتم كتابة رقم الطلب أثناء التنفيذ". تظهر رسالة تنبيه تخبر المستخدم بأنه تم إلغاء التحديث. يتم تعيين Cancel إلى True لمنع إغلاق النموذج إذا كانت الشروط مستوفاة. بهذا الشكل، ستحقق ما تريده. اتمني التجربة و الرد صديقي 1 رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان