PDA

View Full Version : سوال: جمع اعداد فیلد ها در فیلد جدید و مشکل فیلد خالی null



morteza_2009
یک شنبه 22 خرداد 1390, 22:47 عصر
من یه جدول دارم که مثلا با یه کد شروع می شه و هر ستونش در مورد تعداد مورد خاصی پر می شه ... مثلا

کد کالا .... نام کالا .... تعداد خرابی ... تعداد ناقص ... تعداد از بین رفته ... تعداد تائید نشده

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

مجموع مورد دار = تعداد خرابی + تعداد ناقص + تعداد از بین رفته + تعداد تائید نشده

می دونم می تونم از calculate استفاده کنم و مقادیر ستونهای قبل رو با هم جمع کنم ... ولی یه اشکالی هست ... اونم اینکه وقتی یکی از فیلد های بالا خالی باشه ( مثلا کالایی تعداد ناقص نداشته باشه ) نتیجه جمع خالی می شه ... به عبارتی اکسس جمع عددی با null رو همون null می زنه !!!!! یا محاسبه نمی کنه !

من نمی خوام با روابطی مقادیر تهی رو به صفر تغییر بدم تا بتونم محاسبه درستی باشم ... چون سر اخر اگر صفر بشن در count حساب میان و این برای جدول من درست نیست ... ولی راه حلی رو می خوام که مجموع رو بهم بده


ممنون می شم راهنمایی کنید

mehdi_fiz
یک شنبه 22 خرداد 1390, 23:23 عصر
سلام دوست عزیز
در قسمت طراحی جدولتون مقدار پیش فرض فیلدها را مساوی صفر قرار بدید که اگه مقدار داده نشد صفر رو قرار بده
موفق باشید

royasaz_bam
دوشنبه 23 خرداد 1390, 05:13 صبح
مقدار پیش فرض را اگر نخواستی صفر بگذاری بخاطر مشکل count متوانی عبارت "" را هنگام ورود اطلاعات به فیلد خالی بدهی در این هنگام اکسس آن را به عنوان فیلد null در نظر نمیگیرد ببین آیا محاسبه انجام میشود خبرش را بده

mazoolagh
دوشنبه 23 خرداد 1390, 22:13 عصر
درستش همون هست که آقای MEHDI FIZ گفتن یعنی باید طراحی جدول رو درست کنین و فیلدهای NULL فعلی عددی رو صفر کنین .

اما میتونین از تایع NZ هم استفاده کنین :

A=NZ([TEDAD_KHARAB],0)+NZ([TEDAD_NAGHES],0)

morteza_2009
چهارشنبه 25 خرداد 1390, 20:59 عصر
مقدار پیش فرض را اگر نخواستی صفر بگذاری بخاطر مشکل count متوانی عبارت "" را هنگام ورود اطلاعات به فیلد خالی بدهی در این هنگام اکسس آن را به عنوان فیلد null در نظر نمیگیرد ببین آیا محاسبه انجام میشود خبرش را بده

اگه نوعش رو Number بکنیم ... نمی شه پیش فرض رو "" گذاشت ! ... ایرور mismatch میده ... ولی اگه text بشه می شه "" گذاشت ... ولی نتیجه محاسبه رو کد اسکی جمع اعداد می زنه ... به نوعی اونا رو همون تکس حساب میاره نه عدد :ناراحت:

morteza_2009
چهارشنبه 25 خرداد 1390, 21:02 عصر
درستش همون هست که آقای MEHDI FIZ گفتن یعنی باید طراحی جدول رو درست کنین و فیلدهای NULL فعلی عددی رو صفر کنین .

اما میتونین از تایع NZ هم استفاده کنین :

من می گم تو count مشکل دار می شم ... شما می گی صفرش کنم ؟!

این چه تابعه ایه ؟ ... انگار قبلا دیدمش ... ولی تو اکسس من نیست !!!!! مشکل از چی می تونه باشه ؟

mazoolagh
پنج شنبه 26 خرداد 1390, 11:16 صبح
بله باید صفرش کنین - اینکه فیلد عددی nullable دارین و میخواین روش محاسبه انجام بدین نشوندهنده اشکال طراحی هست و باید رفع بشه.
با یک update query ساده همه رکوردهای فعلی رو که فیلد null دارن صفر کنین و در طراحی جدول هم default value فیلدهای عددی رو صفر بگذارین (حداقل در فرم ورود اطلاعات اینکار باید انجام بشه)