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

ترقيم تلقائي هدية الى اعضاء المنتدى بدون استخدام (AutoNumber)

بدأه frman في 31 مارس 2010 · 19 رد · 2,818 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

في مجموعة مشاركات طلب اعضاء المنتدى كود لترقيم تلقائية . لاول مرة و لاول مشاركة بدون طلب :wink: ، هدية اليكم كود لترقيم تلقائي . اذا حذفت ريكورد مابها غلط لترقيم

في (Form) :

Me.ID.Value = currentrecord

في التقرير :

=currentrecord

مثال : ترقيم تلقائي.rar

اشكركم .

اخوكم فرمان

2
#2

الاخ frman

تحيه عطره

هديه مقبوله

وبارك الله فيك وجعلها ربي في موازين حسناتكم

تم تعديل هذه المشاركة بواسطة roan27 في 31 مارس 2010 في 23:07

نقول الى الغاليه

أم عهود زهرة الأكسيس بدون منافس

للنجاحات أناس يقدرون معناها ، وللإبداع أناس يحصدونه

لذا نقدّر جهودك وابداعك، فأنتِ أهل للشكر والتقدير ..

فلكِ منا كل الثناء والتقدير

#3

الاخ الكريم فرمان

هدية كريمة من اخ كريم

و لكن لى مداخلة بسيطة هل يمكن اعادة النظر فيها

عند تكرار الــــــ ID يتم تحديث التصحيح بالنقر على حقل حقل الخاص بالرقم

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

اشكرك للمرة الثانية

اذا لم تخطط للنجاح , فقد خططت للفشل

#4
aminyousif كتب:

الاخ الكريم فرمان

هدية كريمة من اخ كريم

و لكن لى مداخلة بسيطة هل يمكن اعادة النظر فيها

عند تكرار الــــــ ID يتم تحديث التصحيح بالنقر على حقل حقل الخاص بالرقم

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

اشكرك للمرة الثانية

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

مثال جميل أخي الكريم ولو تسمح لي بعد أذنك طبعا بتعديل بسيط جدا لا يكاد يقلل من أهمية ما طرحت ..ولك مني +1

التعديل الاول تم تغيير الاسم name الى nname حتى لا يعطينا مشاكل بالكود لان الاسم name يستخدمه النظام في أوامره ويفضل اسم آخر ..

التعديل الثاني حاول بعد ادخال الاسم عمل undo عدد (2) مرة ولاحظ انك ستفقد الترقيم وتم معالجة ذلك بوضع الامر

Me.ID.Value = currentrecord

بعد تحديث الاسم ..

التعديل الثالث حسب طلب الأخ الفاضل أمين يوسف وذلك عند الغاء رقم ونريد اعادة ترتيب الارقام من جديد ..

تقبل احترامي وتقديري ودمت بخير وبارك الله بك ..

أخوك أبو عدنان ..

ترقيم تلقائي.rar

تم تعديل هذه المشاركة بواسطة moh samer ali في 1 أبريل 2010 في 09:04

27169617.gif
#5

الاخ الكريم ابو عدنان

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

اقتباس
التعديل الثالث حسب طلب الأخ الفاضل أمين يوسف وذلك عند الغاء رقم ونريد اعادة ترتيب الارقام من جديد ..

تقبل احترامي وتقديري ودمت بخير وبارك الله بك ..

أخوك أبو عدنان

يامعلم بالراحة علية شوية

اقتباس
Forms![Table1].Requery

Dim ff As Integer

ff = NEX - 2

Forms![Table1].Requery

NN = 0

DoCmd.GoToRecord , , acFirst

DoCmd.GoToRecord , , acNext

ST:

NN = NN + 1

If NN > ff Then

GoTo en

Else

DoCmd.GoToRecord , , acNext

GoTo ST

End If

en:

Forms![Table1].Requery

الشرح لكل خطوة و لو امكن اعرب ما بداخل النص

محتاج افهم اوى حتى يمكن الاستفادة

مع خالص تقديرى و احترام و شكرى

اخوك امين يوسف

تم تعديل هذه المشاركة بواسطة aminyousif في 1 أبريل 2010 في 11:56

اذا لم تخطط للنجاح , فقد خططت للفشل

#6
aminyousif كتب:

الاخ الكريم ابو عدنان

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

يامعلم بالراحة علية شوية

الشرح لكل خطوة و لو امكن اعرب ما بداخل النص

محتاج افهم اوى حتى يمكن الاستفادة

مع خالص تقديرى و احترام و شكرى

اخوك امين يوسف

حياك الله أخي أمين يوسف وحاضرين بسم يعني لازم تورطني :blush: ..

أخي الكريم سنبدأ بشرح الكود وبعد تعريف مربع النص المسمى NEX ... لحظة يا ابو عدنان الله يخليك حبة حبه .... حاضر من الاول :blink:

بالمثال المرفق هناك كود او أمر على هذا الشكل :

Me.ID.Value = CurrentRecord

حيث ID اسم الحقل المراد ترقيمه ، اما الامر CurrentRecord بصراحة اول مرة اجربه ويبدو انه ومن الواقع يأتي برقم متسلسل من الجدول المسمسى Table1..عن طريق الحقل ID .

وهناك طرق كثيرة للترقيم ، هذه واحدة منها ضع في القيمة الافتراضية لمربع النص بالنموذج والمسمى هنا ID هذا الامر :

DMax("[ID]";"[Table1]")+1

نفس مثال المشاركة حيث Table1 هو اسم الجدول و ID اسم الحقل المراد ترقيمه و+1 لاضافة رقم الى أكبر رقم موجود في الجدول وحصلنا عليه بواسطة الامر DMax ماشي أخي يوسف ؟ طيب نتابع ..

نأتي الآن الى الكود :

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
   DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Forms![Table1].Requery
Dim ff As Integer
    ff = NEX - 2
    Forms![Table1].Requery
    NN = 0
    DoCmd.GoToRecord , , acFirst
    DoCmd.GoToRecord , , acNext
ST:
    NN = NN + 1
    If NN > ff Then
    GoTo en
    Else
    DoCmd.GoToRecord , , acNext
    GoTo ST
    End If
en:
    Forms![Table1].Requery

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

هذا الامر

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

هذا الامر ليس من عندي وانا اضفت من بعده ولكن هذا الامر لألغاء السجل الحالي .

وهذا الامر

Forms![Table1].Requery

لعمل تنشيط للنموذج الحالي بعد الغاء سجل منه ، بمعنى آخر هنا مصدر سجلات النموذج من الجدول Table1 والامر السابق ليأتينا بآخر ما لديه من سجلات معدلة او مضافة أو ملغية كما في حالتنا هذه .. ماشي أخي الكريم ..

اعلنا عن متغير اسمه ff وظيفته تخزين عدد مرات تكرار قراءة السجلات .

Dim ff As Intege

وسنستخدمه بعد السجلات كما سيأتي .

اما NEX فهو مربع نص انشأناه بالنموذج لعد السجلات قلنا في مصدر بياناته هذا الامر

=Count(*)

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

ff = NEX - 2

عدد السجلات يساوي عدد السجلات ناقص عدد (2) سجل لماذا ؟ لاننا لا نريد حساب السجل الاول والسجل الآخير .. لزوم العد ..

المطلوب الآن الوقوف بشكل سريع على كل سجل من سجلات النموذج وسنبدأ من السجل الاول انتهاء بالسجل الأخير وطبعا عند الوقوف عند كل سجل سوف يعمل الأمر :

Me.ID.Value = CurrentRecord

الموجود اصلا في النموذج وعند الاجراء المسمى عند الحالي أي يعني عند الوقوف على أي سجل نفذ الكود السابق .. ماشي عمي راح علينا الغدا .. :)

nn = 0
    DoCmd.GoToRecord , , acFirst
    DoCmd.GoToRecord , , acNext

NN سنستخدمه لمعرفة عدد السجلات المنجزة وقيمته صفر الآن.

طلبنا بالامر الاول التمركز على السجل الاول وفي الامر الثاني البدء بتحريك النموذج الى السجل التالي .

الامر التالي

ST:
    nn = nn + 1
    If nn > ff Then
    GoTo en

ST: هو اسم فقرة نستخدمها للتجوال داخل الاجراء .

هنا نعد السجلات بواسط هذا الاجراء البسيط وعند الانتهاء تكون العملية انتهت ويمكن استخدام هذا الامر لانهاء الاجراء :

Exit Sub

ليصبح الكود هكذا :

ST:
    nn = nn + 1
    If nn > ff Then
    Exit Sub

الكود التالي

Else
    DoCmd.GoToRecord , , acNext
    GoTo ST
    End If

هنا اذا لم تنتهي السجلات سنوجه الكود الى اسم الفقرة ST لإعادة الكرة وسوف يقوم بعملية قراءة السجل التالي ويقف عنده لتنفيذ امر الترقيم وهكذا لانتهاء السجلات ..

لاحظ الكود ومدى سهولته وارجو ان اكون وفقت بالشرح وطبعا الجماعة قد أجهزو على الغداء والعوض على الله ... :)

وبالتوفيق أخي أمين ..

تم تعديل هذه المشاركة بواسطة moh samer ali في 1 أبريل 2010 في 14:21

