Newsgroup: it.comp.appl.access
Titolo: Contrassegnare record stampati

Buongiorno a tutti.
Il mio problema è questo:
ho una tabella "Transazioni" in cui oltre ai campi IdTransazioni,
IdAnagrafica, Importo e DataDocumento ho inserito un campo Si/No
chiamato Stampa.
Vorrei che quando stampo il report, che all'apertura mi apre la
maschera "intervallo date report" per selezionare il periodo dei
record da stampare, mi contrassegni il campo Stampa della tabella
Transazioni in Vero.
Questo mi consentirebbe nel caso di inserimento record con date che
rientrano nell'intervallo di cui si è già eseguita la stampa, di
stampare solo i nuovi record non contrassegnati come stampati.
In che modo posso ottenere questo risultato?
Grazie anticipate.
Ciao Giuseppe.

Giuseppe ha scritto:

Probabilmente devi gestire tutto sull'evento Close del report.
Io normalmente chiedo una conferma sull'effettiva stampa o qualsiasi 
altro argomento debba essere confermato, poi eseguo una procedura che mi 
aggiorna i records coinvolti(nel tuo caso potresti prendere il 
recordsource filtrato ed usarlo per aggiornare il flag stampato).
IvanDaBologna



Come faccio a selezionare il recordsource filtrato in modo da far
eseguire su evento chiusura report una query di aggiornamento che mi
metta il flag sul campo Stampato?
Ciao e grazie per la risposta .
Giuseppe-

 Giuseppe-
  Caro Giuseppe,
dammi qualche indicazione sull'origine del tuo report acciocchè io possa 
  indicarti una direzione mirata alla soluzione del tuo problema.
Non lesinare in particolari ... sono curioso !  ;) ;)
IvanDaBologna


Ho utilizzato il modello Libro Mastro presente nei modelli di
Microsoft Access.
Ho fatto qualche piccolissima variazione che non incide sul discorso
di fleggare i record stampati.
Ho aggiunto nella tabella transazioni una casella di controllo Si/No
che ho chiamato Stampato sul quale applicare il flag dopo la stampa.
Quindi dopo aver immesso le registrazioni, vado sul menu ----->
visualizza report in anteprima ----->Visualizza il report Elenco
transizioni in anteprima.
Si apre la maschera "Intervallo date report" digito la data di inizio
e fine dei record che voglio stampare, procedo con la stampa.
Grazie Ivan.
Ciao.
Giuseppe.

 Giuseppe.
allora ecco una possibile soluzione.
Ho modificato l'evento chiusura del Report ElencoTransazioni per 
inserire la query di aggiornamento:
-----------------------------
Private Sub Report_Close()
     Dim sSQL As String
     sSQL = "UPDATE Transazioni SET Stampato = " & True & " WHERE " & _
         "DataTransazione Between (" & _
         [Forms]![Intervallo date report]![Data inizio trans] & _
         " And " & _
         [Forms]![Intervallo date report]![Data fine trans] & ")"
     Stop
     DoCmd.RunSQL sSQL
     DoCmd.Close acForm, "Intervallo date report"
End Sub
--------------------------------
Però devi anche modificare l'origine record del report stesso per 
visualizzare solo le transazioni NON stampate.
Fai un click su proprietà del report e sull' origone record gli aggiungi 
  in maniera Visuale il campo Stampato (in fondo a destra) con criterio 
: Falso.
spero di essere stato chiaro
IvanDaBologna
PS
ti allego l'SQL dell'origine record del report, anche se verrà tagliata 
dall'editor del messaggio, ed è poco leggibile:
-------------------------
SELECT DISTINCTROW Transazioni.*, Conti.NomeConto, Transazioni.Stampato
FROM Conti RIGHT JOIN Transazioni ON Conti.IDConto = Transazioni.IDConto
WHERE (((Transazioni.Stampato)=False) AND 
((Transazioni.DataTransazione)>=[forms]![Intervallo date report]![Data 
inizio trans] And (Transazioni.DataTransazione)<=[Forms]![Intervallo 
date report]![Data fine trans]));
-----------------------------


Grazie Ivan
scusa il ritardo.
Volevo dirti che quando chiudo il report, si apre Visual Basic e mi
evidenzia in giallo STOP.
Cosa devo fare?

 ha scritto nel messaggio 
news:c70ae9ff-2370-4e3c...@x38g2000yqj.googlegroups.com...
---cut---
Volevo dirti che quando chiudo il report, si apre Visual Basic e mi
evidenzia in giallo STOP.
Cosa devo fare?
toglilo, stop equivale ad inserire un breakpoint.
-- 
Ciao
Geppo 

 Geppo
Ciao Geppo, grazie per l'intervento
il problema è che ho fatto la prova a toglierlo ma ore mi dà il
seguente messaggio:
Errore di run-time '3075':
Operatore Between senza And nell'espressione della query
'DataDocumento Between (01/01/2008 And 31/05/2008)'.
e mi evidenzia in giallo  "DoCmd.RunSQL sSQL"
Ciao.

 messaggionews:c70ae9ff-2370-4e3c...@x38g2000yqj.googlegroups.com...
 ---cut---
Ciao Geppo, grazie per l'intervento
il problema è che ho fatto la prova a toglierlo ma ore mi dà il
seguente messaggio:
Errore di run-time '3075':
Operatore Between senza And nell'espressione della query
'DataDocumento Between (01/01/2008 And 31/05/2008)'.
e mi evidenzia in giallo  "DoCmd.RunSQL sSQL"
sulla base del suggerimento di Ivan:
-----------------------------
Private Sub Report_Close()
     Dim sSQL As String
     sSQL = "UPDATE Transazioni SET Stampato = True WHERE " & _
         "DataTransazione Between #" & _
         format([Forms]![Intervallo date report]![Data inizio trans], 
"mm/dd/yyyy") & _
         "# And #" & _
         format([Forms]![Intervallo date report]![Data fine trans], 
"mm/dd/yyyy") & "#"
     Stop
     DoCmd.RunSQL sSQL
     DoCmd.Close acForm, "Intervallo date report"
End Sub
--------------------------------
-- 
Ciao
Geppo 

 ha scritto nel messaggionews:3249654b-d7ff-4890...@t11g2000yqg.googlegroups.com...

Perfetto Geppo, funziona.
Quindi bisogna mettere il # e il formato data "mm/dd/yyyy"-
Grazie.
Ciao.

Giuseppe ha scritto:

ciao giuseppe e geppo,
scusate per le piccole imperfezioni dovute alla fretta ...
Il primo problema è che in fase di test metto sempre degli stop 
sopratutto quando costruisco gli statement SQL che sono molto sensibili 
a qualsiasi errore ortografico.
Il secondo errore che faccio da sempre è di considerare Between alla 
stregua di una funzione con parametri invece che quello che è : un 
costrutto tipo If .... Then  dove le due parole chiave Between ... And 
sono sullo stesso livello.
Il terzo errore .... credevo di non scavare più così indietro nei 
messaggi e quindi non ho più seguito la discussione ... ;)) grazie a geppo.
IvanDaBologna