Stampa messaggio per sottoreport vuoto

di il
12 risposte

Stampa messaggio per sottoreport vuoto

Salve a tutti,

ho il seguente problema: all'interno di un report ho inserito un sottoreport. Se il sottoreport è vuoto vorrei che venisse visualizzato un messaggio nel report che indica che non ci sono dati da visualizzare. Attualmente invece non viene mostrato nulla. Come posso fare ?

Grazie mille.

12 Risposte

  • Re: Stampa messaggio per sottoreport vuoto

    Puoi valutare, in base alla proprietà RecordCount, se vi sono record nel subreport e procedere di conseguenza:
    http://access.mvps.org/access/forms/frm0029.ht
    http://www.darraghmurray.com/ms-access-tips/testing-a-ms-access-subreport-for-records/
    https://www.experts-exchange.com/questions/20780788/count-number-of-records-in-a-sub-report.html
    https://www.office-forums.com/threads/testing-for-no-data-in-subreport.755460/
  • Re: Stampa messaggio per sottoreport vuoto

    Grazie mille,

    ma purtroppo le mie conoscenze di VBA sono praticamente e faccio fatica ad implementare la soluzione seguendo i link che mi hai fornito. Sono andato sulle proprietà del report e sull' evento "Report Vuoto" ho inserito una stringa da visualizzare, ma non funziona. Qual è la soluzione più semplice per un utente con competenze basic per fare ciò ?

    Grazie ancora
  • Re: Stampa messaggio per sottoreport vuoto

    LelePC ha scritto:


    sull' evento "Report Vuoto" ho inserito una stringa da visualizzare, ma non funziona
    Non ottieni "quel" risultato sperato scrivendo una stringa sugli EVENTI. Non ho mai usato l'evento "Report vuoto", ma come tutti gli eventi va GESTITO con una macro o codice VBA. Visto che le cose stanno così, io ci vedrei una semplice riga in VBA più o meno così:
    MsgBox "Non ci sono record in questo report"
    da inserire tra le due righe predefinite quando apri l'editor VBA relativo all'evento Report Vuoto.
  • Re: Stampa messaggio per sottoreport vuoto

    Grazie perla risposta. Con il codice indicato compare un messaggio che mi avvisa che non ci sono record, in realtà avrei bisogno che nel report venisse stampata la stessa stringa, cosa che non accade. Come si può fare ?

    Grazie mille
  • Re: Stampa messaggio per sottoreport vuoto

    LelePC ha scritto:


    ..Con il codice indicato compare un messaggio che mi avvisa che non ci sono record, in realtà avrei bisogno che nel report venisse stampata la stessa stringa, cosa che non accade...
    Cosa hai fatto perché accadesse e che invece non funziona?
  • Re: Stampa messaggio per sottoreport vuoto

    Non sono sicuro di un suggerimento valido: provo...sfruttando i suggerimenti di willy55
    1. Crea una etichetta nel report che chiamerai Avviso
    2. Su un evento...da capire quale...penso "Su caricamento" del report scrivi questo:
    Private Sub Form_Load()
    If Me!NomeSottomaschera.Form.RecordsetClone.RecordCount = 0 Then 
    Me!Avviso.Caption = "Non ci sono record in questo report"
    End If
    End Sub
  • Re: Stampa messaggio per sottoreport vuoto

    Il metodo coretto potrebbe essere quello di Leggere la proprietà [HasData] dell'oggetto SubReport nell'Evento Format della Sezione che lo ospita.
    Di conseguenza puoi tranquillamente renderlo NON VISIBILE e far Apparire una TextBox con una scritta.
    Per entrambi i controlli imposterei anche la proprietà CanGrow(Espandibile) e CanShrink(Riducibile) a True, ed imposterei le Altezze al minimo.

    Provato e FUNZIONA.

    P.S. ho testato l'uso del Recordset e del RecordsetClone sia sul Riferimento a Report che a Form... come dovrebbe essere dalla versione A2007, ma da me non pare funzionare, o meglio pare che l'oggetto non sia ancora istanziato o aperto nell'Evento Format della sezione in cui viene inserito... di conseguenza non so se effettivamente questo possa produrre qualche risultato.

    Ovviamente l'oggetto SubReport viene RIGENERATO ogni qual volta sia ridisegnata una Sezione in cui è inserito... motivo per cui NON VA BENE il Load o peggio OPEN del Report stesso...!
  • Re: Stampa messaggio per sottoreport vuoto

    Confermo quanto osservato da Alex, per cui si consiglia di impiegare la proprietà HasData (in Print Preview) del report per verificare se vi sono record nel subreport, che deve essere specificamente memorizzato fra i report (non un semplice sottoreport, nel report, che acceda alla tabella); controllato con Access 2013 nel seguente modo:
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
    ' In Anteprima di stampa, inserisce indicazione sulla presenza dei dati nel subreport
     If Me.MySubReport.Report.HasData Then
        Me.lblAvviso.Caption = "Vi sono dati"
        Me.MySubReport.Visible = True
     Else
        Me.lblAvviso.Caption = "Dati mancanti"
        Me.MySubReport.Visible = False
     End If
    End Sub
    
  • Re: Stampa messaggio per sottoreport vuoto

    Grazie a tutti! Purtroppo indegnamente mi affaccio a questo forum perchè le mie competenze di programmazione in Access sono pressochè nulle e quindi - se avete pazienza - avrei le seguenti domande:
    1) dove va scritto il codice indicato da willy55 ? Su quale evento ?
    2) ci sono elementi che devo sostituire con i nomi degli elementi "veri" ? Immagino, ad esempio, MySubReport con nome sottoreport (nel caso quale ? Quello assegnato nel riquadro di spostamento ? Oppure quello indicato enl campo "etichetta" ?

    perdonatemi le modalità imprecise con cui mi esprimo.

    Grazie in anticipo.
  • Re: Stampa messaggio per sottoreport vuoto

    LelePC ha scritto:


    Grazie a tutti! Purtroppo indegnamente mi affaccio a questo forum perchè le mie competenze di programmazione in Access sono pressochè nulle e quindi - se avete pazienza - avrei le seguenti domande:
    1) dove va scritto il codice indicato da willy55 ? Su quale evento ?
    Il codice di Willy indica anche l'EVENTO specifico che [Format] sull'Oggetto Corpo, se il tuo SubReport è nel Corpo, se invece è in una Sezione differente, userai l'evento Format della sezione che serve.

    LelePC ha scritto:


    2) ci sono elementi che devo sostituire con i nomi degli elementi "veri" ? Immagino, ad esempio, MySubReport con nome sottoreport (nel caso quale ? Quello assegnato nel riquadro di spostamento ? Oppure quello indicato enl campo "etichetta" ?
    perdonatemi le modalità imprecise con cui mi esprimo.
    Grazie in anticipo.
    Prova a fare le tue verifiche, purtroppo stai contravvenendo al regolamento, anche se usi una cortesia squisita, è pur sempre da evitare...
  • Re: Stampa messaggio per sottoreport vuoto

    LelePC ha scritto:


    dove va scritto il codice indicato da willy55 ? Su quale evento ?
    Format è l'evento "Su formattazione".

    LelePC ha scritto:


    ci sono elementi che devo sostituire con i nomi degli elementi "veri" ? Immagino, ad esempio, MySubReport con nome sottoreport (nel caso quale ? Quello assegnato nel riquadro di spostamento ? Oppure quello indicato enl campo "etichetta" ?
    Come si chiama il tuo Sottoreport? Pippo? Devi sostituire MySubReport con Pippo. Se non ti raccapezzi...provale tutte.
  • Re: Stampa messaggio per sottoreport vuoto

    Funziona ! Grazie Alex, illuminante! Grazie anche ad Osvaldo, di cui leggo ora il contributo!
    Ho fatto tanti tentativi ed ... ho imparato qualcosa!

    Grazie a tutti!
Devi accedere o registrarti per scrivere nel forum
12 risposte