PDA

View Full Version : سوال: تفریق دو رکورد



ebadian
جمعه 20 اردیبهشت 1387, 19:04 عصر
سلام
چطور در یک کوری با 50رکورد میشه دو رکورد کنار هم را تفرق و یا جمع زد.یعنی رکورد اول و دوم را وسپس دوم و سوم وبعد سوم وچهارم و تا اخر را با هم جمع و با تفریق زد.

mehdihamedali
جمعه 20 اردیبهشت 1387, 23:06 عصر
دوست عزیز اول جستجو کن به سئوالات این جوری تو سطح فرم و کوری گزارش خیلی پاسخ داده شده

اگه F1 و F2 فیلدهات باشه از دستور زیر تو یکی از سلول های طراحی کوریت بنویس


F3: [F1] - [F2]

davood-ahmadi
جمعه 20 اردیبهشت 1387, 23:12 عصر
می توانید با کدنویسی در یک For رکوردها را قرارداده و عمل خواسته شده را انجام دهید.

ebadian
شنبه 21 اردیبهشت 1387, 18:18 عصر
دوست عزیز منظورم تفریق دو فیلد نبود بلکه دو رکورد بود.
اگه برنامه و یا کد خاصی در اختیارم بگذارید ممنون میشم

ebadian
شنبه 21 اردیبهشت 1387, 18:20 عصر
اقای احمدی ممنون میشم کد ویا روش خاصی رو در مطرح کنید

mazoolagh
شنبه 21 اردیبهشت 1387, 21:53 عصر
با توجه به شرایط راههای مختلفی هست - خواسته شما اسمش running total query یا running sum query هست که پیشنهاد میکنم گوگلش کنین. اینطوری تمام راه حلها رو پیدا و بر اساس شرایط خودتون مناسبترین رو انتخاب میکنین.

ebadian
شنبه 21 اردیبهشت 1387, 22:33 عصر
دوست عزیز سرچ کردم متاسفانه هیچ مثالی که بتوانم مشکلم را حل کنم پیدا نکردم اگه امکان داره راهنمائی بیشتری بفرمائید.اگه امکان داره شاید با یه مثال مشکل ما حل بشه.

davood-ahmadi
یک شنبه 22 اردیبهشت 1387, 01:38 صبح
این هم نمونه. هم نمونه فرمی و هم نمونه گزارشی درست کردم.

ebadian
یک شنبه 22 اردیبهشت 1387, 18:13 عصر
دوست عزیز
کدی که نوشتید جالب بود فقط مشکل ما حل نشد
منظور من این بود فرضا طبق فایل شما می بایست مجموع دو رکورد اول و دوم 11000 دو رکورد دوم و سوم11000و مجموع دورکورد سوم و چهارم8000و چهارم و پنجم 11000بشود و برای تفریق نیز همین طور.
در صورتیکه طبق کد شما مجموع دو رکورد اول با رکورد سوم جمع شده است و الی اخر.
ممنون خواهم شد در صورتیکه یک کد طبق روش فوق در اختیارم بگذارید

mazoolagh
دوشنبه 23 اردیبهشت 1387, 00:13 صبح
دوست عزیز سرچ کردم متاسفانه هیچ مثالی که بتوانم مشکلم را حل کنم پیدا نکردم اگه امکان داره راهنمائی بیشتری بفرمائید.اگه امکان داره شاید با یه مثال مشکل ما حل بشه.

خوب من دقت نکرده بودم و تصورم این بود که جمع رو از ابتدا میخواین (مثل جمع ستونهای بدهکار-بستانکار) که همون running sum اصطلاحش هست.
این مورد که شما میگین فقط با استفاده از temptable و کد نویسی امکانش هست.

فقط یک سئوال: کاربردش کجاست؟

davood-ahmadi
دوشنبه 23 اردیبهشت 1387, 12:20 عصر
نمونه قبلی را تغییرش دادم.

مهدی قربانی
دوشنبه 23 اردیبهشت 1387, 14:16 عصر
سلام
نمونه آخر اين تاپيك هم مشابه نمونه اي هست كه اقا داود زحمت كشيدن :
http://barnamenevis.org/forum/showthread.php?t=98198

