PDA

View Full Version : مشکل با گزارش



ms1024
سه شنبه 02 خرداد 1385, 06:30 صبح
سلام دوستان
چند ماه پیش برنامه ای برای یه شرکت نوشتم که الان یه مشکلی براش پیش اومده
برنامه یه قسمت گزارش داره
3 روز خاص از سال هست که گزارش اون 3 روز رو نمیتونه بگیره:متعجب:
اون 3 روز هم 29 30 و 31 اردیبهشت هستن
وقتی میخوام گزارش بگیرم این پیغام رو میده
Data type mistmatch in criteria experession
(از دستور select ایراد میگیره)
به نظر شما مشکل کار کجاست؟

Mah
سه شنبه 02 خرداد 1385, 10:00 صبح
لطفا query‌را کامل همراه با متن کد بنویسید .

babak869
سه شنبه 02 خرداد 1385, 10:06 صبح
چه جالب اتفاقا منم چند روز پیش به همین مشکل برخوردم.منم برای یه شرکت برنامه نوشتم اما تماس گرفت و گفت که نمیتونه سود روزانه رو محاسبه و چاپ کنه هرچی هم باهاش ور رفتم نشد/پس مشکل کلیه!!!!!

ms1024
چهارشنبه 03 خرداد 1385, 05:35 صبح
سلام
فهمیدم مشکل چیه
چون در تاریخ میلادی برج دوم 28 روز است نمیتوان 29 یا 30 یا 31 را در آن وارد کرد
مثلا اگر در Accsess اطلاعات را در فیلد تاریخ به صورت 30/2/2006
( یا 30/2/1385) وارد کنیم خطا میگیره
برای دو روز دیگه از سال هم این مشکل رو داریم : 31/4 و 31/6
حالا به نظر شما راه حل رفع این مشکل چیه
تاریخ رو به همون صورت میلادی ذخیره کنم وهر بار (مثلا موقع گزارش گیری) اون رو تبدیل کنم؟
راه دیگه ای نداره؟

ms1024
چهارشنبه 03 خرداد 1385, 05:36 صبح
یه روش اینه که :
در جدول دو تا فیلد یکی از نوع تاریخ برای تاریخ میلادی و یکی از نوع text برای نگهداری تاریخ شمسی معادل اون در نظر بگیریم
و هر بار هر دو رو ذخیره کنیم
موقع گزارش گیری هم که تاریخ به صورت شمسی وارد میشه اون رو به میلادی تبدیل کنیم وعمل گزارش گیری رو روی تاریخ میلادی انجام بدیم
و فیلد تاریخ شمسی که به صورت text هست رو مثلا در DBgrid نشون بدیم
نظر شما چیه؟
روش دیگه ای وجود نداره که لازم نباشه فیلدهای دیتابیس دستکاری بشه؟

babak869
چهارشنبه 03 خرداد 1385, 07:33 صبح
روش شما روش جالب و ابتکار خوبیه اما به نظر من راه مطمئن تری هم باید باشه چون این کار با Database Normalization همخوانی نداره و تا اونجا که امکان داره باید از ایجاد فیلد های اضافی خودداری کرد

ms1024
پنج شنبه 04 خرداد 1385, 00:57 صبح
یعنی هیچ کس تا حالا به این مشکل برخورد نکرده؟
پس این همه برنامه بزرگ فارسی چجوری کار میکنن؟