in questi giorni ho tentato di trovare una soluzione ... in realtà ci ho solo riflettuto ... ho fatto qualche modifica alla query e riesco a visualizzare gli alunni di una determinata classe, anzichè tutti, ma con dei voti arbitrari ...
codice:
Public Sub Report_Open(Cancel As Integer)
Dim idmat As Integer
Dim idcla As Integer
Dim i As Integer
Dim tot As Integer
Dim mat() As Integer
Dim vot() As Integer
If Form_Scrutinio.CmbClasse = "" Or Form_Scrutinio.ElnMaterie.ListCount = 1 Then
MsgBox "Scegliere prima una classe e uno studente", vbCritical, "Errore"
Else
'MsgBox "Salvare lo scrutinio come: Scrutinio - " & Me.CmbClasse.Value & " - 2009-2010", vbExclamation, "Opzione salvataggio"
idcla = RicavaID.Ricava_IDclasse(Form_Scrutinio.CmbClasse.Value)
tot = Form_Scrutinio.ElnMaterie.ListCount - 1
ReDim mat(tot) As Integer
ReDim vot(tot) As Integer
For i = 1 To tot
idmat = RicavaID.Ricava_IDmateria(Form_Scrutinio.ElnMaterie.ItemData(i))
mat(i) = idmat
vot(i) = Form_Scrutinio.ElnMaterie.Column(1, i)
Next i
Me.RecordSource = "SELECT Studente.Cognome, Studente.Nome, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(1) & "," & vot(1) & ",0)) AS Ec_Aziendale, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(2) & "," & vot(2) & ",0)) AS Ed_Fisica, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(3) & "," & vot(3) & ",0)) AS Francese, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(4) & "," & vot(4) & ",0)) AS Geografia, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(5) & "," & vot(5) & ",0)) AS Inglese, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(6) & "," & vot(6) & ",0)) AS Italiano, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(7) & "," & vot(7) & ",0)) AS Matematica, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(8) & "," & vot(8) & ",0)) AS Religione, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(9) & "," & vot(9) & ",0)) AS Storia_Arte, Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(8) & "," & vot(8) & ",0)) AS TeorieRA, " & vbLf & _
"Sum(IIf(Valutazione_scrutinio.IdMateria = " & mat(8) & "," & vot(8) & ",0)) AS Tec_Comun FROM Materia INNER JOIN ((Classe INNER JOIN Studente ON Classe.IdClasse = Studente.IdClasse) INNER JOIN Valutazione_scrutinio ON Studente.Matricola = Valutazione_scrutinio.Matricola) ON Materia.IdMateria = Valutazione_scrutinio.IdMateria WHERE Classe.idclasse = " & idcla & " GROUP BY Studente.Cognome, Studente.Nome;"
End If
End Sub
adesso vorrei assegnare ad ogni studente i propri voti per materia, ma mi esce escono i voti solamente di uno studente selezionato...
ecco cosa visualizzo in vba: