# پایگاه‌های داده > سایر پایگاه‌های داده > Access > سوال: تهیه میانگین برای یک حساب

## m-razavi

باسلام
من جدولی دارم که محتویات آن گردش حساب مثلاً جاری مشتریان می باشد. فیلدهای این جدول عبارتند از تاریخ ، مبلغ بدهکار ، مبلغ بستانکار ، مانده حساب و ...
حال می خواهم وقتی بوسیله یک کوری گردش حساب یک مشتری را در بازه زمانی خاص مشاهده می کنم میانگین حساب وی نیز در همان تاریخ گزارش شود. راه حل چیست؟ دوستان راهنمایی نمایند.

----------


## amirzazadeh

> باسلام
> من جدولی دارم که محتویات آن گردش حساب مثلاً جاری مشتریان می باشد. فیلدهای این جدول عبارتند از تاریخ ، مبلغ بدهکار ، مبلغ بستانکار ، مانده حساب و ...
> حال می خواهم وقتی بوسیله یک کوری گردش حساب یک مشتری را در بازه زمانی خاص مشاهده می کنم میانگین حساب وی نیز در همان تاریخ گزارش شود. راه حل چیست؟ دوستان راهنمایی نمایند.


سلام
شما ميتونيد در هنگام ساخت گزارش گزينه average  رو انتخاب كنيد و يا اينكه در يك تكست باكس باند نشده مجموع بر تعداد ركوردها تقسيم كنيد تا ميانگين به دست بياد.
............................
موفق باشيد

----------


## m-razavi

این مطلب که درست است . اما می خوام مثلاً در صورتحسابی بصورت زیر معدل حساب در طول دوره مورد گزارش ( از 1/6/89 تا 15/6/89 ) محاسبه بشه.
تاریخ    -      مانده حساب 
1/6/89 -   100.000
5/6/89 -   350.000
6/6/89 -   150.000
8/6/89 -   1.000.000
14/6/89-   800.000

----------


## m-razavi

از مهندسان عزیز کسی هست راهنمایی کنه؟
باتشکر

----------


## linktaz

> از مهندسان عزیز کسی هست راهنمایی کنه؟
> باتشکر


 سلام.
امیدوارم مشکلت حل بشه.
موفق باشی

----------


## m-razavi

باسلام و تشکر از جناب Linktaz
اما بازهم منظور من این نبود بطور مشخص در مثالی که قبلاً ذکر کردم این هست که میانگین حساب فرد در یک دوره زمانی خاص (1/6/ تا 15/6) برای رسوب پول وی در پایان هر روز چقدر است بطور نمونه
تاریخ - مانده حساب  - ایام ماندگاری تا تراکنش بعدی - وزن 
1/6/89 - 100.000     -       4                                - 400.000
5/6/89 - 350.000     -        1                               -   350.000
6/6/89 - 150.000    -       2                                 -  300.000
8/6/89 - 1.000.000 -     6                                  -  6.000.000
14/6/89- 800.000  -      2                                   - 1.600.000
جمع                     -     15 روز                             - 8.650.000 ریال
=>  میانگین حساب برای این دوره 15 روزه   5.766.666 ریال

----------


## جعفر88

اگه بخوايد ميانگين رو بر مبناي اختلاف روزهاي دو تاريخ محاسبه كنين بايستي يه فيلد محاسباتي را با استفاده از تابع محاسبه اختلاف تاريخ شمسي كه در فايلهاي دوستان موجوده به شكل زير در يك فيلد پرس و جو يا كادر متن گزارش اعمال كنين :
([تاريخ انتها],[تاريخ ابتدا])DiffFaDate/([فيلد مانده]*[فيلد ايام ماندگاري تا تراكنش بعدي])Sum
در اين فرمول فرض شده كه شما تابع محاسبه اختلاف دو تاريخ رو به نام DiffFaDate قبلا در ماژول برنامه دارين(نمونه تابع). براي كاهش حجم اطلاعات جدول و بهينه سازي بانك هم نياز نيست شما اطلاعات فيلد به نام مثلا وزن را هم ذخيره كنين چون مقادير ورزن هميشه از طريق فيلدهاي ديگه قابل محاسبه است .

----------


## ali190

