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


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.