| 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_Stampa
La 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
|