2016-10-05 1 views
0

Ich versuche, eine individuelle Zeugnis für die Studenten meiner Hochschule zu entwerfen. Ich habe eine Tabelle namens "tbl_student", wo ihre Marken gespeichert sind. Ich habe 6 Spalten für 6 verschiedene Themen. Ein Schüler kann nur 5 Fächer wählen, d. H. 4 werden benötigt, und Computer und Mathematik sind optionale Fächer, in denen ein Schüler einen auswählen kann.
Wenn nun ein std wählt Comp. dann sind die Markierungen in der Mathe-Spalte 0, ebenfalls für Mathe. Ich versuche, einen individuellen Bericht Karten für 10 Studenten zu drucken. Aber eines der Label für das optionale sollte Computer oder Mathematik basierend auf dem Wert der Spalte anzeigen. Hier ist der Code iDynamische Beschriftung in einem Bericht mit 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 

Das Ergebnis versucht wird Bildunterschriften alle Etiketten gleich für alle Studenten.

+1

"Ich habe 6 Spalten für 6 verschiedene Themen". Schlechte Idee. Sie sollten Ergebnisse pro Schüler pro Kurs speichern. Informiere dich über die Normalisierung. – Rene

Antwort

2

Wenn Sie unterschiedliche Werte für verschiedene Zeilen im Bericht/Formular anzeigen möchten, sollten Sie gebundene Textfelder verwenden. Beschriftungen und ungebundene Textfelder sind für alle Zeilen im Detailbereich identisch. Fügen Sie eine neue berechnete Spalte für die optionale Bezeichnung in der Basisabfrage hinzu und verwenden Sie diese anstelle der Bezeichnung.

Verwandte Themen