اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

حساب عدد الاسابيع و عدد الاشهر من خلال وحدة نمطية


إذهب إلى أفضل إجابة Solved by أبو عبدالله الحلوانى,

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

تمام هو المطلوب  باقى أن يكون فى صف واحد

 

Untitled4.jpg

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

1 -   من تاريخ 1-1-1990 حتى 6-9-2016 حسابها اسبوعى

2 -   من تاريخ 7-9-2016 حتى 30-9-2020 تحسب بالشهر

3 -  من تاريخ 1-10-2020 الى تاريخ اليوم تحسب بالشهر كما الصورة بالاعلى 

وبداية التاريخ و نهايته من خلال date1 و date2

 

تم تعديل بواسطه محمد احمد لطفى
رابط هذا التعليق
شارك

24 دقائق مضت, محمد احمد لطفى said:

تمام هو المطلوب

الحمدلله الذى بنعمته تتم الصالحات ولكن هل نظرت لاخر شرط بعد التعديل السابق انه بقى 19 شهر مش 18

24 دقائق مضت, محمد احمد لطفى said:

باقى أن يكون فى صف واحد

كيف هذا وعلى اساس سيكونوا فى صف واحد ؟

25 دقائق مضت, محمد احمد لطفى said:

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

اكمل انت الفترات الاخرى فقد تركتها لك وعلى العموم هى نسخ ولصق وضبط التواريخ فالشروط بس

بالتوفيق

رابط هذا التعليق
شارك

بعد الرجوع لهذه المشاركه بالذات

في 24‏/4‏/2022 at 22:57, محمد احمد لطفى said:

شكراً أستاذى هذا ليس لحساب العمر

الحساب على 3 شرايح

الشريحة الاولى الفترة  ما بين تاريخ 1-1-1990 حتى 6-9-2016 يتم الحساب بينها بالاسبوع فى عمود الاسبوع
الشريحة الثانية ما بين من تاريخ 7-9-2016 حتى 30-9-2020 يتم الحساب بينها بالشهر فى عمود الشهر
الشريحة الثالثة مابين 1-10-2020 حتى تاريخ date2
-------------------------------------------------------------------------------------------------------------------------------------------------

لو date1 = 1-1-2016 

و date2 = 24/4/2022

1 -   اضافة عمود الاسبوع يحسب عدد الاسابيع من تاريخ 1-1-1990 حتى 6-9-2016

سوف يحسب من 1-1-2016 حتى 6-9-2016

1 - عمود الاسبوع = 36 أسبوع

2 - اضافة عمود شهر يحسب عدد الاشهر  من تاريخ 7-9-2016 حتى 30-9-2020

سوف يحسب من 7-9-2016 حتى 30-9-2020

2-عمود الشهر = 49 شهر 

3 -  اضافة عمود شهر 2 يحسب عدد الاشهر  أكبر من يوم 30-9-2020

سوف يحسب من 1-10-2020 حتى 24-4-2022
3 - عمود شهر 2 = 18 شهر

----------------------------------------------------------------------------------------------------------------------------------

لو date1 = 15-5-2015 

و date2 = 15-2-2016

1 -   اضافة عمود الاسبوع يحسب عدد الاسابيع من تاريخ 1-1-1990 حتى 6-9-2016

سوف يحسب من 15-5-2015 حتى 15-2-2016

1 - عمود الاسبوع = 40 أسبوع

2 - اضافة عمود شهر يحسب عدد الاشهر  من تاريخ 7-9-2016 حتى 30-9-2020

2-عمود الشهر = 0 شهر 

3 -  اضافة عمود شهر 2 يحسب عدد الاشهر  أكبر من يوم 30-9-2020
3 - عمود شهر 2 = 0 شهر

-------------------------------------------------------------------------------------------------------------------------------------------------

لو date1 = 1-1-2017 

و date2 = 24/4/2022

1 -   اضافة عمود الاسبوع يحسب عدد الاسابيع من تاريخ 1-1-1990 حتى 6-9-2016

1 - عمود الاسبوع = 0 أسبوع

2 - اضافة عمود شهر يحسب عدد الاشهر  من تاريخ 1-1-2017 حتى 30-9-2020

سوف يحسب من 1-1-2017 حتى 30-9-2020

2-عمود الشهر = 44 شهر 

3 -  اضافة عمود شهر 2 يحسب عدد الاشهر  أكبر من يوم 30-9-2020

سوف يحسب من 1-10-2020 حتى 24-4-2022
3 - عمود شهر 2 = 18 شهر

 

وكما قلت لك

