2012-03-20 8 views
0

ここでは圧縮形式です。私は3つのメインテーブルからデータを引き出す:Microsoft Access 2010 - クエリベースのレポートのcaculatedフィールドによるフィルタリング

StudentData - PKは学生のID番号です。連絡先情報、現在のステータス(なしの場合は '00'、審査の場合は 'P'、一時停止の場合は 'S')、および累積gpaデータが含まれます。

CourseData - PKはCRNです。短縮された件名とコース番号(IE ECON 200)が含まれます。

StudentCourses - PKはAutoNumです。 StudentDataとCourseDataの多対多関係テーブル。また、特定の学生のクラス(グレード、クレジット時間など)の統計情報も含まれています。

だから、いくつかのサンプルデータは、次のようになります。

から

StudentData

ID:12345678 名:ジョン・ドウ。 ... [その他の連絡先情報]; 00; CumCreditHours:100; CumCoursePoints:190

から

CourseData

CRN:0001;省略形:ECON;コース番号:101

CRN:0002;省略形:CSCI; CourseNumber 201

から

StudentCourses

AUTONUM:1 StudentID:12345678。 CRN:0001;甲種-;クレジット:3

AutoNum:2 StudentID 12345678; CRN:0002;等級:B;クレジット: - :

まず、学生が手紙の等級を取り、変換コースのすべてを見つけ、クエリの実行を3

この時点で、これは私が物事を設定している方法ですポイント値に変換する。最初のクエリに基づく別のクエリは、ポイントの合計とクレジット時間を合計します。 3番目のクエリでは、これらの合計を取り、ポイント合計とクレジット時間合計を分けてGPAを計算します。

これとは別に、StudentDataテーブルの累積ポイントと時間を累積して(再度ポイントを時間で割って)累積GPAを計算するクエリが実行されます。

次に、GPA、累積GPA、現在のステータス、累積クレジット時間の両方を取得し、学生に推奨されるアクションを計算します。だから、私たちの例のデータのために、それは次のようになります。

_

SemesterGPA:3.33;累積GPA:1。90; CurrentStatus:00; CumulativeCreditHours:100

_

私はのように見えるネストされたIIF文のシリーズとして設定し、その推奨アクションを決定するために式:

式IIf([CurrentStatus] = "00" そして、 [CumulativeGPA] < 2と[CumulativeCreditHours] = 12と[CumulativeGPA] < = 23、 "PFY"、IIf([CurrentStatus] = "00" And [CumulativeGPA]> 1.7と[CumulativeGPA] < = 1.99と[CumulativeCreditHours ]> = 24、 "P"、IIf([CurrentStatus] = "00" And [CumulativeGPA])< 2 [SemesterGPA] < 2 A [CumulativeGPA] = 2と[CumulativeGPA] < 12、 "W"、IIf([CurrentStatus] = "00" And [CumulativeGPA] = 2、[CumulativeGPA]= 2.5 [SemesterGPA] < 2 [CumulativeCreditHours] = 12、 "WUP "[CurrentStatus] =" 00 "And [CumulativeGPA] < 1.7と[CumulativeGPA] = 24、" SUSP "、IIf([CurrentStatus] =" P ")[CumulativeGPA] < 2 [SemesterGPA]> = [CumulativeGPA] = 2、[SemesterGPA] < 2 [CumulativeCreditHours]> = 12、 "SPCP"、IIf([ [CumulativeGPA] < 2 [SemesterGPA] < 2 [CumulativeGPA]> = 2そして[CumulativeGPA]> = 2そして[CumulativeGPA]> = 2そして[CumulativeGPA] > 12、IIf(IsNull([PriorSuspension])、 "S(FD)"、 "D(SD)")、 "None"))))))))))))))))))

この例では、John Doeの推奨アクションは、現在のステータスが00であり、24の累積クレジットを持ち、累積gpaが1.7と1.99の間であるため、 'P'になります。

問題が発生しました:推奨された操作でフィルタリングできるレポートを作成したいと考えています。私が以前に持っていた問題点を詳述しましたが、要するにレポートをセットアップした方法(上記の情報を提供するためにStudentDataテーブルに基づいたレポート内のサブレポートに情報が表示されますStudentIDを使用したクエリ)では、フィルタリングするフィールドがメインレポートではなくサブレポートに存在するため(サブレポートのフィルタプロパティを設定できないため)、これを行うことはできません。

アイデア?

+0

サンプルデータとスキーマ、推奨されるアクションに必要な計算を投稿して、他のすべてのものを取り除くことをお勧めします。もし誰かがそれを読もうと思えば、それは編集アーカイブにあります。 – Fionnuala

+0

良いアイデア、すぐにそれに着きます。 =) –

答えて

0

私はこれを今すぐ使用できるようにしています。私は、学期のGPAを計算しているときに、プロセス中のある時点で結果をIDでグループ化していたことに気付きました。これにより、フォームからID番号を取得した最初のクエリの部分を削除することができました。プロセスの最後のクエリはすべて学生IDですべてをリンクしていたので、個々のレコードは必要なすべての情報を保持していました。

とにかく...半分、このような単純な何かが私の問題への答えであることが期待が、私はまだそれがそれを把握するために私にこの長いを取ったことに失望してい

、必要がある場合があります誰のおかげでこの問題の解決策を考えてきました。

関連する問題