OsvaldoLaviosa ha scritto:
Trovo che l'unica operazione che ti "spezza" le tre fasi che tu vorresti tutte insieme è "apri il comando di stampa (con la selezione della stampante)". In questa fase sei solo tu utente che decidi, quindi il sistema nulla può in automatico...almeno che tu non preveda una stampante predefinita e "salti" questo passaggio.
Poi il codice VBA deve:
- stampare report
- eseguire la query di aggiornamento (update)
Queste ultime 2 operazioni le "scrivi" in un unico codice. Saranno eseguite una dopo l'altra, in tempi informatici rapidissimi che il comune essere umano potrebbe anche considerare come "contemporanee".
potete chiudere il thread. Ho risolto!
Ho utilizzato un database di prova (per tutte le modifiche meglio avere sempre un database di testing)
Private Sub Command99_Click()
Dim sqlAll As String
Dim sqlNot As String
On Error GoTo Command99_Click_Err
DoCmd.OpenReport "Anagrafica1", acViewPreview, "", "", acNormal
DoCmd.RunCommand acCmdPrint
sqlAll = "UPDATE Query2 SET Check = True;"
sqlNot = "UPDATE Query2 SET Check = False;"
DoCmd.RunSQL (sqlAll)
Form_PreReport.Requery
Command99_Click_Exit:
Exit Sub
Command99_Click_Err:
DoCmd.RunSQL (sqlNot)
MsgBox "Operazione annullata"
Resume Command99_Click_Exit
End Sub
EDIT. Devo solo gestire gli errori.