PDA

View Full Version : محاسبه يك فيلد براساس فيلد ديگر



fanavar
یک شنبه 03 خرداد 1388, 15:50 عصر
سلام
براي محاسبه مانده حساب براساس فيلد kind به اينصورت كه اگه kind=1بود جمع كنه واگه kindمساوي 2 بودكم كنه البته مي خوام اينكاررو درگزارش انجام بدم دررويداد on format چي بايد بنويسم
كلافه شدم

مهدی قربانی
یک شنبه 03 خرداد 1388, 17:50 عصر
سلام
چي رو كم يا زياد كنه ، منظور شما گرفتن Sum هست يا چيز ديگه ... دقيق و كامل توضيح بديد چكار مي خواين انجام بديد ؟

fanavar
یک شنبه 03 خرداد 1388, 17:59 عصر
سلام :
مي خوام درگزارش هرچي kind اون مساوي1 هست درt1 رو باهم جمع كنه واز هرچيزي كه درt1 هست وkind اون مساوي 2 هست روازاون كم كنه

nabeel
یک شنبه 03 خرداد 1388, 21:21 عصر
سلام fanavar

از تابع DSum استفاده کنید

خدانگهدار

مهدی قربانی
دوشنبه 04 خرداد 1388, 00:54 صبح
سلام
فكر مي كنم بايد اينطوري كد رو بنويسيد :
يك تكست باكس در قسمت Report Footer قرار بديد و در رخداد On Format اون اين كدها رو اضافه كنيد .

Private Sub ReportFooter_Format(Cancel As Integer, FormatCount As Integer)
Dim valKind1 As Long
Dim valKind2 As Long
Dim valT1Sum As Long

valKind1 = Nz(DSum("t1", "table1", "kind='1'"), "0")
valKind2 = Nz(DSum("t1", "table1", "kind='2'"), "0")

valT1Sum = valKind1 - valKind2

Me.Text11 = valT1Sum
End Sub

fanavar
دوشنبه 04 خرداد 1388, 10:15 صبح
سلام :
خودم به جواب رسيدم وازتابع dsum لازم نبود استفاده بشه
باتشكر

مهدی قربانی
سه شنبه 05 خرداد 1388, 00:05 صبح
سلام
مسلماً اينكه ميفرمائيد به تابع Dsum‌ نيازي نبود قطعاً ناشي از بد رسوندن سئوالتون بوده به همين خاطر هست كه بنده اين همه تذكر ميدم كه سئوالات شفاف ، با شرح كامل و پخته مطرح بشه تا هم خواننده سئوال خوب متوجه منظور سئوال كننده بشه و هم سريعتر به اصل موضوع برسه و بتونه جواب و راه حل مناسب رو ارائه كنه .
ضمناً شما كه يك مبحثي رو استارت ميزنيد بد نيست اگر به جواب و يا راه حل رسيديد اون راه حل و تجربه رو براي استفاده ديگران ارائه كنيد و هم تاپيك رو به يك نتيجه اي رسونده و مختومه كنيد ، چه بسا اصلاً اين راه حل بدست اومده شما خيلي مطلوب نباشه و نياز به اصلاح و بهينه سازي داشته باشه يا اينكه خيلي منحصر بفرد و مناسب باشه و مفيد واقع بشه ، پس لطف كنيد منبعد اگر به پاسخ رسيديد حتماً نتيجه رو اينجا ارائه كنيد و از حذف تاپيك و يا اعلام عدم نياز به ادامه اون هم پرهيز كنيد كه اصلاً با رسالت اين سايت جور در نمياد .
موفق باشيد

fanavar
سه شنبه 05 خرداد 1388, 16:56 عصر
سلام
جناب قرباني
من چيزي روپاك نكردم فقط سئوالم روبراي اينكه به جواب رسيدم ويرايش كردم ضمنا فايل جواب رو هم ضميمه كردم
باتشكر

مهدی قربانی
سه شنبه 05 خرداد 1388, 17:41 عصر
سلام
جناب قرباني
من چيزي روپاك نكردم فقط سئوالم روبراي اينكه به جواب رسيدم ويرايش كردم ضمنا فايل جواب رو هم ضميمه كردم
باتشكر

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

nabeel
سه شنبه 05 خرداد 1388, 18:39 عصر
سلام fanavar

دوست عزیر به این عبارت نمونه که در داخل Query نوشتید دقت کنید :


Expr2: IIf([kind]=2,Sum([t1]),0)

در خصوص تابع DSum مطالعه کنید مطمئناً متوجه منظور من میشید


مسلماً اينكه ميفرمائيد به تابع Dsum‌ نيازي نبود قطعاً ناشي از بد رسوندن سئوالتون بوده به همين خاطر هست ...

Fanavar عزیز نیاز وجود داره . علت ؟... ( از خط دوم رو مجدداً مطالعه بفرمایید ) .

موفق باشید