ocrot ha scritto:
...ma vorrei soddisfare la mia curiosità,
Non so se riuscirò a soddisfare completamente la tua curiosità però... sarebbe interessante ripetere il tutto con queste indicazioni, per vedere se l'errore si ripete (cioè una soluzione diversa da quella che hai usato tu).
ocrot ha scritto:
per prima cosa cancello questa tabella CurrentDb.Execute "DELETE * FROM [tbl_B]"
1) CurrentDb non si usa così. Si assegna ad un oggetto DAO.Database il risultato della funzione CurrentDb e si usa il metodo Execute dell'oggetto
Dim db As DAO.Database
Set db = CurrentDb
db.Execute "DELETE * FROM [tbl_B]"
a cui aggiungerei un dbFailOnError, il tutto all'interno di una Transaction, se proprio si vogliono fare le cose bene.
Ovviamente chiusura e distruzione degli oggetti al termine.
2) Imprecisione da forum, probabilmente: non stai cancellando la tabella ma il contenuto della tabella.
apro due recordset e copio i dati dalla tbl_A alla tbl_B
addnew e update nel ciclo con un do until EOF del recordset riferito alla tbl_A
No, si usa una query di inserimento, molto più performante. Hai già un oggetto database dichiarato da prima da usare ancora con Execute e la transaction "aperta".
Se tutto va bene, Commit, se ci sono errori Rollback. Fine.
Dopo fai quello che devi fare sulla tbl_B
Poi bisognerebbe sapere anche se stai usanto un database diviso in FE e BE, se in multiutenza con accesso concorrente e se il FE è usato contemporaneamente da vari utenti o ognuno ha il "suo proprio"