Ciao a tutti.

Sono nuovo in questo forum e vi scrivo perchè in un programma che sto facendo in .NET si è verificato un problema alquanto strano su un database di Access e che non so come risolvere in maniera corretta.
In sostanza, io ho una procedura che in principio esegue a priori un update su tutti i record di una tabella tabLabels, settando a False un campo booleano di nome Mantieni. Poi, una seconda procedura esegue delle verifiche per ogni record ed eventualmente, se vengono verificate certe condizioni, esegue un update del campo booleano Mantieni settandolo a True. Infine, un'ultima istruzione di delete elimina tutti i record con il campo Mantieni a False. Ma quest'ultima istruzione elimina indiscriminatamente tutti i record, anche se per ancuni di questi, il flag Mantieni è stato settato a True (cioè l'istruzione di update è stata effettivamente eseguita). Da quanto ho potuto notare, sembra che l'ultima istruzione di delete viene eseguita prima che i dati aggiornati dalle update vengano effettivamente salvati nel database, anche se le istruzioni di update in questo senso sono già state eseguite senza errori. A prova di ciò, ho scoperto che mettendo prima della delete una pausa di 1 secondo, venivano eliminati correttamente solo i record previsti con il flag Mantieni a False, mentre togliendo la pausa di 1 secondo, venivano eliminati tutti i record senza che l'effetto delle update venga effettivamente memorizzato (perchè a priori sono tutti a False). Inoltr, anche togliendo la delete finale, il flag mantieni veniva settato correttamente.
Adesso ho comunque risolto il problema, ma è un modo "poco elegante". In sostanza, prima della delete incriminata, ho inserito un ciclo che esegue un update fittizio di ogni record, settando il flag con il suo stesso valore (es. Set Mantieni = Mantieni). In questo caso, i dati vengono consolidati e la delete elimina solo i record previsti.
Ma vi risulta possibile che accada questo??? C'è qualche istruzione che consolida i dati nel database dopo un'istruzione di update??? In ogni caso, tutte le istruzioni vengono eseguite con un OleDbCommand tramite il metodo ExecuteNonQuery.

Grazie in anticipo per qualsiasi informazione.