Newsgroup: it.comp.appl.access
Titolo: Report dopo chiusura di un form

E' possibile eseguire un report solo dopo la chiusura di un form?
Mi spiego meglio:
Vorrei lanciare la stampa di un report solo dopo aver scelto la stampante su
cui stampare, naturalmente racchiudendo il tutto in un solo evento.
--------------------------------------------------------------
Private Sub Comando26_Click()
    stDocName = "SceltaStampante"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    stDocName = "Stampa Report1"
    DoCmd.OpenReport stDocName, acPreview
End Sub
-----------------------------------------------------------------
Magari usando il timer ??
Grazie in anticipo
Marco Dell'Oca

 ha scritto nel messaggio
news:ImiEa.90811$g92.2...@news2.tin.it...

Una strada:
crei una variabile globale di tipo booleano: Global Attesa as Boolean
All'inizio del codice la imposti a False: Attesa = False
Quando vuoi tu fai partire un Doevents così:
While Attesa = False
Doevents
Wend
Dopo aver scelto la stampante e prima di chiudere la maschera imposti
"Attesa" = True
e il gioco è fatto. Il codice riprenderà dopo il Wend.
Tradotto significa: Fino a che (While) Attesa resta del valore False,
aspetta (Doevents).
E' chiaro che "Attesa" = True deve essere impostato nel codice della seconda
maschera o alla chiusura del report.
Ciao, Carlo

 ha scritto nel messaggio
news:ImiEa.90811$g92.2...@news2.tin.it...

Puoi operare in due modi:
1- Tra i parametri della DoCmd.OpenForm esiste il parametro modal, impostalo a acDialog in
questo modo il form "SceltaStampante" sarà aperto in modalità dialogo e vba non proseguirà
nell'esecuzione delle istruzioni successive alla Docmd.Openform sino a quando il form non
verrà chiuso.
2- inserisci il DoCmd.OpenReport "Stampa Report1", acPreview a fronte dell'evento onClose
del form "SceltaStampante"
Ciao
            omnitow


Ringrazio si Carlo che Omnitow.
Tutte le soluzioni sono interessanti, ma penso che la soluzione di Omnitov
n. 1 sia la migliore in quanto mi permette di modificare i miei programmi
inserendo solo qualche riga di codice prima del comando openreport.
Grazie ancora
Marco Dell'Oca

 wrote in message
ImiEa.90811$g92.2...@news2.tin.it...

Prova a stampare il tuo report così:
Private Sub Comando26_Click()
DoCmd.SelectObject acReport, "Stampa Report1", True
DoCmd.RunCommand acCmdPrint
End Sub
Prima di stampare il report Access aprirà la finestra di dialogo di stampa
standard dalla quale potrai, fra l'altro, selezionare la stampante: la
stampa avverrà solo dopo che avrai pigiato il tasto OK della finestra di
dialogo.
Così facendo eviterai anche di crearti la maschera SceltaStampante e quindi
di aprirla.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:JooEa.68999$Ny5.2...@twister2.libero.it...

Scusate se mi intrometto ma trovo interessante  l'argomento trattato, avrei
pero' una domanda per Roberto.........
Ho provato la funzione di stampa  funziona che è una meraviglia pero ad un
tratto al posto di stampare il reporter , ho cliccato annula ,perchè non mi
serviva , zac mi viene un debug :
Errore di  run-time '2501'
L' azioneRunComand è stata annullata.
Nella finestra di debug di  Vb , mi viene marcato il codice dove si è
fermato, è quando passo con il maus sopra mi dà: acCmdPrint=340
è normale?
non dovrebbe (una volta che uno annulla con il relativo tasto),succedere
niente o no?!?
è come si potrebbe fare per corregere questo fastidio..?!?
-- 
Gianni B.

 ha scritto nel messaggio
news:3ee224ec$1...@news.bluewin.ch...

Provando provando ho come dire evitato che mi aprisse la finestra del debug
con questo metodo, mi scusao se non è molto "Professionale",(sono un
principiante autodidatta),:
Private Sub Comando185_Click()
Const ErrAnullaStampa = 2501
On Error GoTo err_Comando185
 DoCmd.SelectObject acReport, "Bestand_Alles", True
DoCmd.RunCommand acCmdPrint
err_Comando185: 'Aggingi un select case
 Select Case Err.Number
   Case ErrAnullaStampa
    MsgBox "Stampa Annullata!!", vbCritical, "ACHTUNG!!"
     Case Else
      MsgBox Err.Number & "" & Err.Description
       End Select
End Sub
 Beh funziona ed anche bene intercetta l'errore che è una meraviglia,
l'unico problema  è che sicuramente qualcuno pignolo potrebbe dire ma perchè
la stessa operazione la devo annulare due volte?!?
una nella fiestera della stampante l'altra la MsgBox che viene dopo aver
intercettato l'errore........
questo è tutto .............
Si accettano critiche , è consigli.
-- 
Gianni B.

 una nella fiestera della stampante l'altra la MsgBox che viene dopo aver



Chiunque potrebbe invece dirti perchè inserire un secondo avviso?
io farei così:
Select Case Err.Number
Case ErrAnullaStampa
    '<CUT>
Case Else
    MsgBox Err.Number & "" & Err.Description
End Select
Ciao, omnitow

 Gianni B.
