PDA

View Full Version : سوال: در مورد ماژول تاریخ



laia56
یک شنبه 11 آبان 1393, 15:23 عصر
با سلام و عرض ادب خدمت تمامی اساتید و دوستان محترم
خاطرم هست در زمانی که در این سایت پربار ثبت نام کردم با ماژول استاد حمید آزادی آشنا شدم و از آن روز تا بحال که 5 سال میگذرد همیشه از این توابع استفاده کرده ام و همیشه دعاگوی ایشان بوده ام
والبته تشکر همیشگی دارم از تمامی اساتید و دوستان عضو در این سایت
اما مشکلی که دارم اینست که در ادامه این توابع تابعی لازم دارم که یک تاریخ را بگیرد و آخر ماه بعدی را نشان بدهد به اینصورت که اگر تاریخ ایجادی 93/07/01 باشد تاریخی که محاسبه میشود 93/08/30 باشد و اگر تاریخ مثلا 93/07/05 یا 93/07/15 یا 93/07/20 و یا یکی از روزهای ماه 7 باشد تاریخی که محاسبه میشود 93/08/30 باشد
با تشکر از حوصله و محبت شما

alirezabahrami
یک شنبه 11 آبان 1393, 16:55 عصر
با سلام و عرض ادب خدمت تمامی اساتید و دوستان محترم
خاطرم هست در زمانی که در این سایت پربار ثبت نام کردم با ماژول استاد حمید آزادی آشنا شدم و از آن روز تا بحال که 5 سال میگذرد همیشه از این توابع استفاده کرده ام و همیشه دعاگوی ایشان بوده ام
والبته تشکر همیشگی دارم از تمامی اساتید و دوستان عضو در این سایت
اما مشکلی که دارم اینست که در ادامه این توابع تابعی لازم دارم که یک تاریخ را بگیرد و آخر ماه بعدی را نشان بدهد به اینصورت که اگر تاریخ ایجادی 93/07/01 باشد تاریخی که محاسبه میشود 93/08/30 باشد و اگر تاریخ مثلا 93/07/05 یا 93/07/15 یا 93/07/20 و یا یکی از روزهای ماه 7 باشد تاریخی که محاسبه میشود 93/08/30 باشد
با تشکر از حوصله و محبت شما
سلام
از کد زیر استفاده کن !


Me.EndDate = AddDay(Replace(StartDate, Right(StartDate, 2), "00"), 60)





درکد بالا StartDate نام تاریخ ایجادی(ورودی) و EndDate نام تاریخ خروجی می باشد.
یا علی

laia56
چهارشنبه 14 آبان 1393, 08:46 صبح
با تشکر از جنابعالی
اما در نمونه زیر کد جنابعالی جواب نداد اگر ملاحظه بفرمایید میخواهم با کد جدید به فیلد2 جدول برسم بعبارت دیگر کد باید فیلد 1 را ورودی فرض کرده و به نتیجه فیلد2 برسد

abas1388
چهارشنبه 14 آبان 1393, 17:21 عصر
با تشکر از جنابعالی
اما در نمونه زیر کد جنابعالی جواب نداد اگر ملاحظه بفرمایید میخواهم با کد جدید به فیلد2 جدول برسم بعبارت دیگر کد باید فیلد 1 را ورودی فرض کرده و به نتیجه فیلد2 برسد
سلام دوست عزیز
کدی که آقای بهرامی درج نموده اند به درستی خواسته شما را محقق می نماید.
در نمونه ضمیمه در تکست باکس مربوط به تاریخ ورودی , تاریخ مورد نظر را وارد کن تا نتیجه را در تکست باکس تاریخ خروجی ملاحظه نمائید .
موفق باشید

amirzazadeh
چهارشنبه 14 آبان 1393, 19:22 عصر
سلام
نمونه اصلاح شده را براتون اپلود كردم:

Private Sub Command6_Click()
X = sal(Field1)
y = (Format(Mah(Field1) + 1, "00"))
z = (Format(MahDays(X, y), "00"))
Field2 = X & y & z
End Sub

