PDA

View Full Version : مشکل تاریخ در اکسس



maryamb
دوشنبه 30 اردیبهشت 1387, 14:21 عصر
من پایگاه داده ام اکسس هستش.
مشکلی که دارم اینه که چون اکسس با تاریخ میلادی کار می کنه من وقتی تو برنامم تاریخ شمسی بهش می دم به بعضی تاریخ ها گیر می ده.
مثلا تاریخ همین امروز یا دیروز.چون تو ماه دوم سال میلادی ماه 28 روزه هست تاریخی مثل 29/02/1387 رو نمی شناسه و برنامم خطا می گیره.
اگه هم فیلد تاریخ رو از نوع date تعریف نکنم و text بگیرم اونوقت تو جاهای دیگه ی برنامه دچار مشکل می شم.مثل جستجو بین دو تاریخ.
به نظرتون چه راهی وجود داره؟

ABERTINO
دوشنبه 30 اردیبهشت 1387, 14:38 عصر
اول اينكه اين سوال رو توي فريوم اكسس مي پرسيدي بهتر بود
دوم :
مقدار رو از نوع رشته بگير فكر نمي كنم كه مشكلي پيش بياد يعني من كه تاحالا مشكل نداشتم حتي جستجو بين دو تاريخ.
راه حل ديگه اينكه تاريخ شمسي رو به ميلادي تبديل كني بعد حساب كتابت رو بكني بعد دوباره به شمسي تبديل كني (كامپوننتهاي زيادي هستن توهمين سايت كه اين كارو انجام مي دن)

maryamb
دوشنبه 30 اردیبهشت 1387, 14:47 عصر
اگه تاریخ رو بصورت رشته بگیرم مطمئنید که در مورد جستجو بین دوتاریخ مشکلی پیش نمی اد؟من تاحالا امتحان نکردم.
ولی آخه وقتی تاریخ ابتدا و انتها رو بهش بدم اگه بصورت رشته باشه چطوری می تونه تاریخ های بین شون رو هم حدس بزنه و بیاره؟
شما امتحان کردین؟

soheil_programmer
دوشنبه 30 اردیبهشت 1387, 17:44 عصر
با سلام

دوست عزیز من هم با مشکل شما مواجه بودم و برای رفع آن در دیتابیسم دو فیلد به طور همزمان از نوع میلادی و شمسی تعریف کردم یعنی یکی از نوع Date و دیگری از نوع Text با طول 10کاراکتر که شما حتماً در آن تاریخ را بصورت 30/02/1387 یعنی 10 کاراکتری تعریف کنید.
حالا فقط کافیه در برنامه تان مقدار هر دو فیلد را به طور همزمان پر کنید یعنی دو تاریخ یک فیلد میلادی و دیگری شمسی، و از هر یک در مواقع لازم در برنامه تان استفاده فرمائید.

__siavash__
دوشنبه 30 اردیبهشت 1387, 18:28 عصر
من پایگاه داده ام اکسس هستش.
مشکلی که دارم اینه که چون اکسس با تاریخ میلادی کار می کنه من وقتی تو برنامم تاریخ شمسی بهش می دم به بعضی تاریخ ها گیر می ده.
مثلا تاریخ همین امروز یا دیروز.چون تو ماه دوم سال میلادی ماه 28 روزه هست تاریخی مثل 29/02/1387 رو نمی شناسه و برنامم خطا می گیره.
اگه هم فیلد تاریخ رو از نوع date تعریف نکنم و text بگیرم اونوقت تو جاهای دیگه ی برنامه دچار مشکل می شم.مثل جستجو بین دو تاریخ.
به نظرتون چه راهی وجود داره؟
شما ميتونيد يه فيلد Date با فرمت Number تعريف كنيد بعد تاريخ رو به اين صورت ذخيره كنيد 870230 و در زمان اجرا با تابع زير به شكل دلخواه نمايش بدي


Format(870230, "##/##/##") '87/02/30
Format(870230, "13##/##/##") '1387/02/30

در مورد گزارش گيري هم به مشكلي بر نمي خوريد ميتونيد به راحتي بازه تعريف كنيد و گزارش رو بگيريد

ali_habibi1384
سه شنبه 31 اردیبهشت 1387, 00:42 صبح
من در جاهایی که تاریخ لازم داشته نوع فیلد رو text تعریف کرده ام و به مشکلی هم برنخورده ام حتی در جسجو بین دو تاریخ. البته در جستجو بین دو تاریخ در یک صورت به مشکل خواهی خورد در جایی که فرمت تاریخ رو رعایت نکنی مثلا بجای 01/02/1387 بنویسی 1/2/1387 که این مشکل رو باید با توی وی بی چک کنی. مطمئن باش به هیچ مشکلی بر نمی خوری.