عبد الفتاح كيرة قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 السلام عليكم أستخدم حدث before update لمنع تكرار اسم مدرسة موجود سابقا و بما أن جدول أسماء المدارس يشتمل على حقلين الأول رقم المدرسة و الثانى اسم المدرسة فعند إضافة مدرسة موجودة سابقة يعمل الحدث لكن يتراكم بيانات فى حقل رقم المدرسة بدون أسماء مدارس يعنى أرقام فى الحقل الأساسى رقم المدرسة بدون أسماء مدارس مقابلة لها فى حقل اسم المدرسة فكيف يكون علاج ذلك إذا لم يقبل إدخال اسم المدرسة لا يسجل رقما فى حقل رقم المدرسة أفادكم الله الكود المستخدم فى حقل اسم المدرسة فى النموذج Private Sub TelName_BeforeUpdate(Cancel As Integer) If DCount("madrsa", "[tblmdaress]", "[madrsa]= '" & Me.TelName.Text & "'") > 0 Then MsgBox "مدرسة موجودة مسبقا....", , "تنبيه" Cancel = -1 Me.TelName.Undo End If End Sub أستخدم قيمة افتراضية لحقل رقم المدرسة لتسهيل الإدخال =DMax("[MadrsaId]";"tblmdaress")+1
Shivan Rekany قام بنشر مايو 8, 2017 قام بنشر مايو 8, 2017 حسب فهمي لسؤالك واحتمال ان يكون فهمي لسؤالك بيكون غلط لكن اكتب الكود في نموذج قبل تحديث بدلا من حقل قبل تحديث هذا والله يعلم 1
ابوخليل قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 السلام عليكم هذا منطقي لان الترقيم خارج الحدث اضافة الى ما تفضل به اخونا شفان : اجعل سطر الترقيم ضمن الحدث 1
jjafferr قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 السلام عليكم النموذج اول ما يُفتح ، فإنه تلقائيا يعمل الرقم ، اي يعمل سجل جديد ، وبعدين انت تستفسر عن المدرسة موجودة او لا في اعتقادي عندك طريقتين لحل الموضوع: 1. وكما قال أخوي ابوخليل: 4 ساعات مضت, ابوخليل said: اجعل سطر الترقيم ضمن الحدث 2. او في الجدول ، في اعدادات اسم المدرسة ، اجعل وجود الاسم شرطا في حفظ السجل جعفر 1
عبد الفتاح كيرة قام بنشر مايو 9, 2017 الكاتب قام بنشر مايو 9, 2017 شكرا لكم جارى العمل و من ثم الرد جزاكم الله خيرا
عبد الفتاح كيرة قام بنشر مايو 9, 2017 الكاتب قام بنشر مايو 9, 2017 (معدل) الآن نفذت الآتى و أود التأكد من أن هذه أفضل طريقة - الحقلان مطلوبان رقم و اسم المنطقة كل الكود فى حدث قبل التحديث للنموذج - إلغاء أزرار التنقل فلا يبقى أمام المستخدم إلا زر إغلاق أو إغلاق النموذج من أعلى "×" الكود التالى Private Sub Form_BeforeUpdate(Cancel As Integer) If DCount("eqama", "[tbleqama]", "[eqama]= '" & Me.TelName.Text & "'") > 0 Then MsgBox "محل إقامة موجود مسبقا....", , "تنبيه" Me.Undo Cancel = -1 Else 'الترقيم Me.TelID = DMax("[eqamaid]", "tbleqama") + 1 End If End Sub أخيرا المرفق و شكرا لتوجيهاتكم منع التكرار.rar تم تعديل مايو 9, 2017 بواسطه عبد الفتاح كيرة 1
أمير2008 قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 (معدل) اقتباس نى أرقام فى الحقل الأساسى رقم المدرسة بدون أسماء مدارس مقابلة لها هناك عدة طرق ومنها : - استعلام حذف -مع بداية تشغيل البرنامج أو اغلاقه - للسجلات المحتوية على اسم المدرسة فارغ - تسجيل البيانات بمربعات نص غير مرتبطة ثم استعلام اضافة للسجل يعمل عند ضغط زر الحفظ. اضافتي هذه للجملة المقتبسة فقط وليست للموضوع كله تم تعديل مايو 9, 2017 بواسطه أمير2008 1
عبد الفتاح كيرة قام بنشر مايو 9, 2017 الكاتب قام بنشر مايو 9, 2017 3 دقائق مضت, أمير2008 said: استعلام حذف -مع بداية تشغيل البرنامج أو اغلاقه - للسجلات المحتوية على اسم المدرسة فارغ نعم لكن منع حدوث ذلك من البداية لا شك أنه أفضل شكرا 1
أمير2008 قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 كلامك ممتاز و أكيد طبعاً بس دايماً أحب تعدد الحلول لنفس المشكلة 1
عبد الفتاح كيرة قام بنشر مايو 9, 2017 الكاتب قام بنشر مايو 9, 2017 وقد استخدمت هذا الأسلوب قديما لكن حبكة قاعدة البيانات و سد الثغرات له نتائج طيبة فيما بعد و يحد من الفوضى المتراكمة
أبو إبراهيم الغامدي قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 14 ساعات مضت, عبد الفتاح كيرة said: أستخدم قيمة افتراضية لحقل رقم المدرسة لتسهيل الإدخال =DMax("[MadrsaId]";"tblmdaress")+1 القيمة الافتراضية للحقل يجب أن تكون بهذا النسق Me.TelID.DefaultValue = DMax("[eqamaid]", "tbleqama") + 1 ثانيا.. يجب أن تكون العبارة السابقة السابقة في حدث السجل الحالي للنموذج Form_Current event مع وضعها ضمن جملة شرطية Private Sub Form_Current() If NewRecord Then Me.eqamaid.DefaultValue = DMax("[eqamaid]", "tbleqama") + 1 End If End Sub ثالثا أن يكون حدث التحقق على مستوى الحقل وليس على مستوى النموذج Private Sub eqama_BeforeUpdate(Cancel As Integer) If DCount("eqama", "[tbleqama]", "[eqama]= '" & Me.eqama & "'") > 0 Then MsgBox "محل إقامة موجود مسبقا....", , "تنبيه" Cancel = True Me.Undo End If End Sub إليكم التطبيق منع التكرار.zip 1
عبد الفتاح كيرة قام بنشر مايو 9, 2017 الكاتب قام بنشر مايو 9, 2017 بارك الله فيك إجابتك أخى الفاضل أشبه بطريقة قياسية لمن يريد معرفة الطريقة الصحيحة فى إجابتك 3 مرات يجب و نعلم أن وراء "يجب" تعليل إن شاء الله يكون مفيدا للجميع طبعا القيمة الافتراضية ليست نفسها القيمة القيمة تسجل لكن القيمة الافتراضية مجرد اقتراح من أكسيس بقى أن نعلم سبب وضع الكود فى حدث الحالى سبب وضع كود التحقق فى الحقل و ليس النموذج مع أن الأخ شفان أوصى بعكس ذلك وفقك الله و أعانك على الرد بإسهاب على أسئلتنا و أفادكم الله و زادكم علما
Shivan Rekany قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 (معدل) 33 دقائق مضت, أبو إبراهيم الغامدي said: ثالثا أن يكون حدث التحقق على مستوى الحقل وليس على مستوى النموذج ما الفرق بينهما ؟ 22 دقائق مضت, عبد الفتاح كيرة said: سبب وضع كود التحقق فى الحقل و ليس النموذج مع أن الأخ شفان أوصى بعكس ذلك خليني انا اوضح لماذا قلت على المستوى النموذج حسب فهمي ليس هناك الفرق بينهما كلهما بيعمل بشكل ممتاز لكن هناك من الافضل ان يعطي الحدث في النموذج قبل التحديث 1 / اذا كان لا نريد ان يكرر اكثر من الحقل اي مثلا :- عندك ثلاث حقل واحد هو مخصص للاسم ثاني واحد مخصص لاسم الاب ثالث واحد مخصص لاسم الجد اذا الحدث يكون في نموذج والا راح تظهر رسائل لكل حقل على وحده عند تدخل البيانات والا يجب ان تدخل البيانات على التوالي وبالخير اي عند اسم اجد راح تعطي الحدث لذلك قبل ان يحفظ السجل من الافضل ان نوضع الحدث في نموذج قبل تحديث 2/ واذا نريد ان لا يحفظ السجل بشكل تلقائي او نريد ان ندخل البيانات في جميع الحقول و ... الخ هذا والله يعلم تم تعديل مايو 9, 2017 بواسطه Shivan Rekany 1
أبو إبراهيم الغامدي قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 (معدل) 3 ساعات مضت, عبد الفتاح كيرة said: فى إجابتك 3 مرات يجب و نعلم أن وراء "يجب" تعليل إن شاء الله يكون مفيدا للجميع نعم العبارة فضة بعض الشيء.. والمقصود منها لفت الانتباه نأتي للتعليل.. الأولى .. القيمة الافتراضية.. هي قيمة في سجل جديد فقط .. قد تكون جديدة وقد تكون متكررة.. لكن لا يعتبرها أكسس افتراضبة الإ إذا كانت بصيغة الإسناد الذي أشرتُ إليه، وليس الإسناد المباشر! يمكن استخدام القيمة الافتراضية كما فعلتُ في يجب الثانية أو وضعها في خصائص الحقل الحامل للقيمة الافتراضية؛ في النموذج أو الجدول أيضاً. ** السجل الحالي: هو السجل الذي يقع عليه المؤشر .. هذا السجل إما أن يكون جديداً، أو مغلقاً! ** السجل المحرر: هو السجل الذي بدأ للتو الكتابة فيه إما بالإدخال، أو التعديل! .. .. هنا يبرز الحدثان [قبل التحديث]، [بعد التحديث].. ** الحدث قبل التحديث ينقدح عند بدء انتقال المؤشر من (الحقل.. السجل.. بالتسلسل) ** الحدث بعد التحديث ينقدح بعد انتقال المؤشر من (الحقل.. السجل.. بالتسلسل) أي إسناد للقيم في هذين الحدثين لا يتوقع ظهورهما إلا في الفترة بين بدء الانتقل وبعده .. ولهذا بالكاد تُرى القيم العائدة من ذلك الإسناد أما لماذا على مستوى الحقل وليس على مستوى النموذج على مستوى النموذج.. يتحتم انتقال المؤشر من السجل بالكامل.. وبالتالي لن تتمكن من التحقق الإ عند مغادرة السجل.. فلو كانت البيانات المطلوب التحقق منها في أو ل حقل فقد يترسل المستخدم في الإدخال حتى يخرج من السجل.. وعندها يضطر للتراجع عن جميع المدخلات لنها تتبع سجلا موجوداً بالفعل.. وهذا هدر للوقت! أما على مستوي الحقل فلأن بيانات هذا الحقل هي المطلوب فحصها بالفعل.. ومن المفترض عدم مغادة الحقل الإ إذا كانت البيانات صحيحة.. ثم إنه أحيانا يكون هناك أكثر من حقل يحمل بيانات فريدة مثل (الرقم الوظيفي مع الرقم القومي) أو (الرقم الطبي مع الرقم القومي) وهكذا.. فلو كان التحقق على مستوى السجل لن يكون بالإمكان معرفة أين وقع التكرار! والأسلوب الأول هو أسلوب أكسس عند تعريف البيانات على أنها بيانات فريدة !! تنبيه.. الاستخدام التالي خطأ! 5 ساعات مضت, عبد الفتاح كيرة said: Me.TelName.Text والصيحيح أحد الصيغتين التاليتين Me.TelName Me.TelName.Value تم تعديل مايو 9, 2017 بواسطه أبو إبراهيم الغامدي
عبد الفتاح كيرة قام بنشر مايو 9, 2017 الكاتب قام بنشر مايو 9, 2017 وفقك الله وجزاك خيرا على هذه الإضاءة كلامك و تطبيقك محل اعتبار و دراسة لمزيد من الاستفادة هناك نوعان من المعلومات معلومة تحل لك مشكلة و معلومة تجنبك الوقوع فى المشكلة أرجو أن يتسع وقتك للتعليق على مشاركات الإخوة بلا اختصار 1
أبو إبراهيم الغامدي قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 بل مشاركاتك واطروحاتك مثار اهتمام واعجاب بالنسبة لي.. دم في تألقك أستاذ عبد الفتاح 1
عبد الفتاح كيرة قام بنشر مايو 9, 2017 الكاتب قام بنشر مايو 9, 2017 (معدل) نفع الله بك يا أستاذ أبو إبراهيم تم تعديل مايو 9, 2017 بواسطه عبد الفتاح كيرة
رمهان قام بنشر مايو 9, 2017 قام بنشر مايو 9, 2017 السلام عليكم شكرا استاذ عبدالفتاح وجميع الاخوه فيه استفسار استاذ ابو ابراهيم ومقتبس من مشاركة الاستاذ شيفان 6 ساعات مضت, Shivan Rekany said: عندك ثلاث حقل واحد هو مخصص للاسم ثاني واحد مخصص لاسم الاب ثالث واحد مخصص لاسم الجد وحسب مرفق الاستاذ عبدالفتاح لو حبينا يكون المنع مكون من حقلين وفي مثالنا رقم المدرسة واسم المدرسة وفي المثال اعلاه eqamaid,eqama وحسب الحدث قبل التحديث ؟ كيف ستكون ؟ تحياتي 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.