PDA

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 به انجام میرسه .
ذخیره سازی اینچنین محاسباتی منجر به افزایش حجم فایل و کاهش کارایی اون میشه .

انجام اینکار تنها در یک صورت منطقیه , اونهم وقتی که تعداد رکوردها زیاد و انجام محاسبات به صورت پی در پی زمانبر بوده باشه .

در اینگونه حالات عملاً زمان محاسبه رو در همون هنگام ثبت رکورد تسویه میکنن .

موفق باشید