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:
![]()

Rispondi quotando