Newsgroup: it.comp.appl.access
Titolo: REPORT

Salve a tutti una domanda banale,ma sono un neofita e sto sperimentando :
Ho creato una maschera che filtra dei valori e questi valori opportunamente 
collegati creano una query che viene associata ad un report che mostra sotto 
forma di tabella i risultati ottenuti, fin qui tutto ok, quello che non 
riesco a fare è riuscire a capire, prima di mostrare a video un report con 
all'interno degli "#Error", se la query che l'utente ha scelta porti a dei 
risultati o meno.
Cioè wuery vuota manda un messaggio all'utente altrimenti apre il Report.
Come faccio ?
Grazie mille 

 ha scritto nel messaggio
news:FTlrd.21650$C94....@tornado.fastwebnet.it...

Ciao Harry,
devi mettere un messaggio nell'evento No_data del Report.
Cinzia

Perfetto questa è la situazione perfetta, ma si pone un problema, posto le 3 
righe di codice :
DoCmd.Echo False
DoCmd.OpenReport "REPORT1", acViewDesign
With Reports("REPORT1")
   .Visible = False
   .RecordSource = SQL
End With
DoCmd.OpenReport "REPORT1", acViewPreview
DoCmd.Echo True
io creo dalla maschera la mia stringa SQL la associo al RecordSource del mio 
report in questo modo dopodichè mostro il REPORT1.
Andando a mettere un Messaggio nell'evento No_Data del Report, il messagio 
viene mostrato correttamente, ma non so come tornare alla maschera senza che 
il report vuoto venga mostrato;
Quando viene eseguita la : -->>DoCmd.OpenReport "REPORT1", acViewPreview
si attiva l'evento No_Data , ma a questo punto come faccio a saltare 
l'operazione di visualizzazione ?
Grazie mille 

 ha scritto nel messaggio
news:2Pmrd.21815$C94....@tornado.fastwebnet.it...

Ciao Harry,
basta che aggiungi cancel = true dopo la MsgBox;
Saluti
Cinzia

Non ho capito cosa intendi scusa Cinza; è riferito al parametro cancel 
dell'evento? Perchè ho messo :
Private Sub Report_NoData(Cancel As Integer)
MsgBox "Non sono disponibili informazioni per questa opzione"
Cancel=TRUE
End Sub
Ma non cambia nulla !

 ha scritto nel messaggio
news:fcnrd.21874$C94....@tornado.fastwebnet.it...

Scusa
 forse non ho capito io il problema,
con queste istruzioni:
Private Sub Report_NoData(Cancel As Integer)
     MsgBox "Non sono disponibili informazioni per questa opzione"
  Cancel=TRUE
 End Sub
nel caso SQL non restituisca record dovrebbe visualizzare il messaggio e
REPORT1 non dovrebbe essere proprio visualizzato.
Invece a te cosa succede?
Cinzia

Scusa se ti rompo. Ma non sono un gran manico di access e sto imparando.
A me si apre il mio REPORT1 vuoto !
Poi lo chiudo con la "X" in alto a desta ed è tutto ok !
Potrebbe essere nella riga che ti segnalo qui sotto  il problema ?
DoCmd.Echo False
DoCmd.OpenReport "REPORT1", acViewDesign
With Reports("REPORT1")
   .Visible = False
   .RecordSource = SQL
End With
DoCmd.OpenReport "REPORT1", acViewPreview
QUESTA RIGA ---->  DoCmd.Echo True
Se tolgo quella riga naturalmente sono in ECHO OFF e non si vede più nulla e 
non mi resta che chiudere e riavviare il DB.
Io non conosco altri modi per caricari una sorgente in un report senza usare 
questo metodo, potrei fare in altro modo ?
Grazie mille e ti devo già una cena, spero di non incasinarmi troppo 
altrimenti mi tocca anche il pranzo AHAHAHA
Grazie ancora 

 ha scritto nel messaggio
news:x3ord.21985$C94....@tornado.fastwebnet.it...

Dunque,
io proverei a spostare  il doCmd.Echo True
prima della DoCmd.openReport "Report1"
e vediamo cosa succede...
Fammi sapere!  casomai dimmi anche che versione di Access stai usando,
magari provo a suggerirti un'altra strada per campiare il recordSource...
Saluti
Cinzia

Purtroppo non cambia nulla ! :-)
Accetto consigli su strade alternative :
Le operazioni sono :
con una stringa SQL, corretta, in ingresso
- Se Recordset NON vuoto
         allora         mostra REPORT1
         altrimenti    mostra MESSAGGIO
- FINE 

 ha scritto nel messaggio 
news:zhzrd.22498$C94....@tornado.fastwebnet.it...

Prova cosě
Nell'evento su clic del bottone:
    On Error GoTo comando0_err
    Application.Echo False
    DoCmd.OpenReport "nomeReport", acViewDesign
    Screen.ActiveReport.RecordSource = "Select * From tabella;"
    DoCmd.Close acReport, 
Screen.ActiveReport.Name
, acSaveYes
    Application.Echo True
    DoCmd.OpenReport "nomeReport", acViewPreview
    Exit Sub
    comando0_err:
        Resume Next
nell'evento "su report vuoto":
    Private Sub Report_NoData(Cancel As Integer)
    MsgBox "il report e vuoto!"
    Cancel = -1
End Sub
Ciao.
-- 
Sergio MAZZA 

Funziona perfettamente grazie Sergioe e anche Cinzia !
Ciao