Newsgroup: it.comp.appl.access
Titolo: Stampa di un solo record e in tre copie?

quesitino: e' possibile realizzare un tasto di stampa in una maschera
che preveda la stampa attraverso un report solo del record che ho inserito
nella maschera dalla quale premo il tasto, o sono obbligato a stampare tutto
il DB?
Posso poi dallo stesso tasto ordinare una stampa in tre copie, sono sicuro
di
si,ma come?
Grazie
Matteo

 ha scritto nel messaggio
news:DWlp9.14768$RO.3...@twister1.libero.it...

Puoi stampare la maschera corrente con questo codice (generato automaticamente
da Access quando crei un pulsante):
Private Sub PulsanteStampa_Click()
On Error GoTo Err_PulsanteStampa_Click
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.PrintOut acSelection, , , , 3
Exit_PulsanteStampa_Click:
    Exit Sub
Err_PulsanteStampa_Click:
    MsgBox Err.Description
    Resume Exit_PulsanteStampa_Click
End Sub
L'unica modifica che ho fatto è stato impostare il numero di copie (il 3 del
metodo PrintOut).
Ciao. Claudio.

Mi sono spiegato male, io non voglio stampare la maschera, ma un report!
Tale report pero' dovrebbe essere relativo solo al record che o appena
inserito nella maschera:
Nella fattispecie pensa a quest'esempio.... io compilo una maschera con i
miei dati anagrafici, poi in fondo alla maschera compilata trovo un tasto di
stampa dati, tale tasto stampa i miei dati, formattati pero' in un report in
modo tale da entrare perfettamente nelle caselle di un modulo cartaceo che
metto nella stampante.
Il DB conterra' i dati di molte persone, io pero' voglio poter stampare solo
quelle che ho appena inserito o al limite quelle che sto vedendo sullo
schermo nella maschera. Tutto questo deve essere stampato poi in 3 copie!
Grazie di nuovo
Il codice per separare i caratteri da uno spazio ha funzionato alla
perfezione...
Grazie
Matteo
"Claudio" <cld@NOSPAM&COsupereva.it> ha scritto nel messaggio
news:7Cmp9.38879$cS4.1...@news2.tin.it...


 inserito nella maschera:
Sono io che non avevo capito... in effetti avevi detto "tramite un report".
Prova questo codice, allora:
Private Sub StampaReport_Click()
On Error GoTo Err_StampaReport_Click
    Dim stDocName As String
    '    Me.Refresh
    stDocName = "MioReport"
    DoCmd.OpenReport stDocName, , , "ID=" & ID
    DoCmd.OpenReport stDocName, , , "ID=" & ID
    DoCmd.OpenReport stDocName, , , "ID=" & ID
Exit_StampaReport_Click:
    Exit Sub
Err_StampaReport_Click:
    MsgBox Err.Description
    Resume Exit_StampaReport_Click
End Sub
Ovviamente, affinché funzioni, dovrai aver definito una chiave primaria nella
tabella a cui il report si appoggia (ID), e aver incluso questo campo
nell'origine record del tuo report.
Inoltre il record deve già essere stato aggiornato nella tabella: se sei ancora
nella fase di inserimento chiaramente non ti stamperà nulla, poiché il record
non esiste ancora in tabella. Se vuoi che ti stampi anche in fase di
inserimento, dovresti da codice prima aggiornare il record (usa il metodo
Refresh prima della stampa: te l'ho lasciato commentato nel codice).
Ciao. Claudio.

 inserito nella maschera:
Non ti sei spiegato male, è solo che le MASCHERE non si possono
stampare,
quello che ti hanno detto è corretto, solo dovresti sapere che il
REPORT devi creartelo prima......!!
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 nell'origine record del tuo report.
posso rompere? Questa affermazione non e' vera.
1) non e' detto che ci debba essere una chiave primaria
2) non e' detto che debba essere per forza un ID (se l'ID e'
   il famoso contatore)
3) non e' detto che il campo debba essere incluso nel report
 
   select listacampi from tabella 
     where campo1 = x, campo2=y, campo3 = z  etc.......
 
   l'imoportante e' che x,y,z identifichino univocamente una riga
   i.e docmd.openreport "nomereport", , , condizionewhere
--
a.cara

 stampare,
In verità puoi con DoCmd.PrintOut :-)

 REPORT devi creartelo prima......!!
Beh, mi sembra il minimo... :-)
Ciao. Claudio.

 3) non e' detto che il campo debba essere incluso nel report
S', ma il nostro amico vuole stampare il record corrente. Quindi non è detto
che non esistano altri record che soddisfino tutti i criteri che puoi
impostare. Può sempre esistere un caso in cui vengano stampati record non
desiderati. La cosa più semplice è impostare un contatore come chiave primaria
che identifichi univocamente ogni record.
Quindi, la mia affermazione è vera per far funzionare la soluzione proposta
(dove faccio uso di un campo chiamato ID). L'unica cosa vera è che non debba
essere necessariamente una chiave primaria (ma già che ci siamo...)
Inoltre, non ho detto che il campo debba essere incluso nel report, ma ho detto
che deve essere incluso nell'origine record del report (mi sembra abbastanza
diverso...)
Mi sembrano precisazioni non necessarie... d'altra parte hai chiesto se potevi
rompere :-)
Ciao. Claudio.

 wrote in message
news:gnyp9.16284$%
M1.3...@twister2.libero.it

Si è vero, ma credo sia ovvio l'errore al quale si riferiva...!!
@Alex


 Ciao. Claudio.
Ciao @Alex


 che non fosse quello richiesto.......!! ;-)
Però lo stampa finestra di Access è una vera figata, tutt'altro che una
fotografia del video: puoi stabilire quali oggetti vedere solo a video o in
stampa e addirittura far espandere automaticamente le caselle di testo
(proprio come in un report);  analogamente se stampi una Form continua con
molti records non si ferma alla prima pagina...
Ciao: Ettore