campodata è una variabile definita data e, come ho fatto notare ad inizio post, ho provato varie soluzioni, con datevalue senza, con # con format etc. etc..

Per quanto riguarda la sintassi,
La sintassi di INSERT che hai proposto è usata nel caso che si intenda prelevare i dati da un'altra tabella e non, come mi sembra che sia il tuo caso, da variabili. Credo anche che sia valida solo per database Jet.
Tieni anche presente che se il tuo database è MySql non puoi usare l'operatore "+" per concatenare stringhe nella query.
la stringa sql funziona per tutti i campi tranne per quello data, che mi inserisce sempre il valore 01/01/0001, anche utilizzando le istruzioni dell'ottimo Gibra.campodata



Infine, per risalire alla causa del tuo problema, cosa contiene esattamente campodata? Verificalo in debug ponendo un break sulla linea immediatamente precedente e verifica anche il valore di DateValue(campodata).
non me ne volere, ma dopo 20 anni di programmazione, la prima cosa che controllo è il contenuto del campo e ripeto, lo strano è che le stesse variabili popolano correttamente se si usa la recordset.
Purtroppo, mi sento la sfiga addosso, visto che da un pò di tempo mi capitano problemi che teoricamente hanno soluzioni 'facili' e praticamente mi si incaglia tutto. Pazienza, per il momento ho optato per aggirare il problema.

Caro Grumphy , grazie lo stesso per l'aiuto (sinceramente, scusa se posso esserti sembrato brusco all'inizio)