2016-10-05 8 views
0

私の大学生のための個別のレポートカードをデザインしようとしています。私は彼らのマークが格納されている "tbl_student"と呼ばれるテーブルを持っています。 6つの異なる科目に6つの列があります。学生は5つの科目、すなわち4つの科目のみを選択することができ、コンピュータと数学はいずれかの科目を選択できる任意の科目です。
stdがCompを選択すると、数学の列の印は0、同様に数学です。 私は10人の学生のための個々のレポートカードを印刷しようとしています。しかし、オプションのラベルの1つは、列の値に基づいてコンピュータまたは数学を表示する必要があります。 は、ここで私は結果が、それはすべての生徒に同じすべてのラベルをキャプションれvbaを使用したレポートの動的ラベルのキャプション

'declare the variables 
Dim d As Database 
Dim r As Recordset 
Dim comp As Field, maths As Field 

'the data from the table 
Set d = CurrentDb() 
Set r = d.OpenRecordset("tbl_student") 
Set id = r.Fields("Student ID") 
Set comp = r.Fields("Computer") 
Set maths = r.Fields("Mathematics") 

'check for the column value 
While Not r.EOF 
If (comp = 0) Then 
Me.labelOptional.Caption = "Mathematics" 
ElseIf (maths = 0) Then 
Me.labelOptional.Caption = "Computer" 
    Else 
    Me.labelOptional.Caption = "none" 
    End If 

しようとしたコードです。

+1

「6種類の科目に6つの列があります」悪い悪い考え。コースごとに学生1人につき結果を保存する必要があります。正規化を読んでください。 – Rene

答えて

2

レポート/フォームの行ごとに異なる値を表示する場合は、バインドされたテキストボックスを使用する必要があります。ラベルおよび非連結テキストボックスは、詳細セクションのすべての行で同じになります。オプションのラベルの新しい計算カラムを基本クエリーに追加し、ラベルの代わりに使用します。

関連する問題