Non entrambi mascherano gli errori. DoCmd.SetWarnings maschera gli errori ed è a livello di sistema, non limitato alla singola applicazione che si sta utilizzando. DoCmd.SetWarnings False
senza il corrispondente DoCmd.SetWarnings True
significherà che le query di azione verranno eseguite senza alcuna richiesta in alcuna applicazione di Access sul PC.
Execute lancia avvisi, gli avvisi di cui si ha bisogno, ad esempio la query non è riuscita a eseguire, ma non fornisce avvisi che potrebbero non essere necessari, come "Sei sicuro di voler eseguire questa query".
In this thread Allen Browne, Access MVP, dice che non usa Set Warnings.
Per inciso, vorrei generalmente consiglia di utilizzare un'istanza di CurrentDB, come questo vi permetterà di restituire un numero di record, tra l'altro, in modo da:
Set db = CurrentDB
db.Execute sSQL, dbFailOnError
Dal tuo commento: 'Per eseguire senza la avvisi incorporati, utilizzare un'istanza di CurrentDB ed Exceute the SQL string' che mi porta a credere che '.Execute' non lanci avvertimenti? – JimmyPena
Vedere la modifica sopra. – Fionnuala
Un altro modo per avvicinarsi a questo è iniziare da "RunSql'. Prima richiede all'utente di confermare che desidera eseguire la query di azione, quindi visualizza un messaggio sul numero di record interessati successivamente. Le persone usano 'SetWarnings = False' per sopprimere questi messaggi. Ma '[database] .Execute' non presenta nessuno di questi messaggi, quindi nessuna motivazione per disattivare' SetWarnings'. Remou ha già detto tutto questo. Sto usando parole diverse nella remota possibilità che possa aiutare qualcuno, e anche per darmi un'altra opportunità di dire MAI di disattivare 'SetWarnings'! – HansUp