Hamtoooo قام بنشر منذ 9 ساعات قام بنشر منذ 9 ساعات السلام عليكم اسعد الله مساؤكم احبابي الكرام لدي نموذج فيه حقول كثيرة حوالي 30 حقلا المطلوب هو ان المستخدم لا يمكن الحفظ إلى بعد ملئ جميع الحقول كاملة لدي فكرة وهو ان اقوم بضبط كل حقل على حده ولكن اعتقد انه غير عملي اريد بكود واحد فقط يتم التأكد قبل الحفظ ما إذا كانت الحقول غير فارغه جميعها فيتم الحفظ وإلا تظهر رساله ان هناك بعض الحقول فارغه شكرا من القلب اليكم مرفقا للتجربة الحقول الفارغة.accdb
Foksh قام بنشر منذ 9 ساعات قام بنشر منذ 9 ساعات (معدل) وعليكم السلام ورحمة الله وبركاته ،، وبما اني اتابع من الجوال ، ولم استطع من رؤية الملف . اعتقد ان هناك أكثر من فكرة !!! الأولى قد تعتمد على دالة تتفقد جميع العناصر ذات النوع "مربع نص" بأنها تحتوي قيم وغير فارغة . وهذا قد يسبب مشكلة لأنه حينها لن يميز بين مربعات النص التي تريدها من مربعات نص أخرى على سبيل المثال . الثانية أنه عند الحفظ وقبل إتمام عملية الحفظ التأكد من مربعات النص التي لها مصدر بيانات مرتبط بحقل وليس مربعات النص الغير مضمنة بمصدر بيانات ، وهنا قد تكون مشكلة أيضاً . الثالثة وما أرجحها بشكل أفضل وأقوى ، وهو من خلال الـ TAG . بحيث تضع وسماً لجميع مربعات النص التي تريدها أن يتم التحقق منها ولنفترض = Ham حيث من خلال زر الحفظ نستعمل كود بهذا الشكل تقريباً - ما لم أكن مخطئاً في بعض الأجزاء .. dim ctl as control, missing as string for each ctl in me.controls if lcase(trim(ctl.tag)) = "Ham" then if nz(ctl.value, "") = "" then missing = missing & vbcrlf & ctl.name end if end if next if missing <> "" then msgbox " : الحقول التالية فارغة" & vbcrlf & missing, vbinformation+ vbmsgboxright, "" exit sub end if docmd.runcommand accmdsaverecord docmd.gotorecord,,acnewrec طبعاً ، إذا كنت من الأشخاص الذين يتركون اسم مربع النص كما هو من مصدره من الجدول ، فقد قمت بإضافة فكرة تحديد اسماء المربعات النصية التي لم يتم ادخال بيانات فيها . بكل الأحوال جرب وأخبرنا بالنتيجة ، عل أحد الأساتذة والأخوة يتابع معك من كمبيوتر 🥴 على كل حال جرب خطر على بالي نقطة أخرى من خلال السطر :- missing = missing & vbcrlf & ctl.name بأن نستبدله بالسطر التالي :- missing = missing & vbcrlf & ctl.controls(0).caption فهنا سيأقرأ التسمية ( label ) المرتبطة بكل مربع نص بدلاً من اسم مربع النص نفسه . تم تعديل منذ 8 ساعات بواسطه Foksh إضافة ملاحظة وتعديل
Hamtoooo قام بنشر منذ 8 ساعات الكاتب قام بنشر منذ 8 ساعات احسنت وبارك الله فيك شكرا لتجاوبك تمت التجربة مع بعض التعديلات البسيطه وكانت فعاله Dim ctrl As Control For Each ctrl In Me.Controls If (ctrl.ControlType = acTextBox Or ctrl.ControlType = acComboBox) Then If (Nz(ctrl.Value, "") = "") Then MsgBox "يرجى تعبئة جميع الحقول قبل الحفظ." & vbCrLf & _ "الحقل الفارغ: " & ctrl.Name, vbExclamation ctrl.SetFocus Exit Sub End If End If Next ctrl ' إذا جميع الحقول تم تعبئتها، يتم الحفظ DoCmd.RunCommand acCmdSaveRecord MsgBox "تم الحفظ بنجاح بنجاح", 0 + 64 + 1048576, "مؤكد" DoCmd.Close 1
Foksh قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه 6 ساعات مضت, Hamtoooo said: تمت التجربة مع بعض التعديلات البسيطه وكانت فعاله الحمد لله على نعمه.. لا تنسى إغلاق الموضوع أخي الكريم 🤗
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.