Intanto grazie per la risposta.
Ho provveduto a fare come mi hai suggerito tu, ma il risultato non cambia. Ma ......
ho fatto mille tentativi ed ho scoperto (non il problema) ma quello che accade.
Mi spiego:
prima di iniziare il ciclo di lettura provvedo ad azzerare la tabella richiamando questa sub:
in la variabile "comando" contiene, in questo caso, la stringacodice:Private Sub azzera_tab(ByVal comando As String) Dim objconn As OleDbConnection Dim objcomm As OleDbCommand objconn = New OleDbConnection(stringaconn) If objconn.State = ConnectionState.Open Then objconn.Close() objconn.Open() objcomm = New OleDbCommand(comando, objconn) Dim risputente As Integer Try risputente = objcomm.ExecuteNonQuery() If risputente = 0 Then objconn.Close() End If Catch es As Exception MessageBox.Show("Errore di connessione al DB" + Chr(13) + Chr(13) + "(" + es.Message + ")") objconn.Close() End Try End sub
ebbene, se blocco il programma subito dopo questa istruzione la tabella è vuota, ma quando poi la popolo, mi sono accorto che le righe che mancano sono sempre le prime del file csv (quindi se su 1015 ne trovo 1.000 quelle mancanti sono sempre le prime 15 e cosi' via).codice:DELETE * FROM FIEL
Ma non basta.
Se apro il file DB.mdb cliccandoci sopra e seleziono tutti i record, li cancello manualmente e lo chiudo, l'elaborazione mi da il valore giusto. (prova fatta una ventina di volte sempre con risultati esatti...)
Quindi deduco che il problema potrebbe essere nella cancellazione (ma non capisco come visto che "vedo" la tabella vuota) .....
Spero che questa ulteriore informazioni aiuti a dipanare la matassa.
Grazie