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

إرجاع تاريخ الى أول الايام


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

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

طريقة إرجاع التاريخ الى أول الشهر  كما هو المثال

عندي تاريخ 2019/09/15 يصبح 2019/09/01

واذا كان 2019/09/16 يصبح 2019/10/01 

اي نص الشهر الاول يرجع الى اول الشهر  واذا دخل نصف الشهر الثاني يرجع الى اول الشهر الموالي 

شكرا جزيلا

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

جميل جدا يا @ابا جودى كما هي حلولك المبتكره دائما

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

اولا قمنا باضافة مربع نص غير منظم لاستخلاص عدد الايام من التاريخ المدخل ووضعنا قيمة الحقل

=Day([txtDate])

ثم في حقل التاريخ الجديد وضعنا القيمة التاليه

=IIf(IsNull([نص8]);"";Switch([نص8] Between 1 And 15;"01" & "/" & Format([txtDate];"mm/yyyy");[نص8] Between 16 And 31;"01" & "/" & Format([txtDate];"mm")+1 & Format([txtDate];"/yyyy")))

الملف مرفق وتقبلوا خالص مودتي وتقديري

إرجاع تاريخ.accdb

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

بل اسمح لى سيدى انا اتعلم انا على يديكم :fff:

جزاكم الله خيـــرا على متابعتكم وطرحكم المميز دائما

ومن فضلك طالما انك تطرقت الى تلك الطريقة فلتوضح عمل الدالة Switch :biggrin:  حتى اتعلم 

انا لم افهم قصدك يا حبذا لو توضح اكثر وتضع لنا مرفق التطبيق :wavetowel:

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

اخي الحبيب @ابا جودى

دالة Switch هي دالة تستخدم في العديد من لغات البرمجة ووضيفتها إختبار قيمة متغير ضمن لائحة من الإحتمالات نقوم بكتابتها

و إذا تساوت هذه القيمة مع أي إحتمال ستتنفذ الأوامر التي وضعناها في هذا الإحتمال فقط

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

Switch([نص8] Between 1 And 15

 

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

كل الشـــكر والتقدير أستاذى الجليل واخى الحبيب الاستاذ @kha9009lid :fff:

يعنى ممكن نسهل الموضوع شوية ونقول انها تشبه دالة Replace  ولكن الجميل انها تكتب مرة واحدة فقط :biggrin::wink2:

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

Function RD(MyDate As String)

    Dim SmallerThan   As String
    Dim GreaterThan   As String
    Dim MyDay         As Integer
    
    MyDay = Day(MyDate) 'extract the day from a specific date
    
    'treatment of date to be returned on the day it was extracted
    SmallerThan = "01" & "/" & Format(MyDate, "mm/yyyy")
    GreaterThan = "01" & "/" & Format(MyDate, "mm") + 1 & Format(MyDate, "/yyyy")
    
    RD = Switch(MyDay <= 15, SmallerThan, MyDay > 15, GreaterThan)

End Function

وننادى عليه بكل زوايا البرنامج مع مراعاة تغيير xx باسم حقل التاريخ :wink2:

RD([xx])

 

 

الاستاذ والاخ الحبيب @مرحبا البي جرب المرفق التالى واخبرنى بالنتيحة:fff:

 

 

إرجاع تاريخ.accdb

تم تعديل بواسطه ابا جودى
  • Like 1
رابط هذا التعليق
شارك

بل من الممكن ان نقول انها الشقيقة لكل من

IIf . Choose

وهي توأم IIF ولكن iif ترجع اختيار واحد من اختيارين واذا اردنا اكثر من اختيار نعيد كتابتها مرة اخرى في خانة عدم تحقق الشرط لنحصل على اختيارين اضافية وهكذا وبالتالي استخدام  Switch افضل واسهل

بخصوص مثال اخر ابشر اخي العزيز انا حاليا اعمل على مثال يحتوي على 35 دالة وطريقة استخدامها في الاكواد وفي منشئ التعبير وبشروط مختلفة  لعلي انتهي منه قريبا

الملف موجه للمبتدئين وليس للاخبراء امثالكم استاذي واخي الحبيب

 

41 دقائق مضت, ابا جودى said:

كل الشـــكر والتقدير أستاذى الجليل واخى الحبيب الاستاذ @kha9009lid :fff:

يعنى ممكن نسهل الموضوع شوية ونقول انها تشبه دالة Replace  ولكن الجميل انها تكتب مرة واحدة فقط :biggrin::wink2:

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


Function RD(MyDate As String)

    Dim SmallerThan   As String
    Dim GreaterThan   As String
    Dim MyDay         As Integer
    
    MyDay = Day(MyDate) 'extract the day from a specific date
    
    'treatment of date to be returned on the day it was extracted
    SmallerThan = "01" & "/" & Format(MyDate, "mm/yyyy")
    GreaterThan = "01" & "/" & Format(MyDate, "mm") + 1 & Format(MyDate, "/yyyy")
    
    RD = Switch(MyDay <= 15, SmallerThan, MyDay > 15, GreaterThan)

End Function

وننادى عليه بكل زوايا البرنامج مع مراعاة تغيير xx باسم حقل التاريخ :wink2:


RD([xx])

 

 

 

 

لن نستطيع ان نجاريك يا ابا جودي بل انت المعلم ومروض اكسس

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

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

  • اما بخصوص القاعدة التى تحدثتم عنها فانا بانتظارها وكلى لوعة ولهفة واشتياق  :biggrin:
تم تعديل بواسطه ابا جودى
  • Like 1
رابط هذا التعليق
شارك

في ١٦‏/٩‏/٢٠١٩ at 16:58, مرحبا البي said:

على اى حقل تريد التطبيق

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

في ١٦‏/٩‏/٢٠١٩ at 16:58, مرحبا البي said:

انظر الى هذا الاستعلام 

وأستاذى العزيز واخى الحبيب الاستاذ @kha9009lid :fff: 
اكتشفت شئ بمرفق اخونا الحبيب الاستاذ @مرحبا البي :fff:

ماذا ان كان التاريخ  >>---->   16/12/2019  :biggrin::wallbash:

لقد قمت بعمل الكود الاتى لحل هذه المشكلة
 

Function RD(MyDate As Date)
Select Case Nz(Month(MyDate), "")
    Case Is <= 11
        Select Case Nz(Day(MyDate), "")
                Case Is <= 15
                RD = Format("01" & "/" & Format(MyDate, "mm/yyyy"), "dd/mm/yyyy")
            Case Is > 15
                RD = Format("01" & "/" & Format(MyDate, "mm") + 1 & Format(MyDate, "/yyyy"), "dd/mm/yyyy")
        End Select
    Case Is = 12
            Select Case Nz(Day(MyDate), "")
                Case Is <= 15
                RD = Format("01" & "/" & Format(MyDate, "mm/yyyy"), "dd/mm/yyyy")
            Case Is > 15
                RD = Format("01/01/" & Format(MyDate, "yyyy") + 1, "dd/mm/yyyy")
        End Select
End Select
End Function

 

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

test5.accdb

تم تعديل بواسطه ابا جودى
  • Like 2
رابط هذا التعليق
شارك

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