PDA

View Full Version : سوال: یه سوال درخصوص گزارش گیری



aimaz57
پنج شنبه 26 فروردین 1389, 09:46 صبح
من توی دیتا بیس پیوست دوتا جدول دارم یه گزارشم طراحی کردم ولی هرچه سعی میکنم نمی تونم اونمطلب دلخواه ازش در بیارم توی عکس پیوستم مطلب مورد درخواستم گذاشتم اگر امکانش هست راهنمایی بفرمایید
مرسی

dadsara
پنج شنبه 26 فروردین 1389, 10:12 صبح
سلام
باتوجه به اینکه فیلد بالانس و جمع در گزارش جنابعالی وجود نداشت لذا ریپورت جدیدی ساخته شد

aimaz57
پنج شنبه 26 فروردین 1389, 10:36 صبح
سلام
جوابی که من میخواستم جمع تنها نبود
درفیلد بلانس درصورتیکه سند پرداختی باشد گزینه بالانس مقدار سند را جمع می زند ودر روبروی جمع مقدار سند وبالانس قبلی را نشان می دهد واگر سندواریزی باشد مقدار بلانس جدید تفاضل بین بالانس قبلی ومقدار سند واریزی خواهد بود ودر اخر گزارش اخرین بالانس را خواهیم دید

dadsara
شنبه 28 فروردین 1389, 08:18 صبح
سلام
مشابه خواسته جنابعالی قبلا در یک نمونه مربوط به اسناد حسابداری انجام شده بود

aimaz57
شنبه 28 فروردین 1389, 12:01 عصر
سلام بزرگوار
بسیار مثبت بود ولی اگه یه شرح مختصری هم می نوشتی :لبخند: خرسندتر می شدیم بازهم مرسی

dadsara
یک شنبه 29 فروردین 1389, 07:46 صبح
سلام
شما به قسمت VBA ریپورت بروید کدها آنجا نوشته شده است هرجا نامفهوم بود بفرمائید

aimaz57
یک شنبه 29 فروردین 1389, 08:04 صبح
سلام
خیلی تشکر
میشه خروجی این کدها رو فقط توی یه کوئری دید چون من اطلاعات کدنویسیم ضعیفه
البته اگه امکانش باشه ممنون می شم کمک کنید
خروجی تو کوئری باشه

dadsara
یک شنبه 29 فروردین 1389, 08:15 صبح
سلام
درقسمت کوئری تصور نمی کنم به این شکل بتوان انجام داد چرا که در کوئری شما تنها یک محیط دارید ولی در ریپورت شما می توانید در قسمت مورد نیاز کدهای مستقل و متغیرهای متفاوت تعریف کنید
طبق اظهار یکی از دوستان همین سایت : چون نهادی پای در ره صحبت از ماندن نکن

aimaz57
یک شنبه 29 فروردین 1389, 08:42 صبح
سلام ببخشید میشه حداقل تواین دیتابیس فرم روحذف کنید وریپورت مستقیماً بدون هیچ متغیری ازکوئری بیاد
خیلی مزاحم شدم ببخشید:لبخند:

aimaz57
یک شنبه 29 فروردین 1389, 13:20 عصر
سلام یعنی پرسش جهت تشکیل گزارش از کوئری بیاید نه از داخل فرم
مرسی

dadsara
یک شنبه 29 فروردین 1389, 20:06 عصر
سلام
دوست عزیز باتوجه به اینکه معمولا کاربران به دیزاین کوئری دسترسی ندارند پس تنها از طریق فرم است که می توان متعیرهای خود را پاس کنند
اما اگر سوال شما اینگونه باشد که چگونه می توان با اجرای ریپورت متغیرها درخواست شود کافی است شما در قسمت شرط کوئری از علامت [ ] استفاده کنید و داخل کروشه متن مورد نیاز را بصورت سوال قرار دهید

aimaz57
دوشنبه 30 فروردین 1389, 07:33 صبح
سلام
من توی پرسش کوئری [] جایگزین سوال کردم ولی error میده می شه یه نیگا بندازین
مرسی:خجالت:

dadsara
دوشنبه 30 فروردین 1389, 11:32 صبح
سلام
در گزارش ساخته شده گزارش از سه منبع داده استفاده می کند
در قسمت Detail گزارش از یک کوئری و دو قسمت Header و Footer از منبع داده های مختلف استفاده می کنند

