Annullare la stampa di un report se non contiene record

Per impostazione predefinita, è possibile stampare report che non contengono alcun record. Per risolvere questo problema, è possibile utilizzare una macro oppure codice Microsoft Visual Basic for Applications (VBA) per rilevare l'assenza di record in un report e quindi annullare l'operazione di stampa. In questo articolo vengono illustrate entrambe le tecniche.

Per saperne di più

Utilizzare una macro per annullare la stampa

Utilizzare codice VBA per annullare la stampa

È molto probabile che si voglia annullare la stampa di un report che non contiene alcun record. Se ad esempio si inizia a vendere un nuovo prodotto, con tutta probabilità nei primi tempi non si registrerà alcuna vendita. È necessario pertanto tenere presente la possibilità che alcuni dei propri report possano non contenere record di dettaglio e che le funzioni di aggregazione, ad esempio la funzione Conteggio, possano non avere nulla da aggregare. Per gestire questo tipo di situazioni in maniera automatica è possibile creare una macro che annulli il lavoro di stampa. Lo stesso risultato si può ottenere anche aggiungendo alcune righe di codice VBA opportunamente disposte. VBA è il linguaggio di programmazione utilizzato da Microsoft Office Access 2007.

La macro o il codice VBA viene aggiunto nella routine evento Su report vuoto del report. In Office Access 2007 l'evento Su report vuoto viene generato ogni volta che viene eseguito un report privo di record. La macro e il codice VBA descritti in questo articolo comportano la visualizzazione di un messaggio appropriato e l'annullamento della stampa del report quando quest'ultimo non contiene dati. Quando si aggiunge una macro o codice VBA alla routine evento Su report vuoto, la macro o il codice VBA viene eseguito ogni volta che si apre un report che non contiene record. Facendo clic su OK per chiudere il messaggio di avviso, la macro chiude anche il report vuoto. Quando si aggiunge la macro o il codice VBA al report, il report vuoto che si tenta di visualizzare in visualizzazione Report o Layout non viene aperto, mentre è possibile aprirlo in visualizzazione Struttura.

Utilizzare una macro per annullare la stampa

La macro descritta in questa sezione visualizza un messaggio di avviso quando si tenta di stampare un report vuoto. Facendo clic su OK per chiudere la finestra del messaggio, la macro annulla automaticamente anche l'operazione di stampa. Se non viene specificato un messaggio di avviso, si avrà l'impressione che non accade nulla quando si tenta di stampare il report, il che può indurre in confusione gli utenti del report.

Creare la macro

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul report che si desidera modificare e scegliere Visualizzazione Struttura.

  2. Nel gruppo Mostra/Nascondi della scheda Struttura fare clic su Finestra delle proprietà.

    -oppure-

    Fare doppio clic nella casella nell'angolo superiore sinistro o destro del report, a seconda delle impostazioni internazionali e della lingua.

  3. Fare clic sulla scheda Evento, quindi nella casella della proprietà Su report vuoto fare clic su Builder button .

    Verrà visualizzata la finestra di dialogo Scegli generatore.

  4. Selezionare Generatore di macro, quindi scegliere OK.

    Il generatore di macro verrà avviato visualizzando una macro vuota.

  5. Nella prima riga della macro fare clic sul campo nella colonna Azione e selezionare FinestraMessaggio dall'elenco.

  6. In Argomenti azione nella sezione inferiore del generatore di macro digitare il testo del messaggio di avviso nella casella Messaggio.

    È possibile ad esempio immettere Nessun record da stampare.

  7. Facoltativamente è possibile modificare il valore dell'argomento nella casella SegnaleAcustico da a No e selezionare dall'elenco Tipo il tipo di icona che si desidera visualizzare nel messaggio di avviso.

  8. Nella casella Titolo digitare il titolo da assegnare al messaggio di avviso.

    È possibile ad esempio immettere Nessun record.

    Le modifiche verranno visualizzate nella porzione superiore del generatore di macro, nella colonna Argomento accanto all'azione FinestraMessaggio.

  9. Nella parte superiore del generatore di macro fare clic sulla cella accanto alla colonna Azione, ovvero la cella al di sotto di FinestraMessaggio, e selezionare AnnullaEvento

    La macro dovrebbe avere un aspetto simile a quanto riportato di seguito, a parte le eventuali differenze nel testo degli argomenti:

    Esempio di macro per l'annullamento di un'operazione di stampa

  10. Nel gruppo Chiudi della scheda Struttura fare clic su Salva oggetto con nome e utilizzare la finestra di dialogo Salva con nome per assegnare un nome alla macro.

  11. Chiudere la macro. Se viene visualizzato un messaggio di avviso che chiede se si desidera salvare le modifiche alla macro e alla proprietà del report, fare clic su e quindi procedere e testare la macro.

Testare la macro

  • Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul report che contiene la macro e scegliere Stampa. A seconda delle opzioni selezionate, dovrebbe essere visualizzato un messaggio di avviso simile al seguente:

    Finestra di messaggio che viene visualizzata quando il report non contiene record

    Quando si fa clic su OK per chiudere il messaggio, l'azione AnnullaEvento impedisce l'operazione di stampa. Non avendo specificato altri eventi, ad esempio l'apertura del report per poterlo visualizzare, il report viene chiuso.

Torna all'inizio

Utilizzare codice VBA per annullare la stampa

Il codice VBA descritto in questo articolo funziona in maniera analoga alla macro descritta nella sezione precedente, ovvero visualizza un messaggio di avviso quando si apre un report vuoto e annulla l'operazione di stampa quando si chiude il messaggio di avviso.

Aggiungere codice VBA

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul report da modificare e scegliere Visualizzazione Struttura.

  2. Nel gruppo Mostra/Nascondi della scheda Struttura fare clic su Finestra delle proprietà.

    -oppure-

    Fare doppio clic sulla casella nell'angolo superiore destro o sinistro del report, a seconda delle impostazioni internazionali e della lingua.

  3. Fare clic sulla scheda Evento, quindi nella casella della proprietà Su report vuoto fare clic su Builder button .

    Verrà visualizzata la finestra di dialogo Scegli generatore.

  4. Fare clic su Generatore di codice e quindi su OK.

    Verrà avviato Visual Basic Editor e verrà visualizzata una routine evento vuota.

  5. Digitare il codice riportato di seguito in Visual Basic Editor in modo che al termine la routine Report_NoData abbia esattamente questo aspetto:

    Private Sub Report_NoData (Cancel As Integer)
    MsgBox "There are no records to report", vbExclamation, "No Records"
    Cancel = True
    End Sub
  6. Al termine, scegliere Salva dal menu File, fare clic su per confermare il salvataggio e infine scegliere Chiudi e torna a Microsoft Office Access dal menu File. Chiudere Visual Basic Editor e quindi chiudere il report aperto.

  7. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul report appena modificato e scegliere Stampa. Verrà visualizzato un messaggio analogo a quello riportato di seguito:

Finestra di messaggio che viene visualizzata quando il report non contiene record

La routine Report_NoData utilizza la funzione FinestraMessaggio per visualizzare il messaggio Nessun record da stampare e un pulsante OK. Facendo clic su OK, la riga "Cancel=True" della routine determina l'annullamento della stampa del report. Cancel è un argomento che viene automaticamente passato alla routine evento e viene sempre verificato da Access al termine della routine evento.

Torna all'inizio

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×