Ciao.
Purtroppo sono vittima del mio stesso copia incolla. Nel corso di tutti gli anni, ho praticamente scritto e realizzato il 90 percento del codice che di solito uso e che ho archiviato nel mio database personale dove ho tutti i codici, gli esempi e le strutture belle e pronte, quindi quando realizzo qualcosa di nuovo raramente scrivo nuovo codice a mano. Copio, incollo, modifico giusto i nomi dei controlli, testo e via.
Questo si sta ritorcendo contro me stesso, infatti, ora quando provo a ragionare o scrivere codice a mano, mi sto rendendo conto che non mi ricordo nemmeno la sintassi di una semplice msgbox. E me ne sto rendendo conto ora che sono tornato nei vari forum.
Purtroppo senza questo quadernino sono peggio di un pivello alle prime armi.
A parte questa parentesi, anni fa quando avevo un associazione di volontariato, praticamente stampavo i singoli badge degli associati. Un singolo badge era una singola pagina del report. Ma non ricordavo bene come avevo fatto.
Ora sono tornato a casa dal lavoro ed ho aperto il mio quadernino.
Praticamente avevo fatto in questo modo.
Nella tabella contenente i dati degli associati, ho aggiunto un campo checkbox da spuntare.
poi, ho creato un report (solo corpo) basato su una query creata visualizzando tutti i dati degli associati, con la condizione (criterio) che deve ricavare solo i record che hanno la checkbox impostata su true.
Il report si chiama Badge
Poi ho creato una maschera con fonte dati la tabella contenente i dati degli associati, in modalità "visualizzazione maschera divisa".
Sopra vedo tutti i record con cognomi e nomi degli associati più la casella checkbox e nella parte inferiore vedo il singolo record con i dati dell'associato.
La maschera si chiama "Stampa badge"
Questo fa si che, sopra seleziono i badge da stampare, e sotto, forzo access a creare una pagina separata del report per ogni associato, perchè i dati gli arrivano tramite una visualizzazione a singolo record e non in modo continuo.
Nella parte inferiore, dove posso aggiungere controlli, ho inserito un pulsante "Esportabadge".
Nel pulsante ho scritto questo codice (Si devo mettere la pappa pronta, ma mi perdonerete)
Ho modificato e testato il codice in modo che ti esporta subito in pdf, senza stampare.
Private Sub Esportabadge_Click()
Dim NomeReport As String
NomeReport = "Badge"
DoCmd.OutputTo acOutputReport, NomeReport, acFormatPDF, "", False
End Sub
Praticamente, quando voglio stampare un badge, apro la maschera "esporta badge", spunto le check box su "vero" degli associati che voglio esportare e clicco il pulsante "Esportabadge"
Ti chiede di dare un nome al file da salvare e ti crea un PDF, dove in ogni singola pagina, c'è un singolo badge, oppure se vai in stampa diretta, ti stampa un badge per ogni pagina.
Poi io l'avevo affinato, facendo in modo che in automatico creasse un singolo file per singolo badge chiamato con il nome dell'associato.
Ma questa è un'altra storia.
Comunque, se devi esportare o stampare tutti i record tramite un normalissimo report, ed uno per pagina, basta che metti una interruzione di pagina alla fine del gruppo di dati che vuoi stampare.
Nell'anteprima o nella stampa, metterà un report per pagina. Naturalmente se hai 10.000 report, te li stampa tutti.
Con il metodo sopra, a parte il dover selezionare i record da stampare, puoi stampare anche un singolo record su 10.000.
Spero di esserti stato di aiuto.