Newsgroup: it.comp.appl.access
Titolo: Stampa per gruppo

E' possibile in fase di stampa di un report impostare la funzione 'stampa'
al termine di un determinato gruppo?
In questo modo, se ad es. per un gruppo ho 4 valori diversi, è come se
venissero prodotte 4 stampe separate anzichè una.
Spero di essermi spiegata!
Grazie
Ciao
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Ciao
Puoi usare la proprietà "Interruzione pagina" dell'intestazione o del piè
di pagina di ciascun gruppo per farli stampare ciascuno a partire da una
nuova pagina, o lanciare 4 volte la stampa impostando un filtro in modo
che stampi ogni volta solo uno dei gruppi.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Ciao
Scrivi DOPO al testo del msg originale, non prima.
Dicevo che da una maschera, con un pulsante puoi lanciare con dei comandi
vba tutti i gruppi singolarmente ma uno dopo l'altro, in modo che premendo
il tasto una volta sola ti stampi tutto senza crearti problemi col
fronte-retro.
Se vuoi provare così, i report li stampi col comando docmd.openreport.



Grazie, ma con che comando vba posso stampare i gruppi singolarmente uno
dopo l'altro?


 dopo l'altro?
DoCmd.OpenReport nomereport, modo,, condizione
(vedi help)
es:
DoCmd.OpenReport "Fatture", acViewNormal, , "ID=5"
Devi fare un ciclo che lanci questo comando una volta per ciascun gruppo,
cambiando la condizione.
Se non sai a priori quanti e quali gruppi hai, devi aprire un recordset
che te li elenchi, e poi per ciascuno lanci il report. Senza sapere il
nome e il tipo di campo che identifica i gruppi è difficile dare
indicazioni più precise.



Il nome del campo che fa da gruppo si chiama 'cliente' ed è un campo testo,
la quantità dei gruppi è variabile.
Grazie
Ciao


Claudia ha scritto:
[cut]




1. aprire un recordset che ti dia tutti i diversi valori contenuti nel
campo [cliente]
2. scorrere una ad una le righe del recordset (i valori di [cliente]) e
lanciare il report per ciascuno di essi
3. chiudere il recordset
Ti faccio un esempio con DAO:
dim rst as dao.recordset
set rst=currentdb.openrecordset("SELECT cliente FROM [nome tabella] GROUP
BY cliente ORDER BY cliente;")
if rst.recordcount>0 then
  with rst
    .movefirst
    while not .eof
      docmd.openreport "nomereport", acViewNormal, , "cliente=""" &
!cliente & """"
      .movenext
    wend
  end with
end if
rst.close:set rst=nothing



Queste istruzioni dove le scrivo? Nel report 'su formattazione'? L'origine
dati del report è una query.


Il 07 Apr 2004, 09:51, 
do...@spam.me
 (namor) ha scritto:

Queste istruzioni dove le scrivo? Nel report 'su formattazione'? L'origine
dati del report è una query.


 > > > > > Dicevo che da una maschera, con un pulsante...
Metti un pulsante in una maschera e il codice lo scrivi nella routine
evento "Su click" del pulsante, sostituendo [nome tabella] e "nomereport"
con i veri nomi della tua tabella (o query) e report.



Cliccando sul bottone che ho creato nella maschera, mi esce il messaggio:
'parametri insufficienti. Previsto 4'
le istruzioni che ho inserito sono le seguenti:
Private Sub Comando24_Click()
On Error GoTo Err_Comando24_Click
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT codice_agente FROM [margine] GROUP
BY [codice_agente] ORDER BY codice_agente;")
If rst.RecordCount > 0 Then
With rst
.MoveFirst
While Not .EOF
DoCmd.OpenReport "margine_age_fam", acViewNormal, , "codice_agente=""" &
!CODICE_AGENTE & """"
.MoveNext
Wend
End With
End If
rst.Close: Set rst = Nothing
Exit_Comando24_Click:
    Exit Sub
Err_Comando24_Click:
    MsgBox Err.Description
    Resume Exit_Comando24_Click
 
End Sub
grazie mille


 grazie mille
Movefirst e Movenext vanno con un solo punto davanti, non due.
"margine" č una tabella o una query parametrica? Se la apri a mano ti
chiede dei parametri? Magari proprio quattro parametri? Se č cosě il
discorso si complica e devi passare il valore dei 4 parametri prima di
aprire la query. Sul 
www.sitocomune.com
 dovrebbe esserci un esempio per il
passaggio dei parametri da vba a una query, e nei vecchi post ce ne sono
sicuramente tanti.



Per non complicarmi la vita, ho modificato la query da query di selezione a
query di creazione, poi ho reperito i dati dalla tabella e il programma ha
eseguito correttamente i salti pagina tra una gruppo e l'altro.
Grazie infinitamente
Claudia


 Claudia
Ci sarebbe un'altra soluzione, che lavora direttamente sul report così non
c'è bisogno di lanciarlo dal pulsante sulla maschera.
Bisognerebbe lavorare sulle proprietà MoveLayout PrintSection e NextRecord
per prolungare l'ultima pagina di ciascun gruppo fino a raggiungere una
pagina pari in modo che la prima pagina del successivo parta da una
dispari.
