Condividi tramite

Stampa report

Anonimo
2011-04-03T06:32:45+00:00

Con il pulsante “Visualizza” creo un report in modalità “Anteprima di stampa”,

quindi per stamparlo basterebbe premere “Stampa” dalla scheda “Anteprima di stampa”.

Se però mantengo il Ribbon (barra multifunzione) nascosto, la scheda “Anteprima di stampa”

non è più disponibile, pertanto devo lanciare la stampa del report tramite VBA.

Mi erano venuti in mente i seguenti metodi:

1)   Inserire un pulsante “Stampa” nel report e utilizzare il codice:

DoCmd.PrintOut acPages, , , ,1

però nella stampa appare anche il pulsante “Stampa”.

 C’è la possibilità di stampare il report senza che appaia il pulsante?

2)   Inserire un pulsante “Stampa” nella stessa maschera dove si trova il pulsante

“Visualizza”. A questo punto, si potrebbe fare in modo che il pulsante “Stampa”:

a)    Verifichi se il report è aperto, e nel caso in cui sia aperto lo stampi.

In questo caso la stampa può essere lanciata solo dopo aver visualizzato il report.

b)    (oppure) Ricrei il report e subito dopo lo stampi:


Private Sub PulsanteStampa_Click()

             PulsanteVisualizza_Click        ‘Richiamo la Sub di creazione report

  DoCmd.PrintOut acPages, , , ,1

   DoCmd.Close

End Sub


In questo caso la stampa può essere lanciata anche prima di aver

visualizzato il report.

 Volevo chiedere qualche vostro consiglio per gestire la stampa di questo report.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2011-04-03T07:59:47+00:00

Ciao Eulero,

per stampare il report senza che appaia il pulsante, imposta la proprietà "Visualizza" del pulsante con il valore "Su Schermo".

Ciao

Giorgio Rancati

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-06-11T16:55:22+00:00

    In questi giorni ho provato a creare un metodo per stampare i report senza premere

    CTRL+P, ma premendo un pulsante posizionato nella maschera principale.

    Supponiamo di avere uno o più report aperti in modalità “Anteprima di stampa” e si

    voglia stampare l’ultimo report che ha avuto lo stato attivo. Il metodo consiste nel:


    Dichiarare una variabile globale di tipo String

    Public rep As String 

    Inserire in ciascun modulo di classe dei report, le seguenti due Sub

    Private Sub Report_GotFocus() 

       rep = "NomeReport"

    End Sub

    Private Sub Report_Close()

       rep = ""

    End Sub

    Inserire la Sub del pulsante di stampa

    Private Sub PulsanteStampa_Click()

       If rep <> "" Then

          If (MsgBox("Se si vuole stampare il report """ & rep & """ premere OK!", _

               vbExclamation + vbOKCancel, "Stampa") = 1) Then

              DoCmd.OpenReport rep, acViewPreview   

              SendKeys "^p"

          End If

       End If

    End Sub


    * In generale, se ci sono diversi report aperti, per stamparne uno in particolare,

    bisogna cliccarci sopra e poi premere il PulsanteStampa.

    * Visto che il metodo SetFocus non è applicabile ai report, per riottenere lo stato

    attivo del report, ho utilizzato la riga:    DoCmd.OpenReport rep, acViewPreview

    * Come vi sembra questo metodo? Spero che sia abbastanza valido, comunque

    se ci sono metodi migliori fatemi sapere!

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-04-06T05:35:03+00:00

    Grazie del consiglio Giorgio!!

    Un’idea potrebbe anche essere quella di espandere al massimo (Maximize)

    l’anteprima di stampa, chiudendola poi con CTRL + W.

    Ma preferirei mantenere l’anteprima di stampa e:

    1)    Impostare le seguenti proprietà del report:

              Centratura automatica = No

              Dimensioni automatiche = Si

              Adatta alla pagina = Si

              Stile bordo = Dimensionabile

              Pulsanti ingrand./riduzione = Riduzione ad icona consentita

    2)    Inserire nel modulo di classe del report:

              Private Sub Report_Load()

                  DoCmd.MoveSize 0, 0

              End Sub

    In questo modo l’anteprima di stampa del report:

    *  Si apre con dimensioni ridotte ma proporzionate alla finestra di Access.

    *  Si può ingrandire o rimpicciolire mantenendo le dimensioni del grafico

    proporzionate alla finestra del report.

    *  Togliendo il pulsante “Ingrandisci”, si evita l’effetto Maximize e quindi

    anche il fatto di dover chiudere il report con CTRL + W .

    *  Se il Ribbon e i menu del tasto destro sono nascosti, si stampa con CTRL + P .

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-04-04T08:15:50+00:00

    Ciao Eulero,

    io consiglio di non complicare le cose.

    Se la visualizzazione report non piace,  usa l'anteprima di stampa e togli il pulsante dal report, poi se l'utente deve stampare e il ribbon non è visibile, digli di premere CTRL+P

    :-)

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2011-04-04T07:29:37+00:00

    Grazie Giorgio! Il punto (1) era sicuramente il più interessante!

    Ho inserito il pulsante “Stampa” nel report, impostando la proprietà

    “Visualizza” su “Su schermo”. In questo modo però il pulsante “Stampa”

    non si vede neanche a video, perché il report viene elaborato in modalità

    “Anteprima di stampa”, così ho pensato di ottenere il report in modalità

    “Visualizzazione report” sostituendo l’istruzione:

    DoCmd.OpenReport "NomeReport", acViewPreview

    con

    DoCmd.OpenReport "NomeReport", acViewReport

    In questo modo però, la finestra del report si apre in modo meno

    flessibile rispetto all’anteprima di stampa, nel senso che il grafico

    non viene proporzionato alle dimensioni della finestra del report.

    Stavo valutando quindi se è possibile (e se conviene):

    1)   Visualizzare il report con il grafico proporzionato alle dimensioni della finestra.

    2)   (oppure)  Espandere al massimo la finestra del report con l’istruzione 

    “DoCmd.Maximize”  su Load del report.   In questo modo però (se il

    Ribbon e i menu del tasto destro, sono nascosti), per chiudere il report

    bisogna premere la ‘x’ in alto a destra e quindi si chiude anche

    l’applicativo.  Pertanto bisognerebbe inserire anche un pulsante

    “Chiudi” con il codice  “DoCmd.Close” su Click del pulsante.

    3)   (oppure) Allargare al massimo la finestra del report con l’istruzione: 

    “DoCmd.MoveSize 0, 0, x, y”  però non saprei come ricavare la larghezza

    massima (x) e l’altezza massima (y) del video.

    4)   (oppure) Forse può essere utile il metodo “Report.Scale” consultabile

    nella Guida di Access.

    Cosa mi consigliate?

    La risposta è stata utile?

    0 commenti Nessun commento