Private Sub ReportFooter_Format(Cancel As Integer, FormatCount As Integer)
Dim db As Database
Dim rst As Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT Sum(bestankar),Sum(bedehkar) FROM MOTALEBAT where(MOTALEBAT.tarikh <= '" & [Forms]![form1]![Text2] & "')")
Me.Text49 = rst.Fields(0)
Me.Text51 = rst.Fields(1)
If Me.Text51 > Me.Text49 Then
Me.Text60 = "ÈÏå˜ÇÑ"
Me.Text62.ForeColor = RGB(255, 0, 0)
ElseIf Me.Text51 < Me.Text49 Then
Me.Text60 = "ÈÓÊÇä˜ÇÑ"
Me.Text62.ForeColor = RGB(0, 0, 255)
Else
Me.Text60 = "0"
End If
Me.Text62 = Me.Text51 - Me.Text49
If Me.Text62 < 0 Then
Me.Text62 = Me.Text62 * -1
End If
End Sub
Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer)
Dim db As Database
Dim rst As Recordset
Dim temp As Integer
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT Sum(bestankar), Sum(bedehkar) FROM MOTALEBAT WHERE (MOTALEBAT.tarikh < '" & [Forms]![form1]![Text0] & "') ")
Me.Text41 = rst.Fields(0)
Me.Text45 = rst.Fields(1)
If Me.Text45 > Me.Text41 Then
Me.Text56 = "ÈÏå˜ÇÑ"
Me.Text58.ForeColor = RGB(255, 0, 0)
ElseIf Me.Text45 < Me.Text41 Then
Me.Text56 = "ÈÓÊÇä˜ÇÑ"
Me.Text58.ForeColor = RGB(0, 0, 255)
Else
Me.Text56 = "0"
End If
Me.Text58 = Me.Text45 - Me.Text41
If Me.Text58 < 0 Then
Me.Text58 = Me.Text58 * -1
End If
End Sub
لذا بعید می دانم بشود فقط با یک کوئری آنرا استخراج کرد

aimaz57
دوشنبه 30 فروردین 1389, 14:26 عصر
سلام
یعنی هیچ راهی نیست:ناراحت:
بازم مرسی

aimaz57
سه شنبه 31 فروردین 1389, 11:39 صبح
سلام دوستان
بنظرتان این موضوع مختومه است

بازم مرسی

aimaz57
چهارشنبه 01 اردیبهشت 1389, 15:26 عصر
سلام
دوستان این موضوع هم مختومه گردید؟

aimaz57
سه شنبه 07 اردیبهشت 1389, 13:32 عصر
سلام
دوستان امیداوار بودم بالاخره یکی گوشه چشمی به ما بندازه ومشکلمان رو اساسی حل کنه
هنوزهم امیدوارم----------------------------:تشویق:

aaa_zarea
سه شنبه 07 اردیبهشت 1389, 13:41 عصر
با عرض پوزش از dadsara فقط مي خواستم يه كمك كوچولو كرده باشم aimaz57خواسته شما به پيوست مي باشد.

aimaz57
سه شنبه 07 اردیبهشت 1389, 14:01 عصر
سلام دوست عزیز
مرسی از راهنمایی میشه به فایل پیوست نگاه بندازین
ببینی تو این حالتم میشه کاری کرد( وقتی روی ریپورت کلیک می کنی ماژول ایراد می گیره)
بازم مرسی

dadsara
سه شنبه 07 اردیبهشت 1389, 14:30 عصر
سلام
دوست عزیز در نمونه ای که بنده خدمتتان ارائه نمودم از فرم استفاده شده بود ولی جنابعالی از کوئری که مقدار را هنگام اجرا میگیرد استفاده نموده اید
خطای ظاهر شده نیز مربوط به همین قسمت است ، مقدار مانده از قبل طبیعتا باید کوچکتر از فیلد "از تاریخ " باشد که بنده آنرا از فیلد Text0 موجود روی فرم Form1 استخراج می کردم

WHERE (MOTALEBAT.tarikh < '" & [Forms]![form1]![Text0] & "')

aimaz57
چهارشنبه 08 اردیبهشت 1389, 11:11 صبح
سلام
پس حتماً باید فرمی موجود باشه؟
یا اینکه میشه این کارو فقط با دو کوئری----- یه ریپورت را بندازیم
مرسی از شما
اگه میشه رو دیتا بیس نشون بدین

aimaz57
شنبه 11 اردیبهشت 1389, 11:43 صبح
سلام
اگر امکانش هست با توجه با داشتن فقط همین دو کوئری و ماژول موجود ریپورتو بسازیم ممنون می شم راهنمایی کنید.

aimaz57
سه شنبه 14 اردیبهشت 1389, 11:05 صبح
سلام دوستان گفتم اگه راه داره تو این مسیر مرا راهنمایی کنید