Newsgroup: it.comp.appl.access
Titolo: aggiornamento dati automatico

salve al N.G. premetto pivello..........
ho un controllo ........
Private Sub miadata_GotFocus()
If Me.miadata <= Date Then
Me.strTESTO = "Scaduto "
Else
'se Data di Scadenza=> di Date allora srivi Valido sempre nella stessa
'casella di testo)
Me.strTESTO = "Valido "
End If
End Sub
come posso fare per aggiornare il campo strTESTO automaticamente
all'apertura del db.... invece di usare il _GotFocus ?
 
Grazie

 ha scritto nel messaggio
news:be9099db.03081...@posting.google.com...

Sull'evento Load della maschera scrivi una cosa del genere.
In pratica la maniera di aggirare il vizio di Access di volere il SetFocus
nelle textbox in cui andare a leggere i valori che ti interessano è quella
di usare la propietà Value.
P.S. non l'ho provato :(
SunRex
 If Me.miadata.Value <= Date Then
        Me.strTESTO.Value = "Scaduto "
Else
        Me.strTESTO.Value = "Valido "
End If

 ha scritto nel messaggio
news:be9099db.03081...@posting.google.com...

Se il controllo strTESTO non è associato, nella sua origine dati scrivi
=iif(miadata<=date;"Scaduto";"Valido")
Antonio

...

l'evento funge all'apertura del form..... ma aggiorna solo il primo
record del campo a cui è associato! io avrei bisogno che all'apertura
della maschera si possano verificare le eventuali date valide o
scadute per tutti i record del campo miadata e riscriverle aggiornate
nel campo strTESTO.

...

ho provato ma non funziona nel controllo strTESTO mi restituisce
#nome? e poi il controllo mi serve lasciarlo associato per poter avere
i dati aggiornati consultando la tabella


Allora è sbagliato l'approccio.Presuppongo che la frm sia settata a maschere
continue.
Cmq anche non lo fosse a te interessa scorrere tutto il recorset per
individuare il campo
che chiamerò CampoData e confrontarlo con la data del PC quindi sul campo
che chiamerò Testo
scrivere a seconda del confronto delle date "Scaduto" o "Valido"
Devi lavorare dietro le quinte con il recordset e VBA con una cosa dl
genere.
SunRex ;)
Sull'apertura del frm
Dim db as Dao.Database
Dim rs as Dao.Recordset
Set db=CurrentDb
Set rs = db.OpenRecordset(TuaTabella)
'Si posiziona sul primo record
rs.MoveFirst
'Scorre il recordset fino alla fine (EndOfFile)
  Do Until rs.EOF
'Apre il record per le eventuali modifiche
     rs.Edit
'Confronta il valore del CampoData con la data del PC
        If rs.Fields("CampoData")<= Date Then
               rs.Filds("Testo")="Scaduto"
         Else
                rs.Filds("Testo")="Valido"
         End If
'Salva le eventuali modifiche
     rs.Update
'Si posiziona sul prossimo record
rs.MoveNext
 Loop


A parte che essendo un valore ricalcolabile sempre non ti serve associarlo e
quindi salvarlo in tabella, primo!
E poi mia data deve essere il nome del campo associato non quello del
controllo
Antonio

...

come avrai capito io di access sono sottozero......
ma anche se giustamente come mi hai indicato che essendo un valore
ricalcolabile sempre non serve associarlo e quindi salvarlo in tabella
rimane che io ho 2 caselle di testo in una maschera la prima "miadata"
associata ad un campo di una tabella dove si trovano le varie date....
la seconda "strTESTO" la quale non associata mi dovrebbe restituire ad
ogni
apertura del db ll valore valido o scaduto
purtroppo non essendo pratico ho seguito le tue indicazioni mettendo
il codice
in proprieta>origine controllo ma nella casella testo mi restituisce
#nome?  e non riesco a venirne fuori :-(
Alex

 #nome?  e non riesco a venirne fuori :-(
Ripetiamo.
Io avevo detto
=iif([miadata]<=date;"Scaduto";"Valido")
come origine dati del controllo non associato.
miadata può essere o il nome del campo associato o il nome del controllo (è
indifferente, e non come dicevo prima).
L'errore è che date deve avere () altrimenti non capisce che è una chiamata
di funzione.
Pertanto
=iif(miadata<=date();"Scaduto";"Valido")
Antonio

 Antonio
ora funziona e per questo ringrazio..... ma dato che sono in ballo
chiedo?
č possibile salvare o associare il valore del campo strTESTO lasciando
valida questa funzione.
mi spiego in questo modo ho ben visibile se le "miadata" di ogni
record sono valide o scadute nella maschera ma non ho piů i dati nella
tabella>strTESTO
i quali mi permettevano di avere un resoconto della situazione.
Alex

 i quali mi permettevano di avere un resoconto della situazione.
Non sono comunque d'accordo con questa strategia.
Quando i dati sono ricalcolabili in ogni momento con lo stesso risultato
usando altri dati già salvati, essi NON vanno salvati in tabella.
Nel tuo caso c'è una variabile che è la data corrente.
Allora, se tu volessi tenere traccia dell'ultimo controllo effettuato, cioè
se ad una certa data il record era scaduto o meno, allora potresti salvare
l'informazione, ma dovresti anche salvare la data del controllo, cioè
date(), in un ulteriore campo in tabella.
Ma ripeto, non è secondo me la strada corretta!!!
Antonio