ebadian
دوشنبه 23 اردیبهشت 1387, 19:59 عصر
دوستان عزیز ضمن تشکر از توجه شما به این موضوع ولی مثل اینکه من خوب نتوانستم مشکل را مطرح کنم.و فایل های ذکر شده موضوع را حل نکرد.
ما روزانه از دستگاههای یک شرکت بازدید داریم و ساعت کار انها را با هر بازدید ثبت می کنیم تا بر اساس انها تعویض روغن ماشین الات را انجام دهیم.لذا پس از ثبت این اطلاعات در یک جدول نیاز داریم اختلاف ساعتهای هردو بازدید کنار هم را داشته باشیم (مثلا اختلاف ساعات بازدید اول و دوم را با هم و بعد سوم و دوم و پس از ان چهارم و سوم و...)
ودر اخر با یک queryمجموع این اختلافها وقتی به صد رسید تعویض روغن انجام خواهد شد.
یک فایل برای درک بیشتر موضوع دارم ولی نمی دانم چطور باید در تایپیک قرار بدهم.

mazoolagh
دوشنبه 23 اردیبهشت 1387, 22:06 عصر
هیچ کوئری نمیتونه این خواسته رو انجام بده - به کد نویسی نیاز دارین و باید رکوردها رو یکی یکی بخونین و محاسبه انجام بدین

مهدی قربانی
دوشنبه 23 اردیبهشت 1387, 23:10 عصر
دوستان عزیز ضمن تشکر از توجه شما به این موضوع ولی مثل اینکه من خوب نتوانستم مشکل را مطرح کنم.و فایل های ذکر شده موضوع را حل نکرد.
ما روزانه از دستگاههای یک شرکت بازدید داریم و ساعت کار انها را با هر بازدید ثبت می کنیم تا بر اساس انها تعویض روغن ماشین الات را انجام دهیم.لذا پس از ثبت این اطلاعات در یک جدول نیاز داریم اختلاف ساعتهای هردو بازدید کنار هم را داشته باشیم (مثلا اختلاف ساعات بازدید اول و دوم را با هم و بعد سوم و دوم و پس از ان چهارم و سوم و...)
ودر اخر با یک queryمجموع این اختلافها وقتی به صد رسید تعویض روغن انجام خواهد شد.
یک فایل برای درک بیشتر موضوع دارم ولی نمی دانم چطور باید در تایپیک قرار بدهم.
سلام
اول فايلتون تا حد ممكن سبك كنيد بعد تبديلش كنيد به Zip يا Rar و در پست جديد با استفاده از دكمه مديريت ضميمه ها فايل رو از دستگاه Upload و ارسال كنيد .

ebadian
سه شنبه 24 اردیبهشت 1387, 12:23 عصر
یک جدول نمونه گذاشتم و به صورت دستی مورد مورد نیاز را وارد کرده ام

davood-ahmadi
سه شنبه 24 اردیبهشت 1387, 13:51 عصر
به نمونه شما چند تا فرم و یک جدول اضافه کردم و این هم این نمونه . خوب دقت کنید.

ebadian
سه شنبه 24 اردیبهشت 1387, 21:14 عصر
اقای احمدی ضمن تشکر از توجه و وقتی که برای این مطلب گذاشتید.
در فایلی که گذاشتم اصل مطلب چگونگی محاسبه ساعت کار بین دو بازدید است که من درجدول مزکور به صورت ازمایشی جهت مشخص نمودن موضوع قرار دادم.که در اصل برنامه می باید این ساعت را محاسبه نماید.در بازدید از دستگاهها فقط ساعت کار دستگاه در زمان بازدید ثبت می گردد و وظیفه برنامه محاسبه ساعت کار بین دو بازدید است. کل مشکل من محاسبه این ساعت کار است.لزومی ندارد که این ساعت کار در یک table ثبت گردد. در صورتیکه که اگر با یک کوری قابل محاسبه باشد خیلی بهتر و در غیر این صورت اگه امکان داره با یک کد ساده قابل محاسبه باشد مشکل یک ماهه ما را حل خواهد نمود و موجب کمال تشکر خواهد بود.
جهت اطلاع در هر بازدید ساعت کار ثبت شده دستگاهها نسبت به قبل افزایش دارد و امکان ندارد در یک بازدید ساعت کار کاهش یافته باشد.
فایلی که استفاده کردید بسبار جالب بود و برای من که بیش چند سال با اکسس کار می کنم جالب و تازه بود.

