allora.. sono riuscita a fare il report, ma incompleto.

praticamente quando popolo il report, mi mette i voti di un solo studente... ovvero quello che seleziono da una listbox.

per popolare il report ho utilizzato il seguente codice

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

        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 Studente INNER JOIN (Materia INNER JOIN Valutazione_scrutinio ON Materia.IdMateria=Valutazione_scrutinio.IdMateria) ON Studente.Matricola=Valutazione_scrutinio.Matricola GROUP BY Studente.Cognome, Studente.Nome;"
        
End Sub
ho utilizzato
Me.RecordSource = "SELECT ...."

ma non riesco a fare la WHERE dove dico che la matricola deve essere uguale agli studenti della classe a cui appartegono.


esiste un altro comando al posto di RecordSource che mi faccia inserire i dati uno alla volta, magari con un ciclo?

aiuto