4
27169617.gif
#7

بارك الله فيك أخي أبو عدنان ،

شكراً جزيلاً على الشرح القيّم ،

وبالنسبة للغداء / لا تزعل ، سيعوضك الله به حسنات وحسنات وحسنات كثيرة يوم القيامة إن شاء الله تعالى ، على فكرة ، أنا ولا يوم أتيت ولحقت بالغداء :) وإن وجد الغداء يكون بارداً :) أو أشتري جاهز :)

بارك الله فيك أخي أبو عدنان وجزاك الله كل خير ،

تقبل مني أجمل التحيات +1

post-12787-12741339659298.jpg

ومامن يد إلا يد الله فوقها *** وما من ظالم إلا سيبلى بأظلم

تفضل أخي الكريم | موسوعة الحميدي الذهبية | بأجزائها الثلاثة مع هدية الموسوعة .

#8

اخى العزيز ايو عدنان

عذرا على وجية الغذاء

عوضك الله عنها خيرا فى ميزان حسناتك

و ليتقبل الله منى خالص الدعاء لك بالخير و الصحة

اشكرك اخى الكريم ابو عدنان

تم تعديل هذه المشاركة بواسطة aminyousif في 1 أبريل 2010 في 14:59

اذا لم تخطط للنجاح , فقد خططت للفشل

#9

اخي / ابو عدنان

جزاك الله خير وبارك الله فيك شرح موفق من اخ موفق مبدع

جعله الله في ميزان حسناتك ولك +1

#10

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

أخي العزيز أمين بارك الله بك على هذا الدعاء الجميل ولك مثله ان شاء الله ..

هلا بأخي العزيز أبو شادي قد اسعدني مروركم العطر بارك الله بك وأرجو أن لا تحرمنا من مشاركاتك القيمة ..

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

تقبلوا تحياتي ...

تم تعديل هذه المشاركة بواسطة moh samer ali في 2 أبريل 2010 في 00:45

27169617.gif
#11

الاخ / الفاضل frman

والله اني اسف جدا لك

لأني قد أغفلت ان اقدم لك كل الشكر والتقدير على هديتك الرائعة

جزاك الله خيرا وبارك الله فيك

والذي ذكرني هو الاستاذ الاخ الجميل / ابو عدنان جزاه الله خيرا حينما قال " الحقيقة الذي يجب أن يشكر هو الأخ الكريم FRMAN "

اسف اسف لهذا ارجو ان تقبل اسفي فأنا لا أحب انكار مجهود اي احد

كما ارجو منك المزيد من مثل هذه الهدايا في القريب ان شاء الله

اخيك ابو شادي

#12

أخي frman هديتك قيمة ، بارك الله فيك (+1)

أخي moh samer ali شرح ممتاز ورائع ، وفقك الله (+1)

تحياتي ،،،

1
#13

اشكر لجميع مشاركاتكم و تحياتكم . شكرا

#14

افكار جميلة ورائعة منكم جميعا نستفي ونتعلم

تحياتي

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#15

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

كما اشكر استاذنا ومشرفنا الغالي همام على هذا الاهتمام ايضا وهذا مو غريب عليه فنحن تعلمنا منكم الكثير فجزاكم الله كل خير ...

واتوجه بتحية خاصة للاخ الفاضل frman على تفضله بهذا المثال الجميل ..

تقبلوا جميعا تحياتي ...

أخوكم أبو عدنان ...

27169617.gif
#16

ماشاء الله مثال رائع وتعديلات جميله وشرح ممتاز بارك الله فيكم وجعلكم عونا لكل طالب يعجبنى فى هذا المنتدى روح المحبه ونشر العلم

#17

اعتقد ان هذه الطريقه التي في الرابط اسهل وادق

/index.php?showtopic=225563

لاحظ المشاركة التي كتبها الاخ

mrnooo2000

#18

لكم اجمل تحية اعزائي

بس سؤال...هل ممكن استخدام هذا النوع من الترقيم في بيئة الشبكة؟؟

بحيث كل مستخدم له رقم تسلسلي مختلف عن الاخر...مثل الترقيم التلقائي العادي

ولكم الشكر

#19

مشكور اخي كنت ابحث عن هذا الكود في منتديات اخرى وهاقد وجدته لديك

جعله الله في ميزان حسناتك وموفق

#20

جزالك الله الف خير اخواني

في عندي موضوع خاصة بالترقيم التلقائي عرضته في هذا المنتدى الموقر بس لم اجد جواب

ممكن التكرم مشكورا ومعاينة الرابط ادناه

ولكم خالص شكري

/index.php?showtopic=227878

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…