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

عاجل / تكرار لحد معين

مغلق
بدأه waleedkamar في 27 أكتوبر 2005 · 6 رد · 1,383 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة المحترمين

قاعدة بيانات تحتوي على خلية رقم اريد فقط ان يتكرر بها قيمة معينة لعدد معين بمعني انه يمكن تكرار العدد 10 في الخلية INV (( الكرار بحد اقصي 5 مرات فقط او اقل فقط ))

ارجو المساعدة ....

#2

تفضل اخي الكريم

هذا مثال والطريقه الخاصة بالتكرار موجودة في الاستعلام غير ما يلزم حسب احتياجك

تكرار قيمه.rar

اختكم

زهره

#3

الاخت زهرة

يبدو اني شرحت المطلوب بطريقة بها بعض من الغمموض انا اريد ( المثال )

جدول به عدة حقول

جدول AA

INV - ITEM - SALE - DES - REN

وحيث ان INV رقم - عند كتابة رقم 10 في الحقل يقبل القيمة لعد مرات تكرار معين بمعن انة يمكن ادخال رقم 10 يكرر 5 مرات فقط او اقل اكثر من ذلك يرفق تكرار الرقم اكثر من المحدد سابقا

#4

عزيزي الفاضل

السلام عليكم ورحمة الله وبركاته

لكي تقوم بما طلبته لابد من تحويل حقل الرقم INV الى نص من خلال الجدول وتختار حجم الحقل 10

عند الانتقال الى الجدول او النموذج للكتابة فيه بأكثر من 10 خانات لن يقبل ولكنه يقبل بأقل من ذلك مثل 9 ارقام او 8 وهكذا

وهذا ملفك بعد التعديل

تكرار قيمه معدل.rar

#5

السلام عليكم ورحمة الله

أستاذتى العزيزة زهرة المنتدى

اعتقد والله اعلى واعلم ان ماقصده الاخ الكريم waleedkamar هو غير ما فهمتيه حضرتك. فانا اعتقد انه يقصد وضع شرط على حقل رقم داخل جدول وليكن الحقل باسم Inv والجدول باسم Table, بحيث يسمح بالتكرار فيه (اى لا يكون حقل مفتاح اساسى غير قابل للتكرار).

فمثلا لو فى احد السجلات وضعت قيمة Inv تساوى 15 مثلا فيمكننى ان اضع هذا الرقم ثانية فى سجل اخر (على ان الحقل قابل للتكرار) ولكن مع ملاحظة ان هذا التكرار مشروط بحيث لا يمكن ان تتكرر القيمة فى الحقل اكبر من عدد معين من التكرارات وليكن 5 مثلا. وعندها يمكننى ان اضع قيمة inv تساوى 15 فى 5 سجلات مختلفة فقط بالجدول ولوتم وضع قيمة inv تساوى 15 فى سجل جديد للمرة السادسة يرفض البرنامج ويقوم اعطاء رسالة بانك تجاوزت عدد التكرار المسموح لك به.

هذا والله اعلى واعلم ,,,

مرفق تعديل بسيط على برنامج حضرتك استاذتى العزيزة - واسف ان كنت فهمت غلط او تطاولت وعملت تعديل بسيط على برنامج لاستاذتنا نتيجة سوء فهم-

وكل عام وحضرتك والامة الاسلامية بخير,,,

تكرار قيمه.rar

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#6

الاخوة الاعزاء

ا/ عماد

و الاخت / زهرة

تعقيبا على موضعي ما اردته بالضبط هو ما تفضل الاستاذ/ عماد حمدي ، بشرحة لكن المثال لم يوضح بالضبط -

نفرض ان الجدول به للمبيعات اريد فقط فى الفاتورة رقم 10 يتم صرف الكود 400 فقط 8 مرات مثلا فقط

اقل ممكن لكن اكثر لا

و اشكر حسن تعاونمكم معي .

و جزاكم الله خير الجزاء

#7

السلام عليكم ورحمة الله

الاخ الكريم waleedkamar فى الحقيقة انا ليست لى خبرة ببرامج المحاسبات والفواتير ولذلك للاسف لن استطيع ان افهم مكونات جدول المبيعات والفواتير. ولكنى اخى الكريم سأشرح لك التعديل البسيط الذى وضعته فى الملف المرفق سابقا.

كل ما فعلته هو اضافة مجموعة من الحقول فى الجدول الذى يحتوى الحقل Inv (الحقل الذى ستتكرر به القيمة عدد محدود من المرات) وهذا ليس ضروريا ولكن لكى يكون شكل الجدول طبيعى (طبعا يمكنك ان تضع الحقول الخاصة بك حسب الحقول المطلوبة للفواتير وتضع حقل مفتاح اساسى وكذلك تقوم بكل علاقات الربط بين جدولك وباقى الجداول فى القاعدة ) وطبعا الحقول المضافة لن تؤثر مطلقا فى الكود البسيط الذى وضعته وساقوم بشرحه.

اهم ما فى الموضوع الا تجعل الحقل Inv مفتاح اساسى والا لن نستطيع تكرار اى قيمة به(خاصية المفتاح الاساسى).

الأن نريد للحقل الرقمى Inv ان يحتوى شرط بعدم تكرار القيمة بداخله اكثر من عدد محدود وليكن 8 كما طلبت. بالتاكيد سيكون الشرط والاختبار المطلوب للكشف عن عدد التكرارات للقيمة داخل حدث (بعد التحديث) للحقل Inv واليك الكود التالى وهو كل المطلوب

Private Sub INV_AfterUpdate()
Me.Refresh
If DCount("*", "Table", "[INV] = Forms!Form!INV") > 8Then
MsgBox "أسف لقد تعديت التكرار المسموح به. من فضلك ادخل قيمة جديدة!!!"
Me.INV = Null
End If
End Sub

واضح ان الكود السابق موضوع تحت حدث (بعد التحديث) للحقل Inv وهذا المنطقى.

الامر Me.Refresh لعمل تحديث للبيانات فى القاعدة بحيث يتم ادراج السجل الحالى فى الجدول الخاص به وهو هنا باسم Tableليتم احتسابه فى عدد السجلات المكررة.

الامر

 DCount("*", "Table", "[INV] = Forms!Form!INV")

ليقوم بحصر عدد السجلات فى الجدول Table والتى يكون فيها الحقل Inv يأخذ القيمة

 Forms!Form!INV

وهى القيمة الموضوعة حديثا فى نموذج الادخال المفتوح وهو هنا باسم Form .

والان اذا كانت عدد السجلات الموجودة بالجدول اكبر من 8 سيقوم البرنامج بطباعة رسالة للمستخدم يخبره فيها بانه تعدى التكرار المسموح به ويطالبه بادخال قيمة جديدة.

وبعد ذلك يقوم بافراغ قيمة Inv منتظرا منك قيمة جديدة.اما لو كانت عدد السجلات لم يتعدى 8 فلن يتم اتخاذ اى اجراء.

هذا كل ما فى الامر. اتمنى اكون وضحت الفكرة واعذرنى ان اخطأت ولا تنسانا من صالح الدعاء.

وبالتوفيق بعون الله وفضله,,,

تكرار قيمه.rar

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

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

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