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

كيف اعمل ترقيم تلقائي يبد! من 00001 لكل سنة جديدة

مغلق
بدأه رامي في 10 أبريل 2004 · 12 رد · 2,020 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

مطلوب

كيفية عمل ترقيم تلقائي بالشكل التالي

00001/25

حيث 25 هي رقم السنة الهجرية

بمعني الرقم التالي لنفس السنة سوف يكون 00002/25

وهكذا

اما في حالة السنة الجديدة مثلا سنة 26 بالهجري

فانا الترقيم يبدا من جديد على الشكل التالي

00001/26

امل منكم مساعدتي

وشكرلكم

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#2

تفضل اخي رامي

_____________________________.rar

لكم مني خالص التقدير

*********************

دروس الاكسس

قاعدة بيانات بالسي++

قاعدة بيانات اخرى بالسي++

الفريق العربي للبرمجه

*********************

كان الله في عون العبد مادام العبد في عون اخيه

#3

لألاسف اخي العزيز سحاب

يبدو انو البرنامج غير مضبوط

لانو عندما تغيرت السنة الى سنة جديدة

فان الترقيم لايبدا من جديد وانما يستمر

ثم انني اريد الترقيم على الشكل التالي

00001/25

00002/25

00003/25

وهكذا

وفي حالة سنة جديدة

فانة يبدا من جديد

يعني سنة 26 هجرية

00001/26

00002/26

00003/26

وهكذا

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#4

يعطيك العافية يا سحاب

انا برضه استفدت من الموضوع ولكن لم افهم كيفية وضع الترقيم

لاني دخلت على خصائص الجدول وليس هناك جديد

الشرح مطلوب وكيفية عمله مطلوبه

فضلاً لا امرا

اشرح لنا الطريقة

#5

أدخل وشاهد الكود لعلك تستفيد منه

لكم مني خالص التقدير

*********************

دروس الاكسس

قاعدة بيانات بالسي++

قاعدة بيانات اخرى بالسي++

الفريق العربي للبرمجه

*********************

كان الله في عون العبد مادام العبد في عون اخيه

#6

ماردبت عيى اخر استفسار يا اخ سحاب

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#7

تحية طيبة :

أتمنى أنا يكون هذا هو مرادك...:)

على اعتبار أن tbl_Invoice هو اسم الجدول و nInvID هو و dInvDate هو حقل تاريخ صدور الفاتورة ،ففكرة المثال انه يحول التواريخ الموجوده في الجدول الى تواريخ بصيغة السنة فقط ويقارنها مع السنة الحالية عن طريق الدالة year(Date) , ومن ثم يقارن الناتج : فاذا كانت عدد السجلات اقل من 1 يعني ان السجل الاول سيأخذ القيمة 200400001 بناءا على الفورمات V1 = Format(V1, Year(Date) & "00000") واذا كان العدد اكبر من 1 فسيأخذ القيمة الاخيرة المخزنة اصلا ويضيف عليها بدون وضع فورمات للسنة .

Private Sub Form_BeforeUpdate(Cancel As Integer) 

    If Me.NewRecord Then
 V1 = Nz(DMax("[nInvID]", "[tbl_Invoice]", "YEAR(dInvDate)= year(date())"))  + 1
If (Nz(DCount("[nInvID]", "[tbl_Invoice]", "YEAR(dInvDate)= year(date())")) < 1) Then
       V1 = Format(V1, Year(Date) & "00000")
Else
      V1 = Format(V1, "000000000")
End If
     nInvId.Value = V1
End If
End Sub

ما عليك الا ان تعدل التاريخ من ميلادي لهجري :)أي انه اصبح لدينا عداد بناءا على السنة ويكون تلقائيا

ولا تنسوا وضع الكود ايضا عند حث ما قبل تعديل الفورم ليتأكد ان الرقم لم يأخذ من قبل شخص اخر

تم تعديل هذه المشاركة بواسطة NiceyFriend في 13 أبريل 2004 في 17:36

#8

اخي العزيز

المثال المرفق عن طريق الأستعلام ويمكن ان يكون سهلا، ارجو ان تسفيد

AccDate.zip

#9

تفضل هذا مثال من الاستاذ / شاكر الزين ،،،، قمت بتعديل القناع كي يتوافق مع

متطلباتك على أن يكن هكذا ( 00001/25 ) مثلا

قناع يتجدد كل سنة-97.zip

المسلم من سلم الناس من لسانه ويده

#11

شكر لكم يجميعا

الصراحة مشاركتم الفعالة بالموضوع اسعدتني كثيرا

وهذه دلالة على روعة هذا المنتدى

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#12

حياك الله أخ رامي عسى بس الطريقة نفعت معاك

إن شاء الله تستفيد منها

المسلم من سلم الناس من لسانه ويده

#13

شكرا لكل الردود القيمة

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

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

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

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

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

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