ebadian
چهارشنبه 25 اردیبهشت 1387, 22:16 عصر
از دوستان ممنون میشم کمک کنند این مشکل ما برطرف گردد

davood-ahmadi
پنج شنبه 26 اردیبهشت 1387, 00:06 صبح
نمونه گذاشتم. امیدوارم که بدردتون بخوره.
فقط در فرمی که باز می شود اطلاعات بازدید جدید را به صورت تستی وارد کنید تا محاسبه را ببینید.

مهدی قربانی
پنج شنبه 26 اردیبهشت 1387, 01:39 صبح
سلام
دوست عزيز با عرض معذرت خيلي فرصت نكردم روي نمونه شما كار كنم يه سري تغييرات دادم و همينطور اشياء جديد ايجاد كردم ببينيد كار راه انداز هست ؟ ضمناً برنامه جوري طراحي شده تا در صورتيكه تعويض روغن روي يك سري ركورد ثبت شد اين ركوردها در محاسبه بعدي لحاظ نخواهند شد يعني عملاً ساعت براي خودرو مورد نظر 0 ميشه و بواسطه ثبت اطلاعات جديد محاسبه مجدداً روي ركوردهاي جديد صورت ميگيره .

بانی کوچولو
جمعه 27 اردیبهشت 1387, 20:02 عصر
من میخواهم یک سیستم حضور وغیاب با اکسس طراحی کنم . نمیدانم چه تابعی استفاده کنم که ورود و خروج به طور خودکار بر اساس ساعت سیستم وارد شوند و چگونه اختلاف بین ساعتها حساب شود؟

ebadian
شنبه 28 اردیبهشت 1387, 19:46 عصر
با تشکر از دوستان عزیز اقایان داوود و مهدی که باعث رفع مشکل کاری ما شدند
فقط دو مشکل جزئی باقی مانده است.
در فایل اقا مهدی محاسبات بر اساس minو maxانجام گرفته که اگر احیانا در حین کار ساعت یکی از دستگاهها خراب و تعویض گردد که ساعت شمار از صفر شروع خواهد کرد که محاسبات اشتباه خواهند شد و اطمینانی به محاسبات نخواهد بود.
در فایل اقا داود که جواب سوال ما بود نیز نکته فوق همین تاثیر منفی را خواهد داشت . در محاسبات این فایل در صورت تعویض ساعت کار محاسبات منفی خواهد شد.
یک نکته دیگر اگر احیانا اپراتور عدد اشتباهی فرضا کمتر از دفعه قبل وارد نماید برنامه خطا را متوجه نمی شودو زمانهای تعویض خطا خواهند داشت.
ممنون خواهم شد این موارد نیز برطرف گردد

مهدی قربانی
شنبه 28 اردیبهشت 1387, 22:58 عصر
فقط دو مشکل جزئی باقی مانده است.
در فایل اقا مهدی محاسبات بر اساس minو maxانجام گرفته که اگر احیانا در حین کار ساعت یکی از دستگاهها خراب و تعویض گردد که ساعت شمار از صفر شروع خواهد کرد که محاسبات اشتباه خواهند شد و اطمینانی به محاسبات نخواهد بود.


سلام
منظورتون رو از تعويض دستگاه متوجه نمي شم اگر دستگاه تعويض بشه خوب شما عملاً بايد كاركردهاي ثبت شده اخير دستگاه رو حذف كنيد و باصطلاح از نو شروع به ثبت ساعات كار دستگاه كنيد در اين صورت با ايجاد يك فرآيند حذف بر اساس شماره دستگاه امكان حذف اطلاعات قبلي امكانپذير ميشه . اگر حدسم درسته اعلام كنيد تا نمونه رو اصلاح كنم در غير اينصورت بيشتر توضيح بديد .

ebadian
شنبه 28 اردیبهشت 1387, 23:29 عصر
سلام
منظورم تعویض ساعت کار دستگاه است که کار شماره انداز ساعت را به عهده دارد نه خود دستگاه