PDA

View Full Version : سوال: گزارشگیری ترکیبی از زنجیره داده ها همراه با محاسبه مجموع یک زنجیره در ماه های سال (Access 2013)



frisky_boy
پنج شنبه 12 دی 1392, 19:55 عصر
سلام دوستان

دو تا جدول Interchange و Demand دارم. مدل مفهومی جدول Interchange زنجیره کالای D را نشان می دهد:

A---->B---->C---->D (یعنی کالای نهایی و موجود D، همان کالاهای C , B , A قبل ترها هستند.)

یا مثلا G---->F (یعنی کالای F همان کالای G سابق است.)


در جدول دوم (Demand) هم میزان فروش ماهانه کالاها آمده است.


حالا گزارش یا کوئری‌ای می خواهیم که میزان فروش کالای نهایی زنجیره را در ماه نشان دهد. با این توضیح که مثلا برای میزان فروش کالای D در ماه FAR، باید سابقه زنجیره کالای D در آن ماه خاص نیز در محاسبه قرار گیرد.
یعنی عدد فیلد سوم، مجموع فروش کالاهای A , B , C , D در ماه فروردین باشد.

یعنی گزارشی به فرمت زیر:


D FAR 10
D ORD 0
D SHA 23
F KHO 16

و به همین ترتیب...

آیا باید با VBA نوشت یا با دستورات کوئری SQL هم میشه تو اکسس این کار رو انجام داد؟

برای تفهیم بیشتر عکس های ضمیمه شده را ببینید. قبلا از وقتی که برای کمک و راهنمایی من میذارین ممنونم.

frisky_boy
سه شنبه 17 دی 1392, 13:35 عصر
من مشکلمو همون روز یا فرداش حل کردم. با کلی کدنویسی و ساخت DB جدید. از مشاهدات دوستان ممنونم.

mohammadsaleh
سه شنبه 17 دی 1392, 20:43 عصر
به نظرم این طرز سئوال کردن و جواب دادن به خود بی احترامی به اعضا میباشد
دوست عزیز شما حداقل نمونه خود را ضمیمه کنید دیگران بیکار نیستند که برای کمک به شما بنشینند طراحی جدول ... بکنند تا ببینند ایا میتوانند مشکل شما را حل کنند یا نه

20mohammad
سه شنبه 17 دی 1392, 21:02 عصر
به نظر من اتفاقی نیفتاده که آقا محمد صالح ناراحت شده ،بنده خدا 12 دی پست گذاشته هیچکی نظر نداده تازه 17 دی خودش مشکلش رو حل کرده ، هیچ بی احترامی نشده ، فقط کاش راهی رو که خودش پیدا کرده بود رو توضیح میداد همین

frisky_boy
چهارشنبه 18 دی 1392, 09:14 صبح
آقایmohammadsaleh (http://barnamenevis.org/member.php?46642-mohammadsaleh)

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

حتی اگر من اشتباه کردم شما خیلی آرومتر همون روزی که دیدین میومدین درخواست توضیح بیشتر یا گذاشتن فایل میدادین...نه این که سکوت کنین و امثال من رو هم بی جواب بذارین.

به نظر من کامنت شما، عجولانه بود و بی احترامی به من و بقیه دوستان...

موفق باشید.

frisky_boy
چهارشنبه 18 دی 1392, 09:29 صبح
20mohammad (http://barnamenevis.org/member.php?313227-20mohammad) و Abbas Amiri (http://barnamenevis.org/member.php?u=189381)

از تایید شما ممنونم، در مورد راه حل باید بگم که یه تابع نوشتم که پارامتر ورودیش ماه های سال بود. تو این تابع ابتدا زنجیره ها یعنی اون کالای نهایی هر زنجیره رو پیدا کردم (طبق مثال بالا یعنی زنجیره D و زنجیره F) و به ازای هر ماه سال که تابع براش اجرا می شد یه رکورد تو یه جدول جدید به اسم Result اینسرت کردم (با تعداد اولیه خود D یا F در اون ماه سال)...تو مرحله بعدی رفتم کالای قبلی D یا F رو پیدا کردم. باز اگر در اون ماه سال رکوردی داشت، عددش رو به عدد قبلی زنجیره D یا F اضافه کردم با دستور Update...و به همین ترتیب رفتم عقب تا به ابتدای زنجیره برسم. ابتدای زنجیره جاییه که اون کالا دیگه خودش AfterProduct کالای دیگه ای نباشه...

و نهایتا با فراخوانی تابع در دکمه گزارشگیری روی فرم، به تعداد ماه های سالهایی که می خواستم و اجرای یه کوئری ساده Select * از جدول Result به فرمت نهایی که می خواستم رسیدم. البته برای این که در گزارش های بعدی و کلیک دکمه رکوردهای جدول result تکراری و غلط نشن، ابتدا یه Delete * اجرا می کنم که جدول نتایج خالی بشه و گزارشگیری جدید داشته باشیم و در لحظه با آخرین تغییرات جداول...

امیدوارم خوب توضیح داده باشم. باز اگر سوالی بود در خدمتم.