اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

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

السادة الأعضاء الأفاضل ..بحثت في المنتدي لكني لم اوفق في التواصل للمطلوب

اريد ترقيم شهري يتغير بتغير الشهر بهذه الصيغة

2020/08/001

001 هو الترقيم

2020/08 وهذا هو الشعر والسنة

جربت بعض  الاكواد وألامثلة ولكن لم اصل للمطلوب

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

قام بنشر
في ٢٧‏/٨‏/٢٠٢٠ at 19:20, طاهر الوليدي said:

ممكن تستفيد من المرففترقيم حسب الشهر.mdb

وتطوره فيه بعض الاخطاء ممكن تصححها وترسلها نستفيذمنها

 

ترقيم حسب الشهر.mdb 320 kB · 3 تنزيلات الترقيم حسب الشهر والسنة.rar 20.42 kB · 6 تنزيلات

للاسف جربتها كلها ولم تفلح في ما اريد

اريد كود ترقيم شهري بهذه الصيغة

2020/08/001

001 هو الترقيم

2020/08 وهذا هو الشهر والسنة

ويتغير بتغير الشهر تلقائيا

اتمني اجد ما أريده

قام بنشر

السلام عليكم اخى @محمد سلامة

مشاركه مع الاخ طاهر جزاه الله خيرا

اتفضل استاذ محمد هذا المثال حاجه على قدى لعله يفى بالغرض

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

sYM = DCount("dDate", "tblNum", "(year([ddate]) & month([ddate]))='" & Format(Me.dDate, "yyyym") & "'") + 1

Me.IdYM = Format(Me.dDate, "yyyy/mm") & "/" & Format(sYM, "000")

m.png.2c8fb0667aabcf52c2593ad4d6c666cf.png

بالتوفيق

 

New.accdb

  • Like 2
قام بنشر
2 ساعات مضت, الفلاحجى said:

اتفضل استاذ محمد هذا المثال

 

هنا ملاحظة من الاستاذ المحاسب عبدالله قدور ، لما استعملت Dcount 🙂 

 

جعفر

  • Like 1
  • Thanks 1
قام بنشر (معدل)

جزاك الله خيرا استاذ احمد الفلاحجي وبارك الله فيك

5 ساعات مضت, الفلاحجى said:

اتفضل استاذ محمد هذا المثال حاجه على قدى لعله يفى بالغرض

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


sYM = DCount("dDate", "tblNum", "(year([ddate]) & month([ddate]))='" & Format(Me.dDate, "yyyym") & "'") + 1

Me.IdYM = Format(Me.dDate, "yyyy/mm") & "/" & Format(sYM, "000")

 

استاذ جعفر جزاك الله خيرا معلوكة وملحوظة جيدة جدا

2 ساعات مضت, jjafferr said:

هنا ملاحظة من الاستاذ المحاسب عبدالله قدور ، لما استعملت Dcount 

=================================================

وقد نسخة المعلومة هنا ليستفيد منها الاعضاء  مستقبلاً

================================================

وعليكم السلام أخي عبدالله  :smile:

 

انا في اعتقادي Dcount أفضل ، لهذه الاسباب:

 

1. لسنا بحاجة الى الامر NZ لأول رقم ،

2. اذا لأي سبب تم حذف سجل في منتصف السجلات ، فـ Dmax سيعطيك الرقم الاكبر التالي ، مما يعني انك لن تعرف ان هناك رقم ناقص/تم حذفه من المنتصف ، ويصبح التسلسل غير صحيح (إلا اذا كان هذا غير مهم ، فهنا Dmax أفضل) ،

بينما في Dcount ، فممكن معرفة اذا تم حذف سجل بسهولة ، حيث ان الرقم الاخير الموجود سوف يتكرر (طبعا هذا سيطلب تدخل المبرمج لحل هذه النقطة) ، ونستطيع ان نعمل كود للتأكد بأن الرقم غير متكرر ، مما سيعطينا اشعار بذلك ،

3. Dmax يقرأ بيان الحقل ، بينما Dcount يحسب السجلات ، لهذا  Dcount اسرع في التنفيذ   :smile:

 

ولكن في نهاية الامر ، كل الطرق تؤدي الى روما ، والخيار للذي ترتاح له  :smile:

 

تم تعديل بواسطه jjafferr
تم تظليل المادة 2 لتكون واضحة
قام بنشر

شكرا لك اخي محمد ، ولكن الاستاذ عبدالله يقول استعمل DMax ولا تستعمل DCount ، للسبب رقم 2 في ملاحظتي اعلاه 🙂 

 

جعفر

  • Like 2
قام بنشر
9 دقائق مضت, jjafferr said:

شكرا لك اخي محمد ، ولكن الاستاذ عبدالله يقول استعمل DMax ولا تستعمل DCount ، للسبب رقم 2 في ملاحظتي اعلاه 🙂 

 

جعفر

اشكرك استاذ جعفر علي المتابعة @jjafferr

فعلا .. وانا اريد إستعمال dmax  لأنها تناسب البرنامج الذي اعمل علي تنفيذه الان ..

واحاول تعديل مثال استاذ الفلاحجي باستبدال Dcount بي Dmax 

ولكن لم يفلح التعديل 

 

 

 

قام بنشر

جزاك الله خيرا اخى واستاذنا الجليل @jjafferr على هذا الرابط والمعلومات القيمه جعلها الله فى موازين حسناتكم

وفيك بارك الله اخى @محمد سلامة

سوف احاول العمل عالتعديل وان شاء الله احد اخواننا واساتذتنا يساعد معنا

  • أفضل إجابة
قام بنشر

اخى الفاضل @محمد سلامة

جرب التعديل التالى ووافنى بالنتيجه وارجو الاطلاع من اخى ومعلمنا العزيز @jjafferr

dl = Nz(DMax("idym", "tblNum", "(year([ddate]) & month([ddate]))='" & Format(Me.dDate, "yyyym") & "'"), 0)

rd = Right([dl], Len([dl]) - InStrRev([dl], "/")) + 1

Me.IdYM = Format(Me.dDate, "yyyy/mm") & "/" & Format(rd, "000")

 

New - 1.accdb

  • Like 1
قام بنشر

ممكن تختصرها الى :

dl = Nz(DMax("idym", "tblNum", "(year([ddate]) & month([ddate]))='" & Format(Me.dDate, "yyyym") & "'"), 0)

rd = int(Right([dl],3)) + 1

Me.IdYM = Format(Me.dDate, "yyyy/mm") & "/" & Format(rd, "000")

 

ولكن تذكر ، انك تأخذ التاريخ من الحقل الآخر ، وليس من نفس الحقل الذي فيه الرقم.

 

جعفر

  • Like 1
  • Thanks 1
  • 2 weeks later...
قام بنشر
18 دقائق مضت, jo_2010 said:

شكرا على الاجابة التى افادتنى كثيرا

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

بالتوفيق

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information