vediamo un pò:
codice:
'attivo la connessione
Set tabella1.ActiveConnection = cn
'qui uso delle combo box per aggiungere la tabella che andremo a creare nel dbgrig "RISULTATI"
CMBtab.AddItem "RISULTATI"
If CMBtab.ListIndex = 5 Then
ADOtab.RecordSource = "RISULTATI"
ADOtab.Refresh
End If
query1 = "SELECT * FROM RISULTATI"
On Error Resume Next 'serve per far avanti il codice nonstante si sia verificato un errore
tabella1.Open query1
If Err.Number = -2147217865 Then ' codice di errore per tabella non trovata
tabella1.Close
'fai la query di creazione
query1 = "SELECT ALLIEVI.codiceA,ALLIEVI.nome,ALLIEVI.cognome," _
& "COUNT(*) AS Risposte_Esatte INTO RISULTATI " _
& "FROM ALLIEVI,TEST_INIZIALE,RISPOSTE " _
& "WHERE ALLIEVI.codiceI=TEST_INIZIALE.codiceI " _
& "AND ALLIEVI.codiceA=RISPOSTE.codiceA " _
& "AND RISPOSTE.risI=TEST_INIZIALE.risEs " _
& "GROUP BY ALLIEVI.codiceA,ALLIEVI.nome,ALLIEVI.cognome"
'codice per cancellare la tabella nel caso in cui voglia rispingere il comando
Else
tabella1.Close
query1 = "DROP TABLE RISULTATI"
cn.Execute query1
'fai la query di creazione
query1 = "SELECT ALLIEVI.codiceA,ALLIEVI.nome,ALLIEVI.cognome," _
&"COUNT(*) AS Risposte_Esatte INTO RISULTATI " _
& "FROM ALLIEVI,TEST_INIZIALE,RISPOSTE " _
& "WHERE ALLIEVI.codiceI=TEST_INIZIALE.codiceI " _
& "AND ALLIEVI.codiceA=RISPOSTE.codiceA " _
& "AND RISPOSTE.risI=TEST_INIZIALE.risEs " _
& "GROUP BY ALLIEVI.codiceA,ALLIEVI.nome,ALLIEVI.cognome" cn.Execute query1
End If
On Error GoTo 0 ' serve per eliminare il resume next
'poi apri la tabella e la scorri
query1 = "SELECT * FROM RISULTATI"
tabella1.Open query1
Do While Not tabella1.EOF
risultato1 = tabella1!codiceA & Chr(9) _
& tabella1!nome & Chr(9) _
& tabella1!cognome & Chr(9) _
& tabella1!Risposte_Esatte
FLEXquery.AddItem risultato1
tabella1.MoveNext
Loop
End If
End Sub
VA MEGLIO?