Ciao a tutti, sono bloccato su una cosa apparentemente semplice.

Sto lavorando su un file DBF che il programma "DBF Viewer 2000" dice essere di formato "FoxBase+/dBASE III PLUSE, no memo". E' un file di dati di un gestionale Zucchetti.

Se eseguo questo codice per aggiornare un record


codice:
Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & opt.path & "\" & ";Extended Properties=dBase III;"
        Dim oledbAdapterIns As New OleDbDataAdapter()
        Dim InsConnection As New OleDbConnection(ConnectionString)
        oledbAdapterIns = New OleDbDataAdapter()
        InsConnection = New OleDbConnection(ConnectionString)
        Try
            InsConnection.Open()
            Dim s As String
            s = "UPDATE LIBRIAZ SET LIBRIAZ.ULTNUM=6 WHERE LIBRIAZ.REGISTRO='CW' AND LIBRIAZ.ANNO='2011' AND LIBRIAZ.CHIAVE='ORD_REG'"
            oledbAdapterIns.InsertCommand = New OleDbCommand(s, InsConnection)
            Dim rows As Integer = oledbAdapterIns.InsertCommand.ExecuteNonQuery()
        Catch ex As Exception
            Debug.Writeline(ex.Message)
        End Try
        oledbAdapterIns.Dispose()
        InsConnection.Dispose()
Gira senza errori ma non aggiorna...

In realtà il bizzarro arriva adesso: se levo una delle tre condizioni
codice:
LIBRIAZ.REGISTRO='CW' AND LIBRIAZ.ANNO='2011' AND LIBRIAZ.CHIAVE='ORD_REG'
ad esempio
codice:
LIBRIAZ.ANNO='2011' AND LIBRIAZ.CHIAVE='ORD_REG'
l'UPDATE FUNZIONE, impostando LIBRIAZ.ULTNUM a 6 nelle righe giuste.

Non è una questione di quale condizione levo, perchè è sufficiente levarne una.
Non sono le parentesi, perchè ho provato a scrivere COND1 AND (COND2 AND COND3) ma non cambia nulla.

Sono bloccato da giorni e googlando non salta fuori nulla di pertinente.
Per caso qualcuno ha un'idea o ci è già passato?

Grazie