1 ساعه مضت, احمد الفلاحجي said:

  ايه وجه العلاقه انت بتشيك على تاريخ وبتحسب على تاريخ

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

ثم ان ناتج المرفقه بالصوره الاخيره لك 88 غير صحيح والصحيح 352

DateDiff("ww", #1/1/2015#, #10/1/2021#)

بصراحه الامور اتلخبطت معايا واعذرنى لقله فهمى

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

بالتوفيق اخى محمد

  • Thanks 1
رابط هذا التعليق
شارك

عند حساب 1-1-2015 حتى 10-1-2021

1- من 1-1-2015 حتى 6-9-2016                 88 اسبوع 

2- من 7-9-2016 حتى 30-9-2020              48 شهر 

3- من 1-10-2020  حتى10-1-2021            3 اشهر

 

Function cheekDate(sDate As Date, eDate As Date, x As Byte)
    
    If sDate >= #1/1/1990# And eDate <= #9/6/2016# And x = 1 Then
        cheekDate = DateDiff("ww", sDate, eDate)
        
    ElseIf sDate >= #9/7/2016# And eDate <= #9/30/2020# And x = 2 Then
        cheekDate = DateDiff("m", sDate, eDate)
        
    ElseIf sDate >= #9/30/2020# And sDate <= Date And x = 3 Then
        cheekDate = DateDiff("m", sDate, eDate)
    End If
    
End Function

النتائج تمام و لكن يجب ان يكونو فى سطر واحد  عند 

date1 = 1-1-2015      و date2 = 10-1-2021               تكون    88 اسبوع          و 48 شهر   و 3 اشهر 

 

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

Untitled.jpg

 

ما بين تاريخ 1-1-1990 حتى 6-9-2016 يتم الحساب بينها بالاسبوع فى عمود الاسبوع

1-1-2015 حتى 6/9/2016    فقط 88 اسبوع وليس 1-1-2015 حتى 10-1-2021  352 اسبوع  لان حساب الاسابيع يتوقف عند 6-9-2016

تم تعديل بواسطه محمد احمد لطفى
رابط هذا التعليق
شارك

الموضوع ده كانت محسوبة فى استعلام 

اقتباس

 

Untitled5.jpg

لكى تصل الفكرة 

159.mdb

 

تم تعديل بواسطه محمد احمد لطفى
رابط هذا التعليق
شارك

15 ساعات مضت, محمد احمد لطفى said:

قراءة اخر مشاركتين :wavetowel:

اهلا اخى محمد

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

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

بالتوفيق

  • Thanks 1
رابط هذا التعليق
شارك

اخى محمد @محمد احمد لطفى

هذا المثال بالتواريخ الجديده للموضوع الحالى وبه المعادلات بالمثال الاخر بالموضوع القديم لاخى واستاذى محمد جزاه الله خيرا

ارجو منك ضبط التواريخ فى اخر عمودين ع التواريخ الجديده حتى يسهل على النظر فيهم والعمل عليهم ان شاء الله سواء منى اوى من اخوتنا واساتذتنا جزاهم الله خيرا

weekx3: IIf([DATE2]<=#30/08/2016#;DateDiff("w";[DATE1];[DATE2]);IIf([DATE1]<=#30/08/2016#;DateDiff("w";[DATE1];#30/08/2016#);0))

Monthx3: IIf([DATE2]<=#30/08/2016#;0;IIf([DATE1]>=#01/09/2016#;DateDiff("m";[DATE1];[DATE2]);DateDiff("m";#01/09/2016#;[DATE2])))

بالتوفيق

ضريبة _4.mdb

  • Thanks 1
رابط هذا التعليق
شارك

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

جرب هذا المرفق ووافنا بالنتائج

شرح الدالة داخلها

 

Database1.rar

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

شكرأ أستاذى @أبو عبدالله الحلوانى

يوجد خطأ عند حساب الشريحة الثالثة  يظهر -1 فى الشريحة الثانية 
 

Untitled6.jpg

 

وهل يمكن استخدامها فى الاستعلام  هكذا

Untitled.jpg.aa1b03fdf0d2f41d85d9df9731ae3ce7.jpg

تم تعديل بواسطه محمد احمد لطفى
رابط هذا التعليق
شارك

3 ساعات مضت, محمد احمد لطفى said:

يوجد خطأ عند حساب الشريحة الثالثة  يظهر -1 فى الشريحة الثانية

جرب هذا التعديل ووافنا بالنتائج

تم اضافة البيانات الي الجدول ومن ثم الي الاستعلام

 

Database1.rar

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

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

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

بالنسبه لاخى محمد @محمد احمد لطفى

في 27‏/4‏/2022 at 21:52, محمد احمد لطفى said:

أريد أن انوه انها ليست مظبوطة 100 % بها أخطاء

Untitled.jpg

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

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

بالتوفيق اخوانى

  • Thanks 2
رابط هذا التعليق
شارك

للتذكرة 

لدينا تاريخين فى الاستعلام date1 و date2 نريد حساب عدد الاسابيع و الشهور بينهما ولكن بشروط .

أولا من تاريخ 1-1-1990 حتى مثلا 1-1-2050 تنقسم الى ثلاث شرايح

 

1 - الشريحة الاولى الفترة  ما بين تاريخ 1-1-1990 حتى 6-9-2016 يتم الحساب بينها بالاسبوع فى عمود منفصل يسمى الاسبوع

2 - الشريحة الثانية ما بين تاريخ 7-9-2016 حتى 30-9-2020 يتم الحساب بينها بالشهر فى عمود يسمى  الشهر 1

3 - الشريحة الثالثة مابين 1-10-2020 حتى 1-1-2050 يتم الحساب بينها بالشهر فى عمود يسمى  الشهر 2

ثانيا عن طريق وحدة نمطية

و هناك حلان 

أ - حل الاستاذ احمد الفلاحجى ولكنه كل شريحه فى سطر وأنا اريد الحل فى سطر واحد

 

ب - حل الاستاذ أبو عبدالله الحلوانى ولكنه عن طريق نموذج وليس استعلام

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

احمد الفلاحجى.mdb أبو عبدالله الحلوانى.accdb

رابط هذا التعليق
شارك

السلام عليكم

اخى محمد @محمد احمد لطفى كل عام وانت طيب عيدك مبارك ولا يكون خاطرك الا طيب

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

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

Table1
FromDate1 ToDate2 Weeks Month1 Month2 Descrp
01/10/2020 10/01/2021 0 0 3 عدد الشرائح 1
qry
FromDate1 ToDate2 qw qm qm1
01/10/2020 10/01/2021 0 -1 3

ولا اعلم اين المشكله حاليا لعل اخى واستاذى العزيز محمد الحلوانى يطلع عليها ويفيدك

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

Database2.accdb

  • Thanks 1
رابط هذا التعليق
شارك

شكراً @احمد الفلاحجيجزاك الله خيراً و ننتظر أستاذ @أبو عبدالله الحلوانىلحل مشكلة -1 

لى زميل عمل على مثالك أستاذ أحمد و لكن به خطأ فى شهر 9-2016

finish (1).mdb

  • Thanks 1
رابط هذا التعليق
شارك

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

طيب وضحلى الخطا فين وطريقه الحساب والنواتج الصحيحه وسوف اقوم بالمراجعه بالمساء ان شاء الله بعد الانتهاء من بعض الاعمال

بالتوفيق

  • Thanks 1
رابط هذا التعليق
شارك

2 ساعات مضت, محمد احمد لطفى said:

المشكلة فى اخر مثالين شهر 9-2016 بيحسب لحد 6-9-2016 اسبوع و ده تمام

و المفروض من 7-9-2016 الى 30-9-2016 يحسب شهر و لا أنا غلطان

Untitled6.jpg

بالتاكيد غلطان اخى محمد 🙂 لانها صفر

?DateDiff("m"; #9-7-2016#;#9-30-2016#)

جرب المعادله السابقه فى استعلام وشوف هيعطيك 1 ولا 0

بالتوفيق اخى

  • Thanks 2
رابط هذا التعليق
شارك

  • أفضل إجابة
في 4‏/5‏/2022 at 00:24, احمد الفلاحجي said:

بالتاكيد غلطان اخى محمد 🙂 لانها صفر

وانا كذلك اوافق اخي واستاذي @احمد الفلاحجي 

الفرق بين 7-9 الي 30-9 سيتم حسابه بالشهور بالتأكيد ولكن تلك الفترة لم تكتمل 30 يوم لذلك لم يتم حسابها شهرا كاملا حسب المعادلة وحسب العرف:yes:  فالفترة عبارة عن 23 يوم فقط جرب زيادة 7 ايام لشهر 10 وستجد ان الناتج اصبح 88 اسبوع و 1 شهر.

في 28‏/4‏/2022 at 22:49, محمد احمد لطفى said:

بس ياريت تشتغل فى الاستعلام على طول

جرب هذا المرفق قمت بالتعديل علي الدالة واصبحت الآن تعمل داخل الاستعلام بدون وسيط

وابقيت علي الدالة القديمة لتري الفرق جرب ووافنا بالنتائج

 

Database1.rar

  • Like 1
  • Thanks 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