أبا عمر قام بنشر ديسمبر 17, 2012 قام بنشر ديسمبر 17, 2012 إخواني الأعزاء طلبي هو عمل ترقيم تلقائي لحقل CATID مع مراعاة عملية حذف وإلحاق السجل بجدول المحذوفات وقد حاولت عمل ذلك عن طريق الدالة DMAX لمعرفة أكبر رقم موجود في الجدول CATEGORIES ففي حدث بعد التحديث لحقل CATNAME وضعت الكود التالي If IsNull(a) Then [Textdel] = 1 Else [Textdel] = DMax("[CATID]", "CATEGORIES") + 1 End Ifحيث a حقل غير منضم لحساب أكبر رقم موجود في حقل CATID لكن المشكلة تحدث عند إلحاق السجل الى جدول DELCAT وحذفه من هذا النموذج ويالتالي من جدول CATEGORIES حيث بعد نقل السجل وإضافة سجل جديد يتكرر الرقم CATID وعند إلحاق السجل الى المحذوفات يكو ن هناك رقم مكرر في جدول DELCAT ولا أريد تكرار الرقم CATID مرفق مثال للتوضيح za-KeppDelRec_up-LAST.rar
ابوخليل قام بنشر ديسمبر 18, 2012 قام بنشر ديسمبر 18, 2012 اجعل حقل الرقم CATID ترقيم تلقائي فالرقم الذي يتم حذفه لا يعود ابدا
أبا عمر قام بنشر ديسمبر 18, 2012 الكاتب قام بنشر ديسمبر 18, 2012 أخي الحبيب جزاك ربي خيرا ولكن لي سؤال في حال أني أريد جعل جدول CATEGORIES جدول للتسجيل المبدئي للطلاب مثلا وله نموذج خاص به للإدخال المدئي ، وجدول DELCAT بدل من جعله للمحذوفات نجعله للتسجيل النهائي وله نموذج للإدخال النهائي فمثلا لو عندي طالب جديد لكن لم يتأكد تسجيله وبعد فتره يتأكد نقوم بنقله لجدول التسجيل النهائي عن طريق الإلحاق ولا مشكلة في هذه الحالة لكن قد يكون هناك تسجيل نهائي مباشرة من نموذج الادخال النهائي ولو جعلت كل منهما ترقيم تلقائي لم يصلح فكيف ترى الحل؟
ابوخليل قام بنشر ديسمبر 18, 2012 قام بنشر ديسمبر 18, 2012 ارى ان تجعل عملك على جدول واحد ونموذج واحد وتضع خانة اختيار للتسجيل النهائي ، بحيث ان الذي لا يتم اختياره يضل مخفيا وغير ظاهر
أبا عمر قام بنشر ديسمبر 18, 2012 الكاتب قام بنشر ديسمبر 18, 2012 (معدل) جزاكم الله خيرا على ردك وإهتمامك أستاذنا الفاضل والكريم لكن لي هدف من فصلهم بهذه الطريقة فأرجو أن تساعدني في عمل ترقيم لحقل CATID في كلا الجدولين يعتمد في المقام الأول على أعلى قيمة للحقل CATID في كلا الجدولين ثم يبدأ بالإضافة من بعدها إن أمكن ولقد حاولت فعل ذلك عن طريق إضافة مربع نص غير منضم على النموذج ووضعت بمصدره الدالة dmax لإحضار أعلى قيمة في الجدول الأول وأيضا مربع نص ثاني بنفس التوصيف الخاص بالمربع الأول لإحضار أعلى قيمة في الجدول الثاني وعنداضافة سجل جديد يقرأ من مربي النص أعلى قيمة ثم يبدأ بإضافة 1 لها ويضعها في حقل CATID لكن قابلتني مشاكل في التطبيق منها السجل الأول يكون مربي النص فارغين فتغلبت عليها بوضع قيمة إفتراضية 1 منها يبدأ الترقيم المهم أني لم أنجح في إكمال المطلوب ولك جزيل الشكر تم تعديل ديسمبر 18, 2012 بواسطه أبا عمر
ابوخليل قام بنشر ديسمبر 18, 2012 قام بنشر ديسمبر 18, 2012 اجعل الترقيم التلقائي لواحد منهما ، بل كونه في نموذج التسجيل المبدأي افضل كيف ؟ نفرض اننا سجلنا اربعة اسماء يأخذون الارقام 1 ، 2 ، 3 ، 4 ، ثم نقلنا الرابع الى جدول الدائمين ( الحاق وحذف ) طبعا سينتقل هو ورقمه 4 وحينما نضيف اسما جديدا سيأخذ الرقم 5 وحينما ننقل صاحب الرقم 2 فسينتقل هو ورقمه ، وسيكون مكانه شاغرا هناك بمعنى ان الجدول الاول ترقيم تلقائي بينما الجدول الآخر رقما عاديا غير قابل للتكرار هل ترى مشكلة في هذا الحل ؟
أبا عمر قام بنشر ديسمبر 18, 2012 الكاتب قام بنشر ديسمبر 18, 2012 نعم هناك مشكلة وهي أن جدول الدائمين له نموذج خاص بالادخال فيه مباشرة ، فهناك حالات يكون فيها التسجيل نهائي ومباشر بدون الحاجة الى التسجيل المبدئي ففي هذه الحالة كيف يكون الترقيم التلقائي لجدول الدائمين عند الإضافة فيه مباشرة. ملحوظة : التسجيل في جدول المبدئي يكون له أسباب هذه الأسباب تنتفي في بعض الأحيان ويكون لا داعي لتسجيله في المبدئي ثم نقله الى الدائمين مشكور أخي الكريم على سعة صدرك وتجاوبك الذي ينم على خلق كريم
ابوخليل قام بنشر ديسمبر 19, 2012 قام بنشر ديسمبر 19, 2012 وجدت لك الحل اجعل الترقيم في جدول delcat تلقائي وعند الالحاق الى جدول delcat لا تلحق الرقم ، الحق الاسم فقط ستلاحظ انه تم منح السجل رقما جديدا وفريدا ايضا
أبا عمر قام بنشر ديسمبر 19, 2012 الكاتب قام بنشر ديسمبر 19, 2012 حل ممتاز لكن لي إستفسار : 1-هل يكوم الجدول CATEGORIES يكون ترقيم تلقائي أم لا ؟ 2-ولو كنت أود جعل الرقم CATID رقم فريد للطالب يظل معه من التسجيل المبدئي وينتقل معه الى النهائي أي يتم البحث عن الطالب بهذا الرقم في كل مراحل البرنامج.
ابو ياسر قام بنشر ديسمبر 19, 2012 قام بنشر ديسمبر 19, 2012 حوار جميل حل ممتاز لكن لي إستفسار : 1-هل يكوم الجدول CATEGORIES يكون ترقيم تلقائي أم لا ؟ 2-ولو كنت أود جعل الرقم CATID رقم فريد للطالب يظل معه من التسجيل المبدئي وينتقل معه الى النهائي أي يتم البحث عن الطالب بهذا الرقم في كل مراحل البرنامج. على كذا لزوم ادخال الرقم المبدئي يدويا استخدم Dmax لاحضار اكبر رقم من الجدول البعيد ، ويمكنك بالكود ان تزيد عليه رقما ( +1 ) وتدخله آليا
أبا عمر قام بنشر ديسمبر 19, 2012 الكاتب قام بنشر ديسمبر 19, 2012 (معدل) مشكور أخي أبا ياسر على ردك سأحاول فعل ما تفضلت به وأوافيك بالنتائج لكن عند جعل الجدول البعيد ترقيم تلقائي سيكون هناك صعوبة في الإلحاق اليه من جدول المبدئي تم تعديل ديسمبر 19, 2012 بواسطه أبا عمر
ابوخليل قام بنشر ديسمبر 19, 2012 قام بنشر ديسمبر 19, 2012 لكن عند جعل الجدول البعيد ترقيم تلقائي سيكون هناك صعوبة في الإلحاق اليه من جدول المبدئي لو فرضنا امكانية ذلك وعدم الصعوبة فيبقى احتمال التكرار وارد , كيف ؟ قد يتم تسجيل اسم مبدئي بمعلومية اخر رقم ، ولكن الاحتمال وارد ان يتم ايضا تسجيل اسم دائم قبل الحاق الاول فيأخذ الرقم نفسه الحل : انت بحاجة الى عملية ترقيم واحدة تشمل الجدولين سأنظر لك في هذا ان شاء الله
أبا عمر قام بنشر ديسمبر 19, 2012 الكاتب قام بنشر ديسمبر 19, 2012 جزاك ربي خيرا أخي الحبيب وإن شاء الله سأنتظر ردك في المسألة
ابوخليل قام بنشر ديسمبر 19, 2012 قام بنشر ديسمبر 19, 2012 هل تريدها بواسطة الاستعلام ام عن طريق كود برمجي ؟
أبا عمر قام بنشر ديسمبر 19, 2012 الكاتب قام بنشر ديسمبر 19, 2012 (معدل) أو بالأحرى المناسب لوقتكم حتى لا أسبب لكم أي حرج وأعتذر مقدماً تم تعديل ديسمبر 19, 2012 بواسطه أبا عمر
ابوخليل قام بنشر ديسمبر 19, 2012 قام بنشر ديسمبر 19, 2012 'انسخ هذا في وحدة عامة Public Function NewcatID() As Long On Error GoTo NewcatID_Err Dim GORID As Long Dim DELID As Long Dim tmax As Long GORID = Nz(DMax("[catid]", "CATEGORIES")) DELID = Nz(DMax("[catid]", "DELCAT")) tmax = GORID If DELID > tmax Then tmax = DELID tmax = tmax + 1 NewcatID = tmax Exit_NewcatID: Exit Function NewcatID_Err: MsgBox "Error " & Err & ": " & Error$ Resume Exit_NewcatID End Function 'وفي حدث النقر على زر جديد الصق هذا ينطبق على النموذجين DoCmd.GoToRecord , , acNewRec Me![catID] = NewcatID()
أبا عمر قام بنشر ديسمبر 19, 2012 الكاتب قام بنشر ديسمبر 19, 2012 السلا م عليكم ورحمة الله وبركاته أخي الحبيب أشكرك شكراً لا يعلم مداه إلا _الله _عز وجل فجزاك _الله_خيرا أولا / الحل ممتاز وفوق الممتاز بارك_ الله_ فيك ثانيا / لي إستفسار يحمل في طياته سؤال لوحظ أنه عند الضغط على زر إضافة جديد مرة واحدة بعد وضع الكود به كما ذكرت يزيد الترقيم التلقائي وهذا ممتاز ، لكن إذا ضغط عليه المستخدم مرة ثانية بالخطأ مثلا قبل البدء في إدخال البيانات يقوم بإضافة سجل جديد وهكذا بإستمرار فهل من طريقة لمنع إضافة سجل جديد إلا بعد الإنتهاء من السجل الحالي
ابوخليل قام بنشر ديسمبر 21, 2012 قام بنشر ديسمبر 21, 2012 اقرب طريقة ان تجعل احد الحقول مطلوب وحينذاك لا يتم حفظ السجل الجديد الا بعد استيفاء البيانات
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.