Newsgroup: it.comp.appl.access
Titolo: Contatore di stampa ... si può...

salve a tutti di NG...
volevo chiedere se vi č qualche maniera di inserire in
una maschera la quale ha un bottone di stampa report
oppure anche in un report un conteggio delle stampe effettuate..
chiaramente da inserire in un controllo della maschera...
ciao

 ciao
Non ho capito vorresti una form nella quale inserire quante stampe
effettuare..??
Usa l'istruzione PrintOut e sfrutta
Dim NumStamp as Integer
NumStamp = InputBox("Numero Stampe..?")
Docmd.OpenReport Nomereport
DoCmd.PrintOut , , , NumStamp
Ciao.
@Alex.

 DoCmd.PrintOut , , , NumStamp
---------------
no... mi sono spiegato male...
mi servirebbe un contatore di stampe..
ogni stampa effettuata si dovrebbe registrare
in un contatore...
esempio se oggi effettuo 10 stampe si devono poter
aggiungere alle altre che ho fatto ieri...
ciao

ciao
Usa una query di aggiornamento che incrementa un campo in una tabella
Tipo:
Dim SQLIncr as String
Dim Cont as Integer
DIm NuovoCont as Integer
Cont = Dlookup("[CampoContatore]","TabellaContenenteIlContatore")
If IsNull(Cont) Then
  NuovoCont = 1
Else
  NuovoCont = Cont + 1
End IF
SQLIncr ="UPDATE TabellaContenenteIlContatore " & _
"Set CampoContatore='" & NuovoCont & "'"
DoCmd.RunSql SQLIncr
....non ho fatto debug....:)
Io di solito vado cosi
Ciao :)

Dim SQLIncr as String
Dim Cont as Variant


" SuperPippo®" <ik0qddT...@TOGLISPAMlibero.it> ha scritto nel messaggio
news:JADOa.156622$Ny5.4...@twister2.libero.it...

Usa una tabella dove leggi e scrivi il numero di stampe
Antonio

 Usa una tabella dove leggi e scrivi il numero di stampe
------------
scusa Antonio... che intendi.. ??
manualmente scrivere se oggi ho fatto 25 stampe ...??
ciao...

> DoCmd.RunSql SQLIncr
--------------
Ciao yQy... non ho capito se usi anche tu questa funzione
di contare le stampe...
vediamo se ho capito...
in sostanza dovrei fare una tabella con un campo contatore
supponiamo chiamata NumStampe
e poi il codice sopra citato come lo utilizzo ???
grazie...

" SuperPippo®" <ik0qddT...@TOGLISPAMlibero.it> ha scritto nel messaggio
news:j_TOa.160252$lK4.4...@twister1.libero.it...

Ma scusa eh?
C'avrai un codice dove fai
docmd.openreport
dove fai questo fai anche una
docmd.runsql "UPDATE tab SET tab.cont = [cont]+1;"
Antonio


Valuta quest'idea.
Tu hai un controllo sulla maschera che ti dice il numero di copie da
stampare.
Accoda questo valore in una tabella all'upo creata in cui ci inserisci anche
il giorno e l'ora di stampa.
Per sapere le varie stampe dovrai solo sommare questo valore e magari sai
anche in quali giorni l'hai fatto. come ti è stato suggerito tu perdi la
progressione delle stampe.
Sta a te valutare quale ti conviene.
MAssimiliano

 Sta a te valutare quale ti conviene.
------------
Ciao Ma... certo mi occorre la progressione delle stampe...
ma il fatto è che non sò come applicarla...allora...
ho una maschera principale e vi è questo codice
nel bottone di Stampa....
Private Sub Comando80_Click()
On Error GoTo Err_Comando80_Click
    Dim stDocName As String
    stDocName = "Stampa Scheda"
    DoCmd.OpenReport stDocName, acNormal
Exit_Comando80_Click:
    Exit Sub
Err_Comando80_Click:
    MsgBox Err.Description
    Resume Exit_Comando80_Click
 End Sub
