Il seguente codice svolge il suo lavoro ma è tremendamente lento. Esso ricava dapprima tutti i record in cui TabIm.ImpIDEn<>759 e poi cancellla tutti i record della tabella TabPa in cui il suo campo ID è il risultato della query.
In pratica se ci sono 10000 record devo fare 10000 cnn.execute !

codice:
   Query = "SELECT TabPa.ID"
   Query = Query & " FROM TabPa INNER JOIN (TabIm INNER JOIN TabPaIm ON TabIm.ID = TabPaIm.ID) "
   Query = Query & " ON TabPa.ID = TabPaIm.ID WHERE TabIm.ImpIDEn<>759
   rsQ.Open Query, cnn
   Do Until rsQ.EOF
      cnn.Execute "DELETE FROM TabPa WHERE ID=" & CStr(rsQ(0))
      rsQ.MoveNext
   Loop
La domanda è: si può fare un solo cnn.execute ? Qualcosa del genere :
codice:
cnn.execute "DELETE FROM TabPa WHERE (SELECT ...........)
Grazie per l'attenzione.