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

كيف أخبر الدالة ان التاريخ غير موجود عند تمرير بارمتر تاريخ اختياري للدالة


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

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

أولا - تقبل الله طاعاتكم ورمضان مبارك عليكم ان شاء الله 

وبعد؛

انشأت دالة لحساب بعض القيم وكان من ضمن البارمترات الممرة لها تاريخ يمكن ان يكون غير موجود ولاحظت عند الدبج للدالة انه يقوم بحساب التاريخ سواء كان موجودا أو غير موجود رغم اني وضعت كل الاحتمالات لكون التاريخ غير موجود، مثل: 

1- if len(sarfDate & "") >0 
2- or sarfDate = 0
3- or sarfDate = null

ارجو المساعدة وجزاكم الله خيرا

ربما الصور توضح المقصود ان شاء الله

 

12345.png

123.png

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

17 دقائق مضت, أبو عبدالله الحلوانى said:

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

أولا - تقبل الله طاعاتكم ورمضان مبارك عليكم ان شاء الله 

وبعد؛

انشأت دالة لحساب بعض القيم وكان من ضمن البارمترات الممرة لها تاريخ يمكن ان يكون غير موجود ولاحظت عند الدبج للدالة انه يقوم بحساب التاريخ سواء كان موجودا أو غير موجود رغم اني وضعت كل الاحتمالات لكون التاريخ غير موجود، مثل: 

1- if len(sarfDate & "") >0 
2- or sarfDate = 0
3- or sarfDate = null

ارجو المساعدة وجزاكم الله خيرا

ربما الصور توضح المقصود ان شاء الله

 

12345.png

123.png

 

اسمح لى اضع ملاحظه 

قد تكون ليس لها اى فائده 

لكن حابب اشارك معك 

فكره غبيه كده 

جرب تعيد ترتيب الاحتمالات 

مثلا اجعل ال null اولا ومن ثم الى الاحتمال التالى فالتالى 

^_^

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

وعليك السلام ورحمة الله وبركاته أخي العزيز @أبو عبدالله الحلوانى 🙂 

في تعريف المتغير هنا :

image.png.bda66fe2bca2adad89b279a4e8806998.png

ضع قيمة srtDate = ""  a , ,وليس صفر 0 ..

لأن الصفر لها قيمة في التاريخ عند البرنامج .. 🙂  .. أنظر عندما قلت له أن يحول الصفر إلى قيمة تاريخية ماذا أحضر لي :

image.png.3c6219c1bdc628b0248bfed09c98b1c2.png

لذلك إن وجدها 0 فسوف يعطيك قيمة تاريخية .. لذلك ضع مكانها "" << علامة فارغة أو vbNull

 

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

24 دقائق مضت, عمر ضاحى said:

لكن حابب اشارك معك

جزاك الله خيرا علي المشاركة حياك الله وبياك 

وجدت هذا الموضوع 

https://stackoverflow.com/questions/18497942/function-optional-parameter-date-type-fails

وقد أفدت من الاجابة الثالثة فيه وقمت ببعض التعديل علي الكود بهذا الشكل

1-if len(srfdate & "") >0
2- And srfdate <> 0  ' Replace Or By And
3- and srfdate <> null 
4-And srfdate > #12/31/2000#  'Add Defulte value Can control by it

وقد اعطتني الدالة قيم صحيحة والحمد لله

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

وجزاكم الله خيرا

 

1234.png

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

8 دقائق مضت, Moosak said:

ضع قيمة srtDate = ""  a , ,وليس صفر 0 ..

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

جربت ما تفضلتم به ظهرت لي هذه الرسالة 

 

123.png

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

10 دقائق مضت, أبو عبدالله الحلوانى said:

جزاك الله خيرا علي المشاركة حياك الله وبياك 

وجدت هذا الموضوع 

https://stackoverflow.com/questions/18497942/function-optional-parameter-date-type-fails

وقد أفدت من الاجابة الثالثة فيه وقمت ببعض التعديل علي الكود بهذا الشكل

1-if len(srfdate & "") >0
2- And srfdate <> 0  ' Replace Or By And
3- and srfdate <> null 
4-And srfdate > #12/31/2000#  'Add Defulte value Can control by it

وقد اعطتني الدالة قيم صحيحة والحمد لله

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

وجزاكم الله خيرا

 

1234.png

الحمد لله انك قد توصلت للحل 

هذه فكره كنت اظنها غير مفيده اكثر من انها تكون مفيده 

لكن مع ذلك حبيت اشاركها لعل ^_^
 

لكن طلع الحل فى مكان اخر

فالحمد لله انها اتحلت المشكله مع حضرتك

واعتذر عن تقديم حل حقيقى لك لقلة علمي

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

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

مشاركه مع اخوانى

اخى ابو عبدالله بالنسبه للداله من فوق لا تضع لها قيمه فوق اجعلها على as date فقط

ثم شيك عليها

if len(sdate & "") <> 0 and isdate(sdate) then
>>>
endif

جرب واخبرنا بالنتيجه

بالتوفيق

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

12 دقائق مضت, احمد الفلاحجي said:

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

مشاركه مع اخوانى

اخى ابو عبدالله بالنسبه للداله من فوق لا تضع لها قيمه فوق اجعلها على as date فقط

ثم شيك عليها

if len(sdate & "") <> 0 and isdate(sdate) then
>>>
endif

جرب واخبرنا بالنتيجه

بالتوفيق

قمت بالتجربه ولم تنجح بالرغم انه وضعت قيمه رقميه فقط

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

كده مفيش غير وضع قيمه افتراضيه للتاريخ

بالتوفيق اخى

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

اخى @أبو عبدالله الحلوانى ما رائيك بان تجعل المتغير Variant

Function testDate(Optional vDate As Variant)
    
    If Len(vDate & "") <> 0 And IsDate(vDate) Then
        testDate = "#" & Format$(vDate, "mm\/dd\/yyyy") & "#"
    End If
    '?testDate(#23/4/2022#)
    '?testDate(0)
    '?testDate("test")
End Function

 

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

9 ساعات مضت, أبو عبدالله الحلوانى said:

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

أولا - تقبل الله طاعاتكم ورمضان مبارك عليكم ان شاء الله 

وبعد؛

انشأت دالة لحساب بعض القيم وكان من ضمن البارمترات الممرة لها تاريخ يمكن ان يكون غير موجود ولاحظت عند الدبج للدالة انه يقوم بحساب التاريخ سواء كان موجودا أو غير موجود رغم اني وضعت كل الاحتمالات لكون التاريخ غير موجود، مثل: 

1- if len(sarfDate & "") >0 
2- or sarfDate = 0
3- or sarfDate = null

ارجو المساعدة وجزاكم الله خيرا

ربما الصور توضح المقصود ان شاء الله

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

تقبل الله ومنا ومنكم وجزاكم الله خيرا

ممكن المرفق لو تكرمت انت عارف اخوك ضعيف بالنظرى :eek2:

  • Haha 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