نمایش نتایج 1 تا 9 از 9

نام تاپیک: فیلد محاسباتی در After Update

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    شيراز
    پست
    342

    فیلد محاسباتی در After Update

    با سلام

    بعد از وارد کردن تاریخ قرارداد (t8)، تاریخ انقضای 6 ماهه، با کد زیر در فیلدش (m6) دیده می‌شه:

    Private Sub t8_AfterUpdate()
    m6 = DateAdd("m", 6, t8)
    End Sub


    نیاز دارم مهلت باقیمانده در فیلد مربوطه (mohlatm6) محاسبه و دیده بشه. (چون اول، تاریخ انقضا (m6) باید محاسبه بشه، کد زیر در خاصیت After Update فیلد قرارداد (t8)، جواب نمی‌ده)

    mohlatm6 = TotalDiff (txtToday, m6) 
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله arman2000 : شنبه 12 مهر 1404 در 17:11 عصر

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,601

    نقل قول: فیلد محاسباتی در After Update

    سلام و روز خوش

    1- مطمئن نیستم منظور شما رو درست گرفته باشم،
    ولی همین باید درست باشه:
    Private Sub t8_AfterUpdate()
    m6 = DateAdd("m", 6, t8)
    mohlatm6 = TotalDiff(txtToday, m6)
    End Sub


    2- اون default value برای mohlatm6 هم بنظر میاد لازم نیست.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    شيراز
    پست
    342

    نقل قول: فیلد محاسباتی در After Update

    سلام بزرگوار

    - default value برای mohlatm6 رو هم برداشتم ولی جواب نگرفتم.

    -
    چون اول، تاریخ انقضا (m6) باید محاسبه بشه، کد زیر در خاصیت After Update فیلد قرارداد (t8)، جواب نمی‌ده:
    mohlatm6 = TotalDiff (txtToday, m6) 
    آخرین ویرایش به وسیله arman2000 : شنبه 12 مهر 1404 در 22:05 عصر

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,601

    نقل قول: فیلد محاسباتی در After Update

    سلام دوباره

    الان منظور شما از جواب ندادن در (چون اول، تاریخ انقضا (m6) باید محاسبه بشه، کد زیر در خاصیت After Update فیلد قرارداد (t8)، جواب نمی‌ده) مشخص نیست!

    چون اون خط دوم کد پست 2 (محاسبه مهلت) مشکلی نداره و
    بعد از خط اول (محاسبه تاریخ انقضا) اجرا میشه، و اگر مشکلی باشه باید در همون خط اول دیده بشه.

    مشکل کد محاسبه تاریخ انقضا این هست که شما از تابع DateAdd که برای تاریخ میلادی (گرگوری) هست استفاده کردین؛
    تعداد روزهای ماه های میلادی با تعداد روزهای ماه های ایرانی متناظر شون یکی نیست:
    مثلا ماه های 7 و 8 میلادی (جولای و اگوست) 31 روزه ان ولی ماه های 7 و 8 ایرانی (مهر و آبان) 30 روزه
    یا ماه 2 میلادی (فوریه) 28 یا 29 روزه است ولی ماه 2 ایرانی (اردیبهشت) همیشه 31 روزه است.

    حالا اگر شما تاریخ قرارداد رو مثلا 30 اردیبهشت بذارین اون تابع DateAdd حتما خطا میگیره.

    برای حل این مشکل 2 راه دارین:
    1- در همین توابع کمکی تاریخ ایرانی که استفاده کردین بگردین ببینین تابع معادل داره یا نه و جایگزین کنین.
    اگر نداشته باشه باید خودتون یکی بنویسین.

    2- همون تابع DateAdd رو استفاده کنین، ولی تاریخ قرارداد رو بر اساس روز اول ماه بهش بدین
    و بعد تاریخ بدست آمده رو با روز واقعی تاریخ قرارداد جمع کنین.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    شيراز
    پست
    342

    نقل قول: فیلد محاسباتی در After Update

    سلام دوست عزیز

    ممنون می‌شم در رابطه با راه حل دوم (همون تابع DateAdd رو استفاده کنین، ولی تاریخ قرارداد رو بر اساس روز اول ماه بهش بدین
    و بعد تاریخ بدست آمده رو با روز واقعی تاریخ قرارداد جمع کنین) یک مثال بزنید.

  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,601

    نقل قول: فیلد محاسباتی در After Update

    سلام دوباره

    اجازه بدین اول این توابعی رو که برای تاریخ ایرانی استفاده کردین یک نگاهی بندازم
    بعد تابعی رو نیاز دارین براتون آماده میکنم و روش کار رو هم توضیح میدم.

    ممکنه یکی دو روزی زمان ببره.

  7. #7
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    شيراز
    پست
    342

    نقل قول: فیلد محاسباتی در After Update

    سپاس بزرگوار

    اگر تاریخ قرارداد رو مثلا 30 اردیبهشت بذارین اون تابع DateAdd حتما خطا میگیره.
    اول ماه و کلا هر روزی رو هم خطا میده.

  8. #8
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,601

    نقل قول: فیلد محاسباتی در After Update

    خب من این روتین های ماژول DateShamsi رو بررسی کردم:
    نه تنها بسیاری از توابع مورد نیاز رو نداره، بلکه نتایج محاسبات هم دارای اشتباه های بزرگی هست
    و مطلقا غیرقابل اعتماده!

    خود من هم تا خیلی سال پیش (یعنی پیش از پشتیبانی دات نت از Persian calendar)
    توابع تبدیل تاریخ خودم رو داشتم (البته آلگوریتم محاسبات از رفرنس های علمی معتبر گرفته بودم)،
    تو برنامه های قدیمی میگردم و اون رو براتون میذارم.

    تا اون موقع تاپیک زیر رو هم ببینین (پست های 7 تا 13) :
    حرفه ای: Mazoo Utils for VBA - کتابخانه ابزارهای سودمند برای VBA

  9. #9
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    شيراز
    پست
    342

    نقل قول: فیلد محاسباتی در After Update

    سلام دوست عزیز

    تو برنامه های قدیمی میگردم و اون رو براتون میذارم.
    موفق شدید پیدا کنید؟

تاپیک های مشابه

  1. سوال: Update کردن بانک اطلاعاتی از طریق کد PHP
    نوشته شده توسط aliforever در بخش PHP
    پاسخ: 17
    آخرین پست: دوشنبه 28 فروردین 1391, 17:49 عصر
  2. سوال: در مورد update بانک اطلاعاتی
    نوشته شده توسط smm2006sh در بخش C#‎‎
    پاسخ: 6
    آخرین پست: دوشنبه 12 بهمن 1388, 23:08 عصر
  3. update بانک اطلاعاتی
    نوشته شده توسط OCTAGON در بخش MySQL
    پاسخ: 2
    آخرین پست: شنبه 27 مهر 1387, 22:57 عصر
  4. update نشدن بانک اطلاعاتی
    نوشته شده توسط sara.pazhrang در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 20 آبان 1386, 10:52 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •