Reports |
4.32 Eseguire la stampa di un report tramite la finestra di dialogo stampante |
Roberto |
Se l'esecuzione di un report la si effetua da VBA tramite il metodo OpenReport, l'utilizzatore finale non può modificare le modalità di stampa impostate in fase di creazione del report. Se invece si vuole dare all'utente finale la possibilità di scegliere, prima della stampa, la stampante da usare, il numero delle copie, le pagine da stampare, i margini del report, la qualità di stampa ecc. ecc., è necessario aprire eseguire il report richiamando la finestra di dialogo di stampa. Se il report si chiama MioReport e se la stampa viene attualmente eseguita a fronte dell'evento "Su clic" di un pulsante di comando, sostituire la riga di codice relativa al metodo OpenReport con il seguente codice VBA: On Error GoTo No_Stampa DoCmd.SelectObject acReport, "MioReport", True DoCmd.RunCommand acCmdPrint DoCmd.SelectObject acForm, Me.Name, False Exit_Stampa: Exit Sub No_Stampa: If Err.Number = 2501 Then MsgBox "Stampa annullata dall'utente", vbInformation, "Stampa MioReport" DoCmd.SelectObject acForm, Me.Name, False Else MsgBox Err.Number & " " & Err.Description End If Resume Exit_StampaLa soluzione di cui sopra, dopo la stampa del report, lascia visibile la finestra del database anche se essa era stata resa non visibile; per evitare che questo avvenga sostituire il codice VBA di cui sopra con quello che segue: On Error GoTo No_Stampa DoCmd.OpenReport "MioReport", acViewPreview DoCmd.SelectObject acReport, "MioReport", False DoCmd.RunCommand acCmdPrint DoCmd.Close acReport, "MioReport" DoCmd.SelectObject acForm, Me.name, False Exit_Stampa: Exit Sub No_Stampa: If err.Number = 2501 Then MsgBox "Stampa annullata dall'utente", vbInformation, _ "Stampa MioReport" DoCmd.SelectObject acForm, Me.name, False Else MsgBox err.Number & " " & err.Description End If Resume Exit_Stampa |