Abdelaziz Osman قام بنشر أكتوبر 16 قام بنشر أكتوبر 16 السلام عليكم ورحمة الله لدي حقل باسم dev داخل نموذج أريد له كود vba لشرط بعد التحديث اذا لم يحتوى التحديث على الرقم 5000000000 او اكبر يتم التراجع عن التحديث
ازهر عبد العزيز قام بنشر أكتوبر 16 قام بنشر أكتوبر 16 (معدل) وعليكم السلام If Me.dev <> 5000000000 Then dev = OldValue End If تم تعديل أكتوبر 16 بواسطه ازهر عبد العزيز 1
Foksh قام بنشر أكتوبر 16 قام بنشر أكتوبر 16 مشاركة مع أخي الكريم @ازهر عبد العزيز .. Private Sub dev_AfterUpdate() If Me.dev < 5000000000 Then Me.Undo End If End Sub 2
MOHAMMAD IBRAHIM قام بنشر أكتوبر 16 قام بنشر أكتوبر 16 (معدل) وعليكم السلام اقتباس و توضيح فقط لا اكثر 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، سيظهر تحذير وسيتراجع عن التحديث. تم تعديل أكتوبر 16 بواسطه MOHAMMAD IBRAHIM 1
Abdelaziz Osman قام بنشر أكتوبر 16 الكاتب قام بنشر أكتوبر 16 الزملاء الأعزاء لكم منى كل التحية والتقدير ولكن طلبى هو يحتوى وليس يساوى كما أريد رسالة هل أنت موافق ب (نعم) و (لا) واذا تم الضغط على نعم يتم عمل undo وعند الضغط على( لا ) يتم الوقف على الحقل dev لكتابة التحديث المناسب
Foksh قام بنشر أكتوبر 16 قام بنشر أكتوبر 16 اخي العزيز @Abdelaziz Osman ، انت عضو مميز ما شاء الله عليك ، وأكيد لا حاجة لتذكيرك بالشرح الوافي لمفهومك الذي تريد توصيله كمعلومة اعطنا امثلة على كلمة يحتوي التي تريدها كقيمة . كمثال ( 50000000001 تحتوي على الرقم الذي ذكرته و 5000000000000 ايضاً تحتوي على الرقم الذي ذكرته ) شكراً للتوضيح
Abdelaziz Osman قام بنشر أكتوبر 16 الكاتب قام بنشر أكتوبر 16 4 دقائق مضت, Foksh said: اخي العزيز @Abdelaziz Osman ، انت عضو مميز ما شاء الله عليك ، وأكيد لا حاجة لتذكيرك بالشرح الوافي لمفهومك الذي تريد توصيله كمعلومة اعطنا امثلة على كلمة يحتوي التي تريدها كقيمة . كمثال ( 50000000001 تحتوي على الرقم الذي ذكرته و 5000000000000 ايضاً تحتوي على الرقم الذي ذكرته ) شكراً للتوضيح المثال هو " تم تنفيذ الطلبية رقم 5100152369 بتاريخ 16 اكتوبر 2024 " 1
Abdelaziz Osman قام بنشر أكتوبر 16 الكاتب قام بنشر أكتوبر 16 (معدل) أعطيته هذا الكود ولكن للأسف تم رفضه 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 وكذلك وضعت هذا الكود بحدث عند الاغلاق للنموذج ولكن للأسف لم اصل للحل الصحيح تم تعديل أكتوبر 16 بواسطه Abdelaziz Osman
Abdelaziz Osman قام بنشر أكتوبر 16 الكاتب قام بنشر أكتوبر 16 كل الذى أريده هو عندما يقوم المستخدم بفتح النموذج وينتهى من التحديث وعندما يقوم بغلق النموذج واسم النموذج هو open اذا كان الحقل t54=6 مع الحقل dev لا يحتوى على العدد ?????????5 يقوم الاكسيس بعمل رجوع للحقل Dev والحقل t54
Foksh قام بنشر أكتوبر 16 قام بنشر أكتوبر 16 16 دقائق مضت, Abdelaziz Osman said: لا يحتوى على العدد لا يحتوي على العدد 5 ضمن منزلة محددة كما هو في أول الموضوع ؟ أم في أي منزلة !!!!!!! واذا كان اسم النموذج Open فهذا غير منطقي لأن الاسم من الأسماء المحجوزة في آكسيس ! ! على كل حال ارفق ملف أخي الكريم ..
أفضل إجابة MOHAMMAD IBRAHIM قام بنشر أكتوبر 16 أفضل إجابة قام بنشر أكتوبر 16 (معدل) جرب 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 تم تعديل أكتوبر 16 بواسطه MOHAMMAD IBRAHIM 1
Abdelaziz Osman قام بنشر أكتوبر 16 الكاتب قام بنشر أكتوبر 16 @MOHAMMAD IBRAHIM مدير. حالا سوف اقوم بالتشغيل وابلغ سيادتكم بالنتائج عند أقرب وقت ممكن لك منى بالغ التحية
Abdelaziz Osman قام بنشر أكتوبر 16 الكاتب قام بنشر أكتوبر 16 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 = "لم يتم كتابة رقم الطلب أثناء التنفيذ" وبدون أي رسالة نعم أو لا فقط ان امكن رسالة تنبيه مفادها "تم الغاء التحديث لم يتم كتابة رقم الطلب" هل ممكن
MOHAMMAD IBRAHIM قام بنشر أكتوبر 16 قام بنشر أكتوبر 16 54 دقائق مضت, Abdelaziz Osman said: ممتاز سيدى ولكن اريد ايضا خيار بديل عند الخروج انه إذا قام المستخدم بالخروج قبل كتابة رفم الطلب الذى يبدأ برقم 5 يقوم الاكسيس بتغيير t54=1 و dev = "لم يتم كتابة رقم الطلب أثناء التنفيذ" وبدون أي رسالة نعم أو لا فقط ان امكن رسالة تنبيه مفادها "تم الغاء التحديث لم يتم كتابة رقم الطلب" اي كود تم تنفيذة ؟ لكي اقوم بتعديل عليه
Abdelaziz Osman قام بنشر أكتوبر 16 الكاتب قام بنشر أكتوبر 16 1 ساعه مضت, MOHAMMAD IBRAHIM said: اي كود تم تنفيذة ؟ لكي اقوم بتعديل عليه الكود الثانى
MOHAMMAD IBRAHIM قام بنشر أكتوبر 16 قام بنشر أكتوبر 16 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
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.