PDA

View Full Version : سوال: بیرون کشیدن تعداد روزهای هر ماه+کپی اطلاعات هر ماه در ماه دیگر در دیتا بیس



ashkan1234
پنج شنبه 05 مرداد 1391, 14:10 عصر
با درود!
سوال اول:
یه برنامه ای نوشتم که میخوام توش تعداد روز های هر ماه رو بریزه تو دیتا گریدم!
واسه 11ماه میتونم تعریف کنم ولی واسه اسفند نمیشه(چون کبیسه است!).
واسه همین باید از ماژول استفاده کنم!یه ماژول دارم (LDate) کارایی زیاد داره واسم!مثلا تاریخ شمسی رو میخوام بکشم بیرون از این تابع استفاده میکنم:
(To_Hejri(date, 0
تاریخ رو برام اینجوری میکشه بیرون:
1391/00/00
یا مثلا:
(To_Hejri(date, 3
شنبه 3 مرداد 1391
حالا یه راهنمایی بکنید که چجوری میتونم تعداد روزهای یک ماه رو از این ماژول بکشم بیرون:
مثلا از کمبو باکس فروردین رو انتخاب کردم تو فیلد(روز) در دیتا گریدم بزنه 31،اگه اسفند شد با شرط کبیسه بودن یا خیر تعداد روز هاشو بزنه!

سوال دوم:
فرض کنید که واسه ثبت یک شخص سال 1391 رو انتخاب میکنم ،ماه فروردین.
یه سری اطلاعات واسه این شخص ثبت میکنم.
بعد فروردین تموم میشه.
واسه ثبت اطلاعات جدید اردیبهشت رو انتخاب میکنم!
وقتی اردیبهشت انتخاب شد دیتا گرید خالی باشه!
وقتی دیتا گرید خالی بود از شخص بپرسه : اطلاعاتی برای اردیبهشت ماه ثبت نشده،آیا میخواهید اطلاعات فروردین ماه را در اردیبهشت کپی کنید!
اگه سال مالی تموم شد بازهم همین کار رو برای سال انجام بده!
یه راه به نظرم رسید که بیام واسه هر ماه یه تیبل تعریف کنم!بعد دیدم این راه خیلی پیچیده و طولانیه!
یه نرم افزار مالیات هست که اگه دوست داشتید میتونید از سایت اداره امور مالیاتی دانلود (http://www.intamedia.ir/FileUpload/PTSClient890303setup.sfx.exe) کنید!(PTSClient.exe)
دقیقا همین کارا رو که من میخوام کرده!(تو قسمت لیست حقوق)
دیتا بیس شو باز کردم اما واسه هر ماه تیبل تعریف نکرده!
ولی این قابلیت ها رو داره!
ممنون میشم اگه راهنماییم کنید!

ali-a2
پنج شنبه 05 مرداد 1391, 16:01 عصر
سوال اولتون رو من متوجه نشدم !

ولی سوال دوم :

شما میتونین از جستجو بین دو تاریخ استفاده کنین ، یعنی وقتی اردیبهشت انتخاب شد فقط دیتابیس بین روز اول و روز آخر ماه جستجو کنه !

جستجو بین دو تاریخ در برای کار شما اینجوری میشه

Dim d1, d2 As String
Dim StrSql As String
d1 = "1391/02/01"
d2 = "1391/02/31"
StrSql = "select * from ESME TABLE where ESME FIELD E TARIKH between '" & d1 & "' and '" & d2 & "'"
Adodc1.RecordSource = StrSql
Adodc1.Refresh

موفق باشید !

ashkan1234
پنج شنبه 05 مرداد 1391, 16:53 عصر
سوال اولتون رو من متوجه نشدم !

ولی سوال دوم :

شما میتونین از جستجو بین دو تاریخ استفاده کنین ، یعنی وقتی اردیبهشت انتخاب شد فقط دیتابیس بین روز اول و روز آخر ماه جستجو کنه !

جستجو بین دو تاریخ در برای کار شما اینجوری میشه

Dim d1, d2 As String
Dim StrSql As String
d1 = "1391/02/01"
d2 = "1391/02/31"
StrSql = "select * from ESME TABLE where ESME FIELD E TARIKH between '" & d1 & "' and '" & d2 & "'"
Adodc1.RecordSource = StrSql
Adodc1.Refresh

موفق باشید !
ممنونم از راهنماییتون!
پس تو دیتا بیسم باید یه فیلد تاریخ تعریف کنم که تابع تاریخ رو توش بریزه؟!(ESME FIELD E TARIKH)
ولی یه مشکلی میمونه!
اگه اینی که شما فرمودید رو بزنم فقط واسه یک سال مالی میتونم بزنم!مثلا فقط سال 1391؟!!
چون واسه هر سال مالی یکی یکی کد بزنم خیلی طولانی میشه!
سوال اولم هم اینه:
یه کمبو باکس دارم که توش ماههای سال نوشته شده!
میخوام هر ماهی رو انتخاب کردم تعداد روزهای اون ماه رو برام بریزه تو دیتا بیس!
مثلا اگر
فروردین انتخاب شد:فیلد تعداد روز در دیتا بیس =31
اردیبهشت انتخاب شد:فیلد تعداد روز در دیتا بیس =31
و سایر ماه ها هم همینطور!
نمیدونم چطور میتونم تعداد روز رو باید بیرون کشید!
وگرنه با If و یا select case میتونم دستور کار کمبو باکس رو بدم!
میدونم بد توضیح میدم!شرمنده!

ali-a2
پنج شنبه 05 مرداد 1391, 18:26 عصر
اگه اینی که شما فرمودید رو بزنم فقط واسه یک سال مالی میتونم بزنم!مثلا فقط سال 1391؟!!

بله ، اینجوریم میشه ! هم میشه تاریخ یه سال رو داد و هم ماه های اون سال رو ولی برای سال هم باید یه فیلد تعریف بشه !


چون واسه هر سال مالی یکی یکی کد بزنم خیلی طولانی میشه!

شما برنامه های حرفه ای حسابداری رو هم دیده باشید (مثل تیزپرداز) میبینید که توی تعریف سال تا 8 یا 9 سال بیشتر تعریف نشده !


میخوام هر ماهی رو انتخاب کردم تعداد روزهای اون ماه رو برام بریزه تو دیتا بیس!

شما اگر فقط مشکلتون اسفند ماهه ، میتونین یه فیلد که فقط تاریخ به سال توش باشه درست کنید و بهش دستور بدید که اگر اون سال های کبیسه رو انتخاب کرد تعداد روز به 30 تغییر کنه !


موفق باشید .