alirezabahrami
جمعه 16 آبان 1393, 19:13 عصر
سلام
درنمونه قبلی به تعداد روزهای اسفند ماه در سالهای کبیسه توجه نشده بودکه در نمونه جدید اصلاح شد.ضمناً کدها را میتوان خلاصه تر نوشت و در این نمونه بجهت فهم بیشتر کدها در چند خط درج شده .
یا علی

laia56
شنبه 17 آبان 1393, 16:23 عصر
سلام
درنمونه قبلی به تعداد روزهای اسفند ماه در سالهای کبیسه توجه نشده بودکه در نمونه جدید اصلاح شد.ضمناً کدها را میتوان خلاصه تر نوشت و در این نمونه بجهت فهم بیشتر کدها در چند خط درج شده .
یا علی

با تشکر از جنابعالی و سایر اساتید و دوستان
اگر امکان دارد بفرمایید چگونه در کوئری از این تابع استفاده کنیم

alirezabahrami
شنبه 17 آبان 1393, 20:57 عصر
با تشکر از جنابعالی و سایر اساتید و دوستاناگر امکان دارد بفرمایید چگونه در کوئری از این تابع استفاده کنیمسلام
نمونه جدید را بررسی کن!یا علی

laia56
یک شنبه 18 آبان 1393, 15:57 عصر
با سلام و تشکر از جنابعالی
همانطور که در فایل ضمیمه ملاحظه میفرمایید فرمول در تبدیل 9 ماهه اول سال 93 دچار اشکال میشود و به تاریخ سالانه 90 برمیگرداند تا جایی که نمونه انجام دادم فقط سال 93 را مشکل دارد مثلا در تبدیل تاریخ 93/01/30 جواب میدهد 90/02/30 ولی تاریخ 93/01/31 را درست نمایش میدهد تاریخ 93/07/30 را غلط محاسبه میکند ولی 93/07/29 را صحیح محاسبه میکند

alirezabahrami
یک شنبه 18 آبان 1393, 18:59 عصر
با سلام و تشکر از جنابعالیهمانطور که در فایل ضمیمه ملاحظه میفرمایید فرمول در تبدیل 9 ماهه اول سال 93 دچار اشکال میشود و به تاریخ سالانه 90 برمیگرداند تا جایی که نمونه انجام دادم فقط سال 93 را مشکل دارد مثلا در تبدیل تاریخ 93/01/30 جواب میدهد 90/02/30 ولی تاریخ 93/01/31 را درست نمایش میدهد تاریخ 93/07/30 را غلط محاسبه میکند ولی 93/07/29 را صحیح محاسبه میکندسلاملطفاً نمونه جدیدتر را بررسی فرمائید یا علی

amirzazadeh
دوشنبه 19 آبان 1393, 08:04 صبح
سلام
يك تابع جديد با نام سررسيد به توابع آقاي آزادي اضافه كردم.

Public Function SARRESID(ByVal f_date As Long) As Long
X = sal(f_date)
y = Format(Mah(f_date) + 1, "00")
z = MahDays(X, y)
SARRESID = X & y & z
End Function

Ali_Fallah
دوشنبه 19 آبان 1393, 08:43 صبح
با سلام
این تابع بعد از سال 99 نیز کاربرد دارد یا خیر؟

amirzazadeh
دوشنبه 19 آبان 1393, 09:58 صبح
سلام
بله اگر از ماژول تاريخ 8 رقمي استفاده بشه تا سال 9999 جوابگو خواهد بود.

با تشكر از جناب فلاح نمونه اصلاح شد.

Ali_Fallah
دوشنبه 19 آبان 1393, 10:51 صبح
با سلام مجدد
فکر کنم تاریخ 8 رقمی روی برج 12 با مشکل همراه هست...

Ali_Fallah
دوشنبه 19 آبان 1393, 19:54 عصر
با تشکر مجدد
باز هم مشکل در سال 1399 انگار وجود داره . مثال تاریخ 10/12/1399 و ورود به سال 1400
و همچنین از سال 1401 به بعد (فقط برح 12)

amirzazadeh
سه شنبه 20 آبان 1393, 07:39 صبح
سلام
ضمن تشكر از دقت نظر حضرتعالي نمونه مجددا اصلاح گرديد.