Evento report vuoto

di il
14 risposte

Evento report vuoto

Ciao a tutti

impostando all'evento

Private Sub Report_NoData(Cancel As Integer)
   msgbox “Non ci sono dati”
   Cancel = True
End Sub

il codice VBA va in errore con “l'azione di apertura è stata annullata” alla riga di codice 

        DoCmd.OpenReport nomereport, acViewPreview

ho risolto con uno stupido on error resume next, ma mi pare che ho tappato un buco ma non ho capito la logica…

Mi potete aiutare a capire?

Grazie

14 Risposte

  • Re: Evento report vuoto

    17/05/2024 - bruma ha scritto:


    ho risolto con uno stupido on error resume next, ma mi pare che ho tappato un buco ma non ho capito la logica…

    Nel tuo caso non la chiamerei gestione dell' errore. Come dire… ho messo la testa sotto la sabbia e va bene così. Hai provato a visualizzare il report senza vba?

  • Re: Evento report vuoto

    In effetti quel report si basa su una qry che, in questo caso, non rende alcuna riga; se lo lancio da solo mostra lo stesso errore (se elimino il codice al report_nodata)

    So che avrei potuto testare il recordset vuoto dalla maschera che lancia il report, ma quella maschera lancia 9 report diversi (per ora, ma cresceranno) su recordset diversi, ed è già abbastanza incasinata…

    Grazie

  • Re: Evento report vuoto

    17/05/2024 - bruma ha scritto:


    In effetti quel report si basa su una qry che, in questo caso, non rende alcuna riga; se lo lancio da solo mostra lo stesso errore (se elimino il codice al report_nodata

    A questo punto non capisco il tuo stupore.

  • Re: Evento report vuoto

    17/05/2024 - bruma ha scritt

    So che avrei potuto testare il recordset vuoto dalla maschera che lancia il report, ma quella maschera lancia 9 report diversi (per ora, ma cresceranno) su recordset diversi, ed è già abbastanza incasinata…

    Grazie

    Lancia 9 report che significa?

  • Re: Evento report vuoto

    Ha una serie di combo e bottoni per cui in una sola maschera ho centralizzato diversi tipi di report selezionando per mese, per azienda, per regione ecc.

  • Re: Evento report vuoto

    Diversi tipi di report? Sono associati a query differenti o sempre la stessa query?

  • Re: Evento report vuoto

    Apparte questo devi un po' aggiustare il tiro sui termini tecnici. Bottone???

  • Re: Evento report vuoto

    Su qry tutte differenti 

    non ti piace “bottone”? meglio “pulsante”? sei un accademico della Crusca? ;-) allora ho sbagliato sito per fare le mie domande…

  • Re: Evento report vuoto

    17/05/2024 - bruma ha scritto:


    Su qry tutte differenti 

    non ti piace “bottone”? meglio “pulsante”? sei un accademico della Crusca? ;-) allora ho sbagliato sito per fare le mie domande…

    Visto che zip è usato per i file compressi… li chiamo alamari.

    17/05/2024 - bruma ha scritto:


    Ha una serie di combo e bottoni per cui in una sola maschera ho centralizzato diversi tipi di report selezionando per mese, per azienda, per regione ecc.

    Perdonami… questo sarebbe sempre lo stesso report ma filtrato a seconda dei criteri…

    Più report si intende formato tabellare o formato etichetta o formato scheda nel caso di anagrafica..

    Cioè, a prescindere dai filtri cambia il layout di stampa.

    Per più report si intende anche la fonte dati… cliente o fornitore ad esempio.

    Comunque, oltre la pessima idea di usare un form per filtrare la stampa (se ho una lista e lancio la stampa è perché ho già filtrato quello che cerco e voglio la stampa), sai prima di stampare se hai dati da stampare… se non hai clienti caricati quale utente stupido pigia l'alamaro (per non usare il bottone) per vedersi il messaggio “nessun dato da stampare”?

    Usa sempre il form che mostra i dati per la stampa.

    Magari se usi due finestre, una clienti e una fornitori e vuoi contemporaneamente le anteprime di stampa cosa fai? Prima filtri per pippo e contemporaneamente per pluto?

    Tornando alla questione del 3d, sai prima di lanciare la stampa se ci sono dati da stampare.

  • Re: Evento report vuoto

    17/05/2024 - bruma ha scritto:


    Su qry tutte differenti 

    Peggio! Hai n dataset da utilizzare con un solo controllo da associare a seconda della stampa? Mah!

    Spesso i clienti vogliono da 1 a 10 modelli di stampa… auguri!

  • Re: Evento report vuoto

    17/05/2024 - bruma ha scritto:


    Ciao a tutti

    impostando all'evento

    Private Sub Report_NoData(Cancel As Integer)
       msgbox “Non ci sono dati”
       Cancel = True
    End Sub
    

    il codice VBA va in errore con “l'azione di apertura è stata annullata” alla riga di codice 

            DoCmd.OpenReport nomereport, acViewPreview
    

    ho risolto con uno stupido on error resume next, ma mi pare che ho tappato un buco ma non ho capito la logica…

    Mi potete aiutare a capire?

    Grazie

    Meno male che restituisce l'errore…!!!!

    Nel Report:

    Private Sub Report_NoData(Cancel As Integer)
       msgbox “Non ci sono dati”
       Cancel = True
    End Sub
    Private Sub ButtonOpenReport_Click()
    	On Error GoTo ErrNoData
    	DoCmd.OpenReport nomereport, acViewPreview
    	Exit Sub
    ErrNoData:
    	If Err.Number = 2501 Then Resume Next 
    End Sub
  • Re: Evento report vuoto

    17/05/2024 - bruma ha scritto:


    Ciao a tutti

    impostando all'evento

    Private Sub Report_NoData(Cancel As Integer)
       msgbox “Non ci sono dati”
       Cancel = True
    End Sub
    

    il codice VBA va in errore con “l'azione di apertura è stata annullata” alla riga di codice 

            DoCmd.OpenReport nomereport, acViewPreview
    

    ho risolto con uno stupido on error resume next, ma mi pare che ho tappato un buco ma non ho capito la logica…

    Mi potete aiutare a capire?

    Grazie

    Oltre a quanto ti è già stato suggerito, per ovviare all’errore “2051” che molto probabilmente è quello che ti si presenta, dovresti verificare preventivamente se la query restituisce qualche record oppure no.

    Per fare questo nell’evento “TuoButton_Click” prima di tutto apri un Recordset basato sulla query in questione e verificane il “RecordCount”.

    Se il risultato è maggiore di zero lancia l’istruzione per l’apertura del report, il quale, a questo punto, non serve che contenga il codice relativo a “Report_NoData”.

    Se il risultato è uguale a zero attiva il MsgBox ed esci dalla “Sub”.

  • Re: Evento report vuoto

    Perché ovviare all'errore che è ul metodo piu veloce e funzionale…?

    Aprire un RS o meglio usare DCOUNT eventualmente è una possibilità ma meno performante.

  • Re: Evento report vuoto

    18/05/2024 - ettore56 ha scritto:


    Per fare questo nell’evento “TuoButton_Click” prima di tutto apri un Recordset basato sulla query in questione e verificane il “RecordCount”.

    Ma soprattutto sono curioso di sapere cosa deve stampare..

    Se sono in anagrafica clienti/fornitori potrei stampare la lista clienti… non la fattura 12…. 

    Oppure crea un ddt e vuole sapere se il ddt da stampare esiste??? A questo punto mi concentrerei lato db non lato report…

    Mah! speriamo che almeno prima di inserire dati abbia effettuato la connessione al db e soprattutto che il db esista.

Devi accedere o registrarti per scrivere nel forum
14 risposte