Condividi tramite

Problemi con casella di controllo.

Anonimo
2020-01-04T23:00:31+00:00

Buon sera 

Mi chiamo Alfredo, confido nel vostro aiuto per trovare soluzione ad un problema che se pur semplice non sono riuscito a trovare una soluzione.  Ho una maschera immissione dati basata su una Query formata da due tabelle. Nella Query (di cui dopo posto il cod) ho creato un campo che ho chiamato messaggi che in funzione delle data contenute in un altra casella ("scadenza_passi") mi restituisce come risultato se è valido o scaduto. Tutto funziona, perché se nella casella "scadenza_passi" è contenuta un data inferiore alla data odierna mi restituisce "passi scaduto", viceversa se nella casella è contenuto un valore superiore alla data odierna mi restituisce "passi attivo". Come dicevo fin qui tutto ok. Il problema si pone che se nella casella "scadenza_passi " non è valorizzata cioè non contiene nessuna data mi restituisce sempre "passi attivo e io verrei che io invece non restituisse nulla, anzi che la casella "messaggi" non fosse visibile. Nella speranza di essere stato chiaro ad esporre il problema e confidando nel vostro aiuto spero di risolvere questo problema. Di seguito il codice della Query che utilizzo per questo.

"SELECT Anagrafica.idanagrafica, Anagrafica.foto, Anagrafica.codice, Anagrafica.grado, Anagrafica.cognome, Anagrafica.scadenza_passi, Anagrafica.data_emissione, Anagrafica.Avvisi, Anagrafica.civile, Anagrafica.incaserma, IIf([scadenza_passi]<Now(),"ATTENZIONE PASSI SCADUTO - PROCEDERE AL RINNOVO","PASSI VALIDO ") AS messaggio

FROM Anagrafica;"

Se nell'esporre il problema non sono stato chiaro non esitate a chiedere chiarimenti. Grazie di nuovo

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2020-01-05T09:08:38+00:00

ciao Alfredo,

[…]

Scusami Sandro ho ricontrollato, la modifica da te proposta funziona perfettamente errore mio che preso dalla foga non ho salvato prima di provare. Scusa di nuovo e grazie.

[…]

vai sciolto non ti preoccupare.

[…]

 Solo una cosa se vorrei nascondere il campo messaggio se non valorizzato come posso procedere?

[...]

se ti trovi una maschera singola del tipo :

allora su corrente della stessa invoca :

Option Compare Database

Option Explicit

Private Sub Form_Current()

With Me

    .messaggio.Visible = Len(.messaggio & vbNullString) > 0

End With

End Sub

nel momento in cui, scorrendo i vari records, ne troverai uno in cui la data soddisfa la condizione sopra esposta, il controllo non sarà più visibile.

Se ti trovi invece in una form a maschere continue la cosa invece non è applicabile, pensa magari a rendere maggiormente visibile la non compilazione con una formattazione condizionale ( onestamente, applicherei il medesimo concettto anche alla form a visualizzazione maschere singole).

Ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2020-01-05T08:54:35+00:00

    Scusami Sandro ho ricontrollato, la modifica da te proposta funziona perfettamente errore mio che preso dalla foga non ho salvato prima di provare. Scusa di nuovo e grazie. Solo una cosa se vorrei nascondere il campo messaggio se non valorizzato come posso procedere?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-01-05T08:25:53+00:00

    ciao Alfredo,

    dai miei test ottengo quanto segue :

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-01-05T07:59:41+00:00

    Ciao Sandro Buongiorno, grazie per la dritta ma non funziona in questo caso mi restituisce sempre "valido", e non risolvo il problema iniziale. Però se metto due condizioni "IIF" che comunque ha bisogno di una parte vera e uno falsa protei dire nella alla prima condizione:

    1. se la data di scadenza "<Now" mi restituisce "Passi scaduto",  altrimenti niente (casella vuota e magari non visibile);

    Nella seconda condizione 

    1. se la data di scadenza ">Now" mi restituisce "Passi valido ", altrimenti niente (casella vuota e magari non visibile). 

    Penso che la soluzione potrebbe essere questa, ma da solo non riesco a scriverla.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-01-04T23:37:50+00:00

    ciao Alfredo,

    prova a modicare come segue la iif :

    IIf([scadenza_passi]<Date(),"ATTENZIONE PASSI SCADUTO - PROCEDERE AL RINNOVO",IIf([scadenza_passi]>Date(),"Passi valido","")) AS messaggio

    se devi confrontare solamente la data e non ti interssa anche l'ora puoi optare per date() al posto di Now().

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento