نقل قول: فیلتر کردن یک گزارش
شرط فیلتر رو به همون سطح رکوردسورس ریپورت ببرین یعنی همون کوئری که گفتین
چون جدول پرداختها به جدول دانش آموزان مرتبط هست خیلی ساده با یک sum جمع پرداختها رو دارین و همونجا با "قابل پرداخت" مقایسه کنین
نقل قول: فیلتر کردن یک گزارش
ممنونم
این تو ذهنم رسید
ولی در مرحله اجرا موندم
این کد رو باید کجا بنویسم و چجوری به اون فیلدش مرتبط کنم؟
نقل قول: فیلتر کردن یک گزارش
نقل قول: فیلتر کردن یک گزارش
نمونه رو براتون میفرستم خصوصی
چون مقداری اطلاعات توش بود نخواستم اینجا بذارم
توی فرم چاپ
تب امور مالی قرآن آموز
بخش انتهایی
جنسیت رو پسر بزنید و دوره رو 1395/1396
دوتا فیلد دیگه لازم نیست به پر کردن
اون فرم اپشن هم قراره متصل بشه به همین گزارش که سوال بنده همین بخش هست.
نقل قول: فیلتر کردن یک گزارش
لازم نبود که کل دیتا رو بفرستید. ده-پونزده رکورد جدا میکردین و اسامی رو غیرواقعی میگذاشتین.
نمونه دیگه میگذارم ازش ایده بگیرین.
نقل قول: فیلتر کردن یک گزارش
چگونه برای تست برنامه های خود دیتا بسازیم:
Option Compare Database
Option Explicit
Public Function RandomX(Min As Long, Max As Long) As Long
RandomX = Int((Max - Min + 1) * Rnd + Min)
End Function
Public Function FillData()
CurrentDb.Execute "CREATE TABLE Persons (PersonID COUNTER PRIMARY KEY , Person CHAR(20))"
CurrentDb.Execute "CREATE TABLE Payments (PaymentID COUNTER PRIMARY KEY , PersonID LONG , Amount LONG)"
CurrentDb.Execute "CREATE TABLE Orders (OrderID COUNTER PRIMARY KEY , PersonID LONG , Amount LONG)"
Dim i, j As Integer
For i = 1 To 20
CurrentDb.Execute ("INSERT INTO PERSONS (Person) VALUES('PERSON " + Format(i, "000") + "')")
Next
Dim RS As Recordset
Set RS = CurrentDb.OpenRecordset("PERSONS")
Dim PID As Long
Do While Not RS.EOF
PID = RS("PersonID")
j = RandomX(0, 6)
For i = 1 To j
CurrentDb.Execute ("INSERT INTO Payments (PersonID,Amount) VALUES(" & PID & "," & RandomX(1000, 100000) & ")")
Next
j = RandomX(0, 5)
For i = 1 To j
CurrentDb.Execute ("INSERT INTO Orders (PersonID,Amount) VALUES(" & PID & "," & RandomX(1000, 100000) & ")")
Next
RS.MoveNext
Loop
Set RS = CurrentDb.OpenRecordset("SELECT PersonID, Balance FROM Totals WHERE PersonID In (3,7,12,15,18)")
Do While Not RS.EOF
If RS("Balance") > 0 Then
CurrentDb.Execute ("INSERT INTO Orders (PersonID,Amount) VALUES(" & RS("PersonID") & "," & RS("Balance") & ")")
ElseIf RS("Balance") < 0 Then
CurrentDb.Execute ("INSERT INTO Payments (PersonID,Amount) VALUES(" & RS("PersonID") & "," & (-RS("Balance")) & ")")
End If
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
End Function
3 ضمیمه
نقل قول: فیلتر کردن یک گزارش
1 ضمیمه
نقل قول: فیلتر کردن یک گزارش
علامت فیلد balance رو برای تشخیص بدهکار بستانکار میشه استفاده کرد.
خروجی کوئری نمونه:
ضمیمه 145916
1 ضمیمه
نقل قول: فیلتر کردن یک گزارش
نقل قول: فیلتر کردن یک گزارش
نمیدونم چطوری تشکر کنم
اطلاعات زیادی از توضیحاتی که فرمودین بدست آوردم و چیزهای زیادی یادگرفتم که بابتش خیلی تشکر میکنم
تمامی آموزه های شما کاملا کاربردی بود و بهره بردم
ولی در تصویر زیر که باید توسط اون فرم یه گزارش رو برگردونم باید چطوری عمل کنم؟
https://barnamenevis.org/attachment.p...3&d=1500645070
که با تعیین وضعیت فیلتر متناسبی اعمال بشه؟
حقیقتا مشکل من این مورد بود
باز هم تشکر میکنم بسیار
نقل قول: فیلتر کردن یک گزارش
نقل قول:
نوشته شده توسط
mazoolagh
برنامه نمونه
خبری نشد دوست عزیز؟
نقل قول: فیلتر کردن یک گزارش
میشه همین روند رو روی نمونه فایل خودم پیاده کنید
با ساختار نمونه خودم هرکاری کردم نتونستم این چیزی که فرمودین رو پیاده کنم!