Newsgroup: it.comp.appl.access
Titolo: Stampa Etichette Sovrapacco ... l'upgrade finale!!! ... forse ...

Tramite il Vs. aiuto sono riuscito ad implementare un programma che
recuperando i dati dalla testata dei DDT in base al n° colli spedizione
stampa n° etichette sovrapacco cossispondenti.
Ora vorrei migliorarlo come segue:
Mi piacerebbe che all'inserimento di un nuovo DDT che il mio sistema riesce
a percepire, automaticamente mi facesse partire la stampa dei sovrapacchi,
evitando così l'incombenza al magazzino di dover lanciare la stampa
manualmente.
Avevo pensato a un campo tipo si\no, fleggarlo per tutti i ddt gia fatti,
mentre su nuovo inserimento, quindi campo si\no non vistato, il sistema che
con un intervallo timer si aggiorna ogni minuto, rilevando la presenza di un
nuovo DDT con campo si\no non vistato, mi faccia partire la stampa e vada a
vistare il campo ... secondo Voi è fattibile?
M@uro

 ha scritto nel messaggio
news:c6aopv$804$1...@lacerta.tiscalinet.it...

Mi sembra che ti stai complicando inutilmente la vita: è sufficiente
eseguire la stampa delle etichette a fronte dell'evento "Dopo inserimento"
di un DDT: naturalmente filtrerai il report con il numero del DDT appena
inserito.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:RX5ic.141945$Kc3.4...@twister2.libero.it...

Quante cose devo ancora imparare, di fronte a certe risposte ... mi rendo
conto di quanto debba ancora smaliziarmi!!!
Grazie per l'aiuto Roberto!

 ha scritto nel messaggio
news:RX5ic.141945$Kc3.4...@twister2.libero.it...

Ciao Robero,
ho fatto come mi hai detto, ma sicuramente l'ho fatto male, ti spiego:
Nelle proprietà della maschera alla voce evento dopo inserimento, faccio
girare una macro che lancia la stampa delle etichette ... mi accorgo di non
aver inserito il filtro sull'ultimo record e ... ahimè ... di non sapere
come farlo ... ti chiedo questo penultimo consiglio in merito a questa
modifica per favore.
L'ultimo consiglio invece é: Meglio Apogeo o Microsoft Press per un buon
libro su access e ne vale la pena?
Grazie ;-)

 Grazie ;-)


 > > news:c6aopv$804$1...@lacerta.tiscalinet.it...
Ho provato così (vedi codice) ... anche perchè deve stampare tante etichette
quante ne sono riportate nel campo numero colli ...
... nada ... non capisco dove sbaglio.
Private Sub Form_AfterUpdate()
On Error GoTo fine:
Dim conta As Integer
conta = 1
giro:
DoCmd.OpenReport "Etichette Spedizione"
If Me.NUM_COLLI = conta Then
GoTo fine
Else
conta = conta + 1
GoTo giro:
End If
fine:
End Sub

 ha scritto nel messaggio
news:c6b5s7$lnt$1...@lacerta.tiscalinet.it...

ops ... a dire il vero è dopo AfterInsert ... ma non cambia comunque ...

c U t
... NIENTE DA FARE ...
non ci riesco ... è vero stampa premendo il pulsante tante etichette quante
riportate nel cmapo numero colli ... ma non lo fa in automatico ... su
l'inserimento di un nuovo record.
Prima non ho detto che:
La maschera prende i dati da una query collegata via odbc a tabelle sql del
gestionale ... se può essere di aiuto ... io oramai a furia di testate
contro la parete ho fratture multiple sul cranio ... !!!!!!
Riuscirò nella mia impresa?!!!!


Ma devi stampare enne volte un report?
Prova con:
'--------------
Private Sub Form_AfterUpdate()
On error goto errore
DoCmd.Hourglass True '<-- cursore a clessidra
Application.Echo False '<-- se non vuoi far vedere nulla
DoCmd.OpenReport "Etichette Spedizione",acViewPreview '<-- report in
anteprima
DoCmd.PrintOut , , , , Me.NUM_COLLI '<-- stampa enne volte il report
DoCmd.Close acReport, "Etichette Spedizione" '<-- se vuoi chiuderlo
fine:
    exit sub '<-- esce dalla subroutine
errore:
    DoCmd.Hourglass False '<-- cursore ripristinato
    Application.Echo True '<-- echo ripristinato
    msgbox Application.AccessError (Err.Number) '<-- visualizza l'errore
End Sub
'--------------
Ciao.
-- 
Sergio MAZZA

 > Ho provato così (vedi codice) ... anche perchè deve stampare tante

Ciao,
si devo stampare n° volte un report e ci riesco in quanto ho abbinato un
codice ad un pulsante,
il fatto è che vorrei che quando la maschera mi mostra un nuovo record a
seguito di un refresh guidato da una macro che rileva nuovi record in sql,
li accoda nella tabella alla quale è collegata la mia maschera ... la stampa
partisse in modo automatico ... porca miseria non ci riesco in quanto è di
misura al di fuori delle mie capacità!
Ho anche acquistato  il libro costruire applicazioni con access della
APOGEO, molto utile ma nontrovo risposta la mio quesito!
M@uro


Una macro? Se utilizzi una macro per fare un refresh perché non inserisci lì
le istruzioni per stampare il report; o al limite potresti inserire un
richiamo ad una funzione che stampa enne volte il report...
Ciao.
-- 
Sergio MAZZA

 ha scritto nel messaggio
news:Nwajc.147775$rM4.5...@news4.tin.it...

...mmmh...è denigrante ammettere che non sono capace?
Non è che potresti scrivermi un esempio del richiamo alla funzione di cui
parli?
M@uro

 M@uro
Inserire una riga di istruzioni in una macro è facile, l'istruzione che
dovresti inserire è: EseguiCodice e nelle specifiche inserire il nome della
funzione che vuoi richiamare.
Il "problema" è che questa funzione la devi scrivere in un modulo e deve
eseguire le istruzioni che decidi tu.
Diamo per scontato che il codice indicato da te funzioni, potresti
copiarlo/incollarlo in una fuzione chiamata (per esempio) StampaEnneVolte.
(es. funzione in un modulo)
Function StampaEnneVolte()
On Error GoTo fine:
Dim conta As Integer
conta = 1
giro:
DoCmd.OpenReport "Etichette Spedizione"
If Me.NUM_COLLI = conta Then
    GoTo fine
Else
    conta = conta + 1
       GoTo giro:
End If
fine:
End Function
solo che ti presenterà un errore alla riga Me.NUM_COLLI, il riferimento ME
non puoi utilizzarlo; devi cambiarlo con il nome della form dove risiede il
controllo NUM_COLLI:
(es. funzione in un modulo)
Function StampaEnneVolte()
On Error GoTo fine:
Dim conta As Integer
conta = 1
giro:
DoCmd.OpenReport "Etichette Spedizione"
If Forms!nomeForm!NUM_COLLI = conta Then
    GoTo fine
Else
    conta = conta + 1
       GoTo giro:
End If
fine:
End Function
Ciao.
--
Sergio MAZZA