باسلام
جناب m-razavi عزیز برای اینکه مشکلتون سریعتر حل بشه خواهش میکنم یک فای نمونه از مشکلتون رو اینجا آپ کنید تا سریعتر مشکلتون بر طرف بشه
جناب m-razavi عزیز شما یه قولی هم در تایپیک *SQL server + Microsoft Access* به دوستان داده بودید.



> باسلام خدمت دوستان
> من حدود 5 ماهی که وارد سایت نشده بودم . حالاکه اومدم و این تاپیک را دیدم خوشحالم . اما از پراکندگی مطالب آن ناراحت.
> خودم تا حالا چند بانک اطلاعاتی برای برخی ادارات نوشتم و همش بصورت اکسس پروجکت هست . واقعاً بنظرم اکسس پروجکت بی نظیره و کارایی آنهم بالا و در عین حال ساده . هرگز هم با مشکل سرعت و امنیت و مسایلی از این دست مواجه نشدم.
> انشاء اله در اولین فرصت یک نمونه برنامه دبیرخانه که حدوداً 4 سالی است امتحان خودش را پس داده برای علاقمندان می ذارم . 
> __________________
> سیدمحمدرضوی


ممنون از لطفتون
یاعلی

----------


## m-razavi

باسلام
یک فایل نمونه گذاشتم . می خوام وقتی فرم form1 رابرای یک شماره حساب (مثلاً 1 ) اجرا می شه در همان بازه زمانی میانگین حساب هم نمایش داده بشه.
راجع به مطلب تاپیک sql هم چون یکی از همکارام مرخصیه حسابی گرفتارم و یک دفعه هم خواستم نمونه بذارم که چون حجمش خیلی بالا بود نشد.
در اولین فرصت انجام می دم.

----------


## m-razavi

باسلام
از دوستان تقاضای کمک دارم . پروژم متوقف شده
برای حل مشکل چیزی که به نظرم می رسم اینکه در فایل ضمیمه بالا در فرمی که صورتحساب مشتری را نشان می دهد یک تکست باکس در زیرفرم تعریف کنم و این تکست باکس در هر رکورد ، تاریخ رکورد قبل از خود را برگرداند . و سپس با کمک تابع تفاضل تاریخ شمسی تفاوت تاریخ این تکسک باکس با تاریخ خود رکورد را در مانده ضرب کرده تا وزن هر مانده بدست بیاد و سپس جمع تمام این تکست باکسها را بر ایام تقسیم کنیم تا میانگین بدست بیاد.
نکته مهم اینجاست که چه چوری این تکست باکس تاریخ رکورد قبل از خود را برگرداند . 
از دوستان می خوام راهنمایی کنید.

----------


## amirzazadeh

> باسلام
> از دوستان تقاضای کمک دارم . پروژم متوقف شده
> برای حل مشکل چیزی که به نظرم می رسم اینکه در فایل ضمیمه بالا در فرمی که صورتحساب مشتری را نشان می دهد یک تکست باکس در زیرفرم تعریف کنم و این تکست باکس در هر رکورد ، تاریخ رکورد قبل از خود را برگرداند . و سپس با کمک تابع تفاضل تاریخ شمسی تفاوت تاریخ این تکسک باکس با تاریخ خود رکورد را در مانده ضرب کرده تا وزن هر مانده بدست بیاد و سپس جمع تمام این تکست باکسها را بر ایام تقسیم کنیم تا میانگین بدست بیاد.
> نکته مهم اینجاست که چه چوری این تکست باکس تاریخ رکورد قبل از خود را برگرداند . 
> از دوستان می خوام راهنمایی کنید.


سلام
به عنوان يك راهنمايي كلي اين كار با استفاده از ركوردست امكانپذير هست يعني شما بعد از باز كردن ركوردست به ركورد جاري منتقل ميشين و بعد با استفاده از دستور rs.move previous به ركورد ماقبل منتقل و مقدار تاريخ رو در تكست باكس مربوطه جايگزين ميكنيد.
.......................
موفق باشيد

----------


## m-razavi

ضمن سلام مجدد و تشکر از مدیر محترم بخش
اگر ممکنه در فایل نمونه راهنمایی تون رو عملیاتی کنید . تسلطی کافی به رکوردست مخصوصاً برای این مورد ندارم.

----------

