Ciao a tutti ho un problema che non riesco a risolvere in nessun modo.
Ora vi spiego:

Utilizzo una connessione a Database Sql Server utilizzando adodb.Recordset di tipo disconnessa, adOpenStatic, adLockBatchOptimistic.
Non uso alcun controllo ADODC.

Ho un form con un DataGrid Master e un DataGrid Details.

In pratica utilizzo due recordset uno "di tabella" per effettuare le modifiche su database e uno "di visualizzazione" contenente diversi JOIN fra più tabelle per la visualizzazione dei dati in maniera completa. Questo poichè se uso solo il secondo recordset non posso fare inserimenti di nuove righe nella tabella MASTER poichè cerca di inserire nuove righe anche nelle tabelle correlate usate, fuse tramite join a quella principale e viceversa.
(Se qualcuno ha una soluzione già a questo problema lo ringrazio da ora per l'aiuto, ma comunque diciamo che il problema l'ho aggirato).

Veniamo ora al vero problema.
Per la visualizzazione dei dati utilizzo un datagrid. Fra i campi nel DB ho un campo "Flag" in base al cui valore valorizzo opportunamente un altro campo fittizio per rendere leggibile il dato all'utente.
In maniera + esplicita: ho un campo bit su database che importo nel recordset. Assieme a qst campo importo un campo vuoto il cui valore lo imposto io tramite una funzione.
Tuttavia l'azione di questa funzione mi porta tutti i record del Recordset allo status adRecModified causandomi un problema, poiché, al momento del salvataggio (in cui filtro tutti i record ponendo .Filter = adFilterPendingRecords), non viene escluso nessun record e mi trovo a risalvare con il metodo UpdateBatch ogni record anche se non modificato.

Vi ringrazio per eventuali suggerimenti e consigli...
Spero sia stato abbastanza chiaro
Ciao!