PDA

View Full Version : محاسبات برای همیشه



ishafaaty
سه شنبه 12 دی 1385, 21:31 عصر
سلام علیکم
در محاسبات مربوط به کوئری جمع سطرها رو با این دستور به راحتی انجام می دهم


مثلاً= dars1+dars2+dars3
و سپس sum را انتخاب کرده و اجرا می شود
در مورد میانگین گرفتن اولا چطور در سطر فیلد (در کوئری) دستور را بنویسم : در این مورد پس از انتخایب گزینه avg همان جواب جمع را محاسبه می کند!!:متفکر:
آیا بایستی در سطر فیلد به جای جمع از علامت دیگه ای استفاده کنم ؟
*محاسبات مورد نظر من بصورت سطری می باشد ، و محاسبات ستونی با استفاده از دستور Total(sum,avg,…) براحتی در هر ستون قابل اجراست.


لطفا نکات مربوط به محاسبات در این تاپیک مطرح کنید!



با تشکر از همه دوستان

samaneh_h
چهارشنبه 13 دی 1385, 11:55 صبح
avg که نمیاد 3 تا درس رو باهم جمع کنه بعد میانگین اونها رو به عنوان معدل یه شما بده
avg میاد میانگین همه مقدارهای فیلد1 رو مثلاً میده.میانگین فیلدهای یک رکورد رو با هم نمی‌ده .میانگین هر فیلد رو جدا میده.dars1 اینجا یک فیلد هست . بهتر بگم avg میانگین هر فیلد رو به شما می‌ده نه میانگین هر رکورد

ishafaaty
چهارشنبه 13 دی 1385, 15:26 عصر
samaneh_h منظور محاسبه سطری است که مورد نیاز منه ، وگرنه متوجه هستم که access بصورت فیلد(ستونی) محاسبات را انجام میده،
دنبال راه حل سطری هستم ؛ من 5 درس (در یک برنامه کارنامه)را بصورت پیش فرض در نظر گرفتم (5 ستون) که در دورهای مختلف این دروس کم یا زیاد میشه ،دنبال فرمولی برای محاسبه میانگین با این قابلیت که بصورت اتوماتیک اگر دو درس کم شد خودش در فرمول میانگین 3 درس رو محاسبه کنه!

انگوران
چهارشنبه 13 دی 1385, 16:49 عصر
اگه درست متوجه شده باشم با توجه به اینکه مثلاً 5 ستون ثابت داری می تونی در ستون ششم جمع فیلدها و در ستون هفتم میانگین اونا رو به شکل ضمیمه حساب کنی .

ishafaaty
پنج شنبه 14 دی 1385, 16:52 عصر
سلام
از فایلی که ارسال کردی ممنون
فقط یه ایراد داره اینه که اون تقسیم بر 3 کارو خراب می کنه ،
گفتم ممکنه در یک دوره دروس کم یا زیاد بشه بنابراین تقسیم بر 3 ،در مواقعی که دو درس باشه میانگین رو خراب می کنه
با تشکر فراوان

انگوران
پنج شنبه 14 دی 1385, 17:29 عصر
خب اگه اینجوریه احتمالاً طراحی بانکت اشتباهه شما که نمیتونین تو هر دوره فیلدی رو اضافه یا کم کنین .

ishafaaty
پنج شنبه 14 دی 1385, 18:29 عصر
پس راه حل چیه ؟
یعنی بایستی برای هر دوره ای که درسها کم و زیاد میشه یک بانک درست کرد ؟
آیا بایستی برای این قسمت کدنویسی کرد (من که بلد نیستم) ولی فکر کنم یه چیز کنتر مانندی بایستی وقتی مقادیر مثلاً دو درس خالی(یا صفر!) بود خودش در فرمول میانگین در مخرج کسر دو درس (-2) را اعمال کنه .

average= sum/countor

countor = اگر 2 درس برابر 2 و اگه 5 درس تا برابر 5 ....

قضیه ترشی نخوری یه چیزی میشیه .....

ishafaaty
جمعه 15 دی 1385, 21:05 عصر
پس راه حل چیه ؟
یعنی بایستی برای هر دوره ای که درسها کم و زیاد میشه یک بانک درست کرد ؟
آیا بایستی برای این قسمت کدنویسی کرد (من که بلد نیستم) ولی فکر کنم یه چیز کنتر مانندی بایستی وقتی مقادیر مثلاً دو درس خالی(یا صفر!) بود خودش در فرمول میانگین در مخرج کسر دو درس (-2) را اعمال کنه .

average= sum/countor

countor = اگر 2 درس برابر 2 و اگه 5 درس تا برابر 5 ....

قضیه ترشی نخوری یه چیزی میشیه .....


لطفاً راهنمایی کنید،شدید گیر کردم ............................

انگوران
شنبه 16 دی 1385, 07:55 صبح
من خودم برای همچین مواردی یه فیلد درس و یه فیلد نمره در نظر می گیریم و درسها و نمرات مختلف رو طی رکوردهای مختلف وارد می کنم و بعد با استفاده از کویری و فعال کردن گروپ بای تعداد درسها و جمع نمرات را به تفکیک محاسبه کرده سپس میانگین می گیرم که در این حالت محدودیت تعداد درس نیز نداریم .

MM_Mofidi
شنبه 16 دی 1385, 09:24 صبح
راه حل
1- همان شمارنده که شما گفتی
2- شمارش فیلدها(در صورت تغییر تعداد فیلد)
به راحتی به کمک شیئ Fileds انجام شدنی است.

ishafaaty
یک شنبه 17 دی 1385, 15:54 عصر
راه حل
1- همان شمارنده که شما گفتی
2- شمارش فیلدها(در صورت تغییر تعداد فیلد)
به راحتی به کمک شیئ Fileds انجام شدنی است.


سلام
MM_Mofidi مثل همیشه جوابای کوتاه وتوپ
ولی ما که تازه کاریم!
لطفاًتوضیح دهید.شی FIELDS کجاست؟؟

صبا9841
شنبه 30 دی 1385, 09:14 صبح
برای این موارد در اکسل از تابع countif استفاده میشود باید معادل countif در اکسس بکار گرفته شود. برای 2 درس از طریق ترکیب تابع iif با count حل شدنی است.

MM_Mofidi
یک شنبه 01 بهمن 1385, 10:23 صبح
یکی از اشیاء موجود در جداول فیلد است به هر طریق که یک متغییر از نوع جدول درست کنید در لیست دارائیهای آن به فیلدها دسترسی خواهید داشت حال یک رکورد ست بسازید یا یک کوئری باشد یا یک جدول ساده خواه لوکال باشد یا راه دور و.......
نمونه ساده برای جدول محلی در اکسس


MsgBox CurrentDb.TableDefs("نام جدول").Fields.Count