View Full Version : سوال: نحوه محاسبه مقادير فيلدها چگونه است ؟
mnz123456
چهارشنبه 27 آذر 1387, 13:41 عصر
سلام
چه جوری می تونم مجموع چند فیلد را به دست بیارم و در فیلد جدیدی بریزم همینطور تفاضلش را.
دوست عزيز در انتخاب و درج عنوان تاپيك بيشتر دقت كنيد و از عناوين مرتبط و با محتوا استفاده كنيد .
قرباني
morynf
چهارشنبه 27 آذر 1387, 21:42 عصر
دوست عزيز خيلي ساده است شما مي تونيد در كنترل سورس فيلد جديدتون فيلدها رو جمع بزنيد .
Me.Sumfield.ControlSource = Me.field1 + Me.field2 + field3
nabeel
پنج شنبه 28 آذر 1387, 00:30 صبح
ضمن سلام خدمت دوستان
morynf عزیز , تصور نمی کنید , با فرض در نظر گرفتن این جمله که "در فیلد جدیدی بریزم" به معنی ذخیره سازی اون باشه پاسخ ارائه شده چندان درست نباشه .
راه حل ارائه شده به نوعی پاسخ این بخش سئواله که " مجموع چند فیلد را به دست بیارم"
قرار دادن Control Source یک فیلد برابر با یک فرمول منجر به ذخیره سازی اون نمیشه .
mnz123456 گرامی , بهتره که در هنگام مطرح کردن سئوال هم از کلماتی بدور از چندگانگی تعبیر استفاده بشه تا شما دوست عزیز هم زودتر به پاسخ سئوالات خودتون برسید .
قرار دادن Control Source یک فیلد ر داخل فرمها برابر با یک فرمول , منجر به افزایش زمان بازنمایش فرم میشه .
تنها راه انجام اینکار استفاده از VBA هستش .
در داخل روال On Current دستور زیر رو بنویسید :
X=Y+Z
X,Y,Z در واقع نام فیلدهای شما هستند
ضمناً همین کد رو در رویدار After Update هر کدوم از کنترلها هم کپی کنید .
ناگفته پیداست که شما باید در داخل جدولتون , فیلدی رو هم جهت ذخیره سازی نتیجه محاسبه ایجاد کنید .
توصیه :
بهتره که این دستور رو با دستور Nz به صورت ترکیبی استفاده کنید تا خطای احتمالی در هنگام مواجه با مقادیر Null به وجود نیاد .
در مجموع :
معمولاً نتایجی اینچنینی رو در داخل بانک اطلاعاتی ذخیره نمیکنن چرا که انجام اینکار در موقع لزوم توسط Query ها به راحتی قابل انجامه و این محاسبه به صورت On Fly به انجام میرسه .
ذخیره سازی اینچنین محاسباتی منجر به افزایش حجم فایل و کاهش کارایی اون میشه .
انجام اینکار تنها در یک صورت منطقیه , اونهم وقتی که تعداد رکوردها زیاد و انجام محاسبات به صورت پی در پی زمانبر بوده باشه .
در اینگونه حالات عملاً زمان محاسبه رو در همون هنگام ثبت رکورد تسویه میکنن .
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.