Newsgroup: it.comp.appl.access
Titolo: Controllo data scadenza in sottomaschera

Ho una  maschera "SITUAZIONESOCI" (origine record tabella "SOCI") che apre 
varie sottomaschere in relazione uno a molti fra le quali 
"PERMESSODISOGGIORNO" (Origine record da query su tabella 
"DATIEXTRACOMUNITARI").
Nella sottomaschera "PERMESSODISOGGIORNO" ho un campo data PSDTSCA (data di 
scadenza permesso di soggiorno) sul quale voglio
avere un messaggio nel caso tale scadenza sia inferiore alla data di 
sistema. Mi sono regolato in questo modo ma non funziona:
Private Sub PSDTSCA_AfterUpdate(0)
Dim RISPOSTA As String
Dim MIADATA As Date
    If  Me!PSDTSCA < MIA DATA Then
        RISPOSTA = MsgBox("Permesso di soggiorno scaduto!", vbCritical)
    End If
End Sub
Qualcuno mi può dire dove ho sbagliato visto che visualizzando la maschera 
"SITUAZIONESOCI" la sottomaschera "PERMESSODISOGGIORNO" non evidenzia 
nessuna segnalazione?
Grazie 

 ha scritto nel messaggio 
news:44a6630b$0$5100$4faf...@reader2.news.tin.it...

Non c'ho capito moltissimo, e non sono nemmeno esperto, ma l'evento 
AfterUpdate che cosa lo dovrebbe scatenare, cioè vuoi che il messaggio 
appaia quando cambi la data si scadenza o quando?
Ciao Valerio.

Ladrodivita ha scritto:

Non basta dichiarare la variabile MIADATA come Date per impostarla alla
data corrente. Inoltre non è necessario utilizzare tale variabile.Devi
quindi modificare la sub in questo modo:
    If Me!PSDTSCA < Date Then
        MsgBox "Permesso di soggiorno scaduto!", vbCritical
    End If
Se vuoi però impedire che si metta una data antecedente alla data
odierna dovresti mettere questo codice nell'evento BeforeUpdate ed
impostare cancel=true dopo la msgbox in questo modo:
Private Sub PSDTSCA_BeforeUpdate(Cancel As Integer)
    If Me!PSDTSCA < Date Then
        MsgBox "Permesso di soggiorno scaduto!", vbCritical
        Cancel=True
    End If
End Sub
ciao

 Grazie
Ciao Ladrodivita,
la variabile MIADATA non č valorizzata o meglio č valorizzata dalla Dim e
contiene il valore 30/12/1899 quindi la condizione non si verifica mai.
Se vuoi fare un confronto con la data di sistema č piů semplice fare cosě
----
 Private Sub PSDTSCA_AfterUpdate(0)
     If  Me!PSDTSCA < Date() Then
         MsgBox "Permesso di soggiorno scaduto!", vbCritical
     End If
 End Sub
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 ha scritto nel messaggio 
news:1151755693....@v61g2000cwv.googlegroups.com...
Ladrodivita ha scritto:





ciao
Grazie per la celere risposta! Ho provato ma scrollando la maschera 
principale, quando arrivo ad un socio che nella sottomaschera ha la 
condizione di scadenza inferiore alla data di sistema non si apre la msgbox 
di segnalazione.
Ciao, Pietro

 Date) ma quando scorro la maschera principale fino al socio che
nella sottomaschera ha la scadenza piů bassa della data di sistema non mi da 
nessuna segnalazione. Non so se č importante ma il campo PSDTSCA č 
formattato gg/mm/aaaa.
Ciao, grazie 


Posta la correttezza della correzione di wlady e giorgio, immaginavo che tu 
volessi un messaggio in un momento successivo, quindi hai diverse 
possibilità, cioè di inserire quella funzione sull'evento Open, Current o 
simili della sottomaschera, perchè se non cambi la data l'evento che hai 
usato non si attiverà mai, oppure lo inserisci, all'apertura del database, 
della maschera principale o della maschera soci scorrendo tutti i soci, o 
solo quelli extracomunitari, ma tutto si complica. Queste le indicazioni che 
ti posso dare, ora che abbiamo spiegato ciò che vuoi aspettiamo chiarimenti 
più seri di chi sopra.
Ciao Valerio.

 Ciao Valerio.
hai già fatto tutto tu :-)
direi che non c'è bisogno di ulteriori chiarimenti, se l'amico vuole il
messaggio quando scorre i records deve mettere il codice nell'evento current
della maschera.
:-)



Ciao Valerio.

L'amico ringrazia! Sia te che Giorgio: su current va tutto ok!
Grazie mille
Pietro 

Tutto ok: con currente risolto! Ciao e grazie
Pietro