Newsgroup: it.comp.appl.access
Titolo: testo blinking su report ?

Uso a volte Access come "Visual Basic dei poveri", non per produrre report 
fisici ma delle videate a schermo.
 
In una di queste videata avrei bisogno di avere l'attributo lampeggiante 
nell'anteprima del report. Immagino che non si possa, ma chiedo conferma. 
 
Per la vs. curiosita', il report e' una specie di etichetta che viene 
stampata a video su sei colonne e tante righe quanto ce ne stanno. ogni 
etichetta mostra la lavorazione di processo industriale  che inizia, va 
avanti e viene concluso. Il processo quando entra in lavorazione e' 
stampato in rosso, durante la produzione diventa nero, e quanto e' poi 
concluso diventa blu, a seconda di certi flag di avanzamento associati a 
ogni processo. Una volta al minuto rigenero il report, nell'evento "su 
apertura" chiamo un codice  "private sub corpo_print()" con tutti i 
colori [txtMioProcesso].ForeColor = vbRed ecc. e al momento della 
visualizzazione, nel tempo, vedo i vari processi cambiare colore.
 
In caso di lavorazione che superi un certo ritardo, adesso posso cambiare 
il colore per es. del fondo della etichetta. Vorrei che la segnalazione 
fosse piu' vistosa e facesse lampeggiare l'etichetta.
 
Saprei come far lampeggiare qualcosa in un maschera (form) ma non so se 
si puo' far lampeggiare l'anteprima di un report. 
 
Suggerimenti o commenti? 
 
grazie
 

 si puo' far lampeggiare l'anteprima di un report. 
 
Come fai a far lampeggiare qualcosa in una maschera ??
 
Tu usi l'evento  "Su apertura"  perche non usi "Su Timer"  ??
 
Ma il tuo problema è che avresti bisogno di 2 timer indipendenti
mentre Access te ne da solo 1
 
Se usi Access2007 o superiore puoi usare le "TempVars"
diversamente bisogna trovare altre soluzioni
 
 
Fatti un report con detro solo 2 controlli ( caselle di testo )
di nome  "Lento"  e "Veloce"
imposta il Timer a 1000  ( sono millisecondi )
 
su Timer mettici il codice scritto sotto e i 2 controlli ti lampeggiano
con 2 frequenze diverse  ( 5 secondi e 1 secondo )
 
 
Private Sub Report_Timer()
 
If Nz(TempVars("n"), 0) = 0 Then TempVars.Add ("n"), 1
 
    If TempVars("n") < 5.5 Then
            If Me!Veloce.BackColor = 255 Then
                Me!Veloce.BackColor = 60000
            Else
                Me!Veloce.BackColor = 255
            End If
        TempVars("n") = TempVars("n") + 1
    Else
            If Me!Veloce.BackColor = 255 Then
                Me!Veloce.BackColor = 60000
            Else
                Me!Veloce.BackColor = 255
            End If
 
            If Me!Lento.BackColor = 255 Then
                Me!Lento.BackColor = 60000
            Else
                Me!Lento.BackColor = 255
            End If
        TempVars("n") = 1
    End If
End Sub
 
 
 
C'è da dire che nella 1° riga ho un grosso errore concettuale
quando faccio il Nz di una TempVars che ancora NON esiste
tuttavia al test funziona 
 
 
Facci sapere
 

 fisici ma delle videate a schermo.
 
Perche' Visual Basic e' per i ricchi ?
 
 

Pensa che io faccio il contrario, uso C# e Net come Access dei poveri... forse sbaglio..?
 
@Alex

 Facci sapere
 
Sto studiano il codice
 

 Perche' Visual Basic e' per i ricchi ?
 
Intendo dire che Access e' interpretato, l'applicazione ha sempre 
bisogno  di avere Access (o almeno il runtime) nel computer.
 
Vb e' compilato e l'applicazione e' stand-alone. 
 
Uso access come front-end di di server con Oracle, e va benissimo, certe 
volte mi devo ingegnare, ho l'idea di essere un poi al limite. E' anche 
vero che alla fine per tante cose c'e' una convergenza dei vari VB, VBA 
ecc. magari ho solo una versione ormai superata.
 
 

 Sto studiano il codice
 