poi nella stessa maschera ho un bottone di comando
che apre un'altra maschera ed il bottone di Stampa ha questo
codice...
Private Sub Comando11_Click()
On Error GoTo Err_Comando11_Click
    Dim stDocName As String
    stDocName = "Stampa Sottocodici"
    DoCmd.OpenReport stDocName, acNormal
Exit_Comando11_Click:
    Exit Sub
Err_Comando11_Click:
    MsgBox Err.Description
    Resume Exit_Comando11_Click
    End Sub
quindi come fare ad applicare il tuo codice
per queste routine di stampa ???
Ciao...
ps-- se mi puoi spiegare in pratica il procedimento...
grazie...

     DoCmd.OpenReport stDocName, acNormal
docmd.runsql "UPDATE tab SET tab.cont = [cont]+1;"
CAZZAROLA!!!
Antonio

 ho una maschera principale e vi č questo codice

Allora se tu esegui piů stampe alla volta del report  dovrai inserire una
casella di testo "n_stampe" anceh non associata e dopo "on error" del tuo
pulsante inserisci
dim i as integer
For i=0 to n_stampe
con questo gli dici di stampare tabte volte quanto il valore in n_stampe
poi, ot crei una query di accodamento


Scusami, mi č partito un ctrl+Enter non voluto.
dicevo poi ti accodi questo valore in una tabella creata ad hoc con un campo
data impostato a now() come predefinito
MAssimiliano

ciao
Mon pensavo che avrei scatenato tutto sto panico :))))))

grazie...
Hai 2 strade, una + semplice e l'altra un po' + professionale e
carina:
Strada 1:
Crea una tabella ContaStampe con un campo NumStampe di tipo numerico
Al clic del bottone che lancia la stampa gli associ il codice che ti
ho mandato io, che provo ad ottimizzare:
--------------------------------
Private Sub Comando80_Click()
On Error GoTo Err_Comando80_Click
    Dim stDocName As String
    stDocName = "Stampa Scheda"
    DoCmd.OpenReport stDocName, acNormal
    Dim SQLIncr as String
    Dim Cont as Variant
    DIm NuovoCont as Integer
    Cont = Dlookup("[NumStampe]","ContaStampe")
    If IsNull(Cont) Then
      NuovoCont = 1
    Else
      NuovoCont = Cont + 1
    End IF
    SQLIncr ="UPDATE ContaStampe" & _
    "Set NumStampe" & NuovoCont & "'"
 
    docmd.setwarnings false 'evita il messaggio verranno inseriti..
    DoCmd.RunSql SQLIncr
    docmd.setwarnings true 'reimposta gli avvisi di access, IMPORTANTE
Exit_Comando80_Click:
    Exit Sub
Err_Comando80_Click:
    MsgBox Err.Description
    Resume Exit_Comando80_Click
End Sub
-----------------------------
Strada 2:
Come la strada 1 solo ke puoi contare quante stampe ottieni se per
stampare usi il comando docmd.printout....3 (che 3 e' il numero copie)
Non posto il codice per non fare un posto immenso, ma se ti serve lo
metto su un altro post...
Ciao :)

    DoCmd.RunSql SQLIncr
...ecc...ecc...
scusami! :))

 CAZZAROLA!!!
----------------
Ok... Antonio.. mi hai convinto.. vista la soluzione + semplice..
ho inserito la stringa nel codice...ma cosa dovrei fare ora...
creare una Tabella "Tab"...
Private Sub Comando11_Click()
On Error GoTo Err_Comando11_Click
    Dim stDocName As String
    stDocName = "Stampa Sottocodici"
    DoCmd.OpenReport stDocName, acNormal
Exit_Comando11_Click:
    Exit Sub
Err_Comando11_Click:
    MsgBox Err.Description
    Resume Exit_Comando11_Click
    DoCmd.RunSQL "UPDATE tab SET tab.cont = [cont]+1;"
End Sub

 Correzione alla stringa SQL
-------------------
Ciao.. ho provato la tua routine... ecco il codice...
Private Sub Comando11_Click()
On Error GoTo Err_Comando80_Click
    Dim stDocName As String
    stDocName = "Stampa Sottocodici"
    DoCmd.OpenReport stDocName, acNormal
    Dim SQLIncr As String
    Dim Cont As Variant
    Dim NuovoCont As Integer
    Cont = DLookup("[NumStampe]", "ContaStampe")
    If IsNull(Cont) Then
      NuovoCont = 1
    Else
      NuovoCont = Cont + 1
    End If
SQLIncr = "UPDATE ContaStampe Set NumStampe='" & NuovoCont & "'"
    DoCmd.SetWarnings False 'evita il messaggio verranno inseriti..
    DoCmd.RunSQL SQLIncr
    DoCmd.SetWarnings True 'reimposta gli avvisi di access, IMPORTANTE
Exit_Comando80_Click:
    Exit Sub
Err_Comando80_Click:
    MsgBox Err.Description
    Resume Exit_Comando80_Click
End Sub
------------------------
ho stampato un paio di fogli ma non ho visto alcun incremento
nel campo della Tabella...
come mai ???

 On Error GoTo Err_Comando80_Click
    Dim Miorst As DAO.Recordset
    dim pippo as string
 
    pippo = "tuoreport"
 
for i = 0 to me.quantenevuoi
    docmd.openreport pippo etc.....
next
    Set Miorst = CurrentDb.OpenRecordset("conta_stampe")
    Miorst.AddNew
    Miorst!quantecacchio = me.quantenevuoi
    Miorst![quandolhaistampato] = now
    Miorst.Update
    Miorst.Close
 
    Set Miorst = Nothing
 
 Exit_Comando80_Click:
     Exit Sub
 Err_Comando80_Click:
     MsgBox Err.Description
     Resume Exit_Comando80_Click
 End Sub
cos' hai anche la pprogressione delle stampe
MAssimiliano
--------------------------------
Inviato via 
http://usenet.libero.it

 come mai ???
Perchè tutto prevedeva che nella tabella già ci fosse un record
inizializzato a 1 la prima volta.
Se tu invece usi la tecnica del isnull sulla dlookup, devi anche cambiare la
query, che sarà di accodamento di un record con valore 1.
Antonio

 cambiare la query, che sarà di accodamento di un record con valore 1.
-------------
Ok... allora procediamo con ordine....
ho tolto il codice che tu dicevi era in eccesso ...
ho fatto la query di accodamento e comincia da 1...
la stampa funziona ma la tabella viene aggiornata
inserendo sempre un numero uno in maniera progressiva
mentre mi servirebbe che il numero si sommi a quello precedente...
il massimo della perfezione sublime sarebbe........
magari con un campo data nella tabella...
tipo...          data          Stampa
             10/07/2003   -    15
etc. etc...
cmq.. se è troppo complicato lasciamo perdere...
inoltre
e mi esce un errore che dice...
"Istruzione SQL non valida. Previsto Delete, Insert, Select
Update...
il codice SQL è :
INSERT INTO ContaStampe ( NumStampe )
SELECT ContaStampe.NumStampe
FROM ContaStampe;
mentre il codice utilizzato è...
Private Sub Comando11_Click()
On Error GoTo Err_Comando80_Click
    Dim stDocName As String
    stDocName = "Stampa Sottocodici"
    DoCmd.OpenReport stDocName, acNormal
    Dim SQLIncr As String
    Dim Cont As Variant
    Dim NuovoCont As Integer
    Cont = DLookup("[NumStampe]", "ContaStampe")
    DoCmd.SetWarnings False 'evita il messaggio verranno inseriti..
    DoCmd.RunSQL SQLIncr
    DoCmd.SetWarnings True 'reimposta gli avvisi di access, IMPORTANTE
Exit_Comando80_Click:
    Exit Sub
Err_Comando80_Click:
    MsgBox Err.Description
    Resume Exit_Comando80_Click
End Sub
----------------------
ciao...

ciao...
Ciao :)

   DoCmd.RunSQL SQLi
Antonio

>   DoCmd.RunSQL SQLi
----------
certo il post p riferito a yQy... dato che io non sò neanche di
cosa parla Antonio....
e cmq.. devo dire.. che a parte un paio di correzzioni ortografiche
fatte al codice .. vedi Private e Application ora se pigio il bottone
Stampa Codici non stampa proprio nulla...
forse il problema detto da antonio ???
Ciao...