A parte questo, nel command usi questo:
Set par = .CreateParameter("@data", adDBDate, adParamInput, datacontcodfisc)

mentre nel Recordset usi questo:
!Data = DateValue(vista1.ListItems(i))

Non mi pare che il valore sia uguale...

hai perfettamente ragione, sono io che copiando in pezzi di codice, non mi sono accorto che non combaciavano, ma, ti assicuro, il datacontcodfisc è solo una delle prove, ho provato anche con la versione usata per la recordset (datavalue, per capirci)

per quanto rigurada i parametri sulla dimensione... giusto ... ma essendo integer e date, bastano le 2 virgole ', , ' visto che non hanno dimensione, giusto?

Comunque ho provato anche con questa modifica ma mi immette solo null. Però, l'ho preso dal tuo esempio sul tuo sito, why non funge?

Volevo provare utilizzando il codice da te postato, ma giustamente non mi inserisce in quanto trattasi di update ed io devo inserire ex-novo.
Ora mi metto a fare delle prove, modificando questa e provando parte del tuo progetto modADO, che se non erro oltre al modulo la routine che mi interessa è la RecordAggiorna
Poi ti faccio sapere. Per ora grazie.