Se usi Access 97 quel codice ( che usa TempVars ) non puo assolutamente funzionare
poi se ti manca l'eventi Timer .......
adesso capisco anche perche hai usato il termine 
<cit> .... rigenero il report .... </cit>
 
Prova a "giocare con questo Triplo Timer 
costruito solo con il VBA del "povero" Access
ti restituisce:
- Un messaggio ogni 5 secondi
- Un altro messaggio ogni 20 secondi
- Una uscita dal ciclo dopo 80 secondi
 
Attento pero,  se lo usi a cavallo della mezzanotte ti genera nel casino
 
 
Public Sub TimerDoppio()
 
Dim IniE As Long
IniE = Timer
 
Dim IniV As Long
Dim IniL As Long
 
LLL:
IniL = Timer
 
VVV:
IniV = Timer
 
    Do While Timer < IniV + 5
        DoEvents
    Loop
 
' VVVV Qui fai la rigenerazione Veloce ogni 5 secondi
MsgBox "VVV Rigenerazione Veloce  ( 5 secondi )"
 
 
    If Timer > IniL + 20 Then
        ' LLLLL Qui fai la rigenerazione Lenta ogni 20 secondi
        MsgBox "LLL Rigenerazione Lenta  ( 20 secondi )"
        GoTo LLL:
    End If
 
    If Timer > IniE + 80 Then
        ' Questa è una funzione di ExitSub altrimenti il ciclo diventa "eterno"
        MsgBox "Interrompiamo il ciclo eterno a 80 secondi"
        Exit Sub
    End If
 
GoTo VVV:
 
End Sub
 
 
 

 "povero" Access ti restituisce:
 
Ti ringrazio. In effetti il codice funziona correttamente se lo lancio 
con un pulsante di test.
 
Provando a inserirlo sul campo, e mutatis mutandis, a un certo punto dice 
che "l'azione non e' valida per le proprieta' dell'oggetto". 
 
tieni presente che nella mia videata di report per ogni riga del report 
possono cambiare gli attributi di colore di ogni singola riga. 
 
if not EntratoInLavorazione then 
   txtEtichettaProdotto.ForeColor = vbBlack
   txtEtichettaProdotto.BackColor = vbWhite
else
   txtEtichettaProdotto.ForeColor = vbRed 
   txtEtichettaProdotto.BackColor = 12632256  '(grigio)
endif 
 
if delayed ecc.
if completed ecc.
id Aborted ecc.
 
A me semplicemente servirebbe un attributo della "proprieta' 
ColoreprimoPiano" che in aggiunta al colore aggiungesse un attributo tipo 
blinking (oppure meno bene grassetto o sottolineato ecc.)
 
In alcuni basic l'attributo blinking o italic ecc. e' determinato da 
alcuni bit accesi o spenti che si attivano modificando la costante 
numerica associata alla proprieta' del colore.
 
Qui A97 si ferma ai colori, evidentemente pensando a un report cartaceo 
in cui la stampante non puo' certo blinkare.
 
a sapere che negli access successivi la proprieta' ColorePrimoPiano ecc. 
prevede anche altri attributi, sarebbe un motivazione all'upgrade.
 
grazie e ciao
 
 
 
 

 Vb e' compilato e l'applicazione e' stand-alone.
 
 
Mica vero: le applicazioni .NET vengono eseguite da una virtual machine! (il 
framework)
 
Saluti 
 
 

 
"Christian Slutter, Luebeck" <Christin...@U18.de> ha scritto nel 
messaggio news:l8mhut$4pm$2...@virtdiesel.mng.cu.mi.it...

In che senso compilato?
Pensavo avesse bisogno del vbrunXXX.dll  per funzionare
Se cosi fosse, che differenza vedi tra un applicativo  .mde + runtime Access 
e un  exe visual basic + runtime Visual Basic?
Pure l'ambiente dot net prevede un 'ambiente' di funzioni cui appoggiarsi
Per compilatori intenderei i vari sistemi che partendo dal codice 
sorgente+librerie producono un eseguibile autonomo