ciao Francesco,
meglio non utilizzare un recordset in casi come questi.
Ti do qualche indicazione circa la logica applicata sui dettagli maggiormente ostici, ma ti raccomando di consultare la guida e di approfondire le soluzioni suggerite in autonomia.
La soluzione proposta si appoggia su tre metodi membri di dao.workspace, begintrans, committrans, rollback.
In sostanza tutte gli insert vengono effettuate in un solo batch e solamente qualora non si verifichino errori: nel qual caso nessun aggiornamento al db viene apportato.
Una delle proprietà delle transazioni è proprio l'atomicità.
Oltre a questo, essendo tutte le insert eseguite all'unisono, le performance migliorano notevolmente, cosa che con poche righe è non rilevabile, ma nel caso in cui le righe siano molte si.
CurrentDB è più lento rispetto a Dbengine, ed è opportuno evitarlo soprattutto nei loop. Crei un pointer ad ogni nuovo ad ogni loop.
Per quanto alle date.
il campo data e ora è un float a 64 bit ricordi? la sola data è un long. Passando un long ad un campo data Jet/Ace lo converte in una data effettiva, l'alternativa è formattare la data con il formato iso corretto in modo che sia tradotto correttamente nella
tabella.
Detto questo per il resto, prova a seguire passo passo la soluzione proposta e ad analizzare i restanti aspetti.
Ciao, Sandro.