Campo vuoto se diverso da data

di il
18 risposte

Campo vuoto se diverso da data

Salve di nuovo a tutti. Sono di nuovo alla carica per vedere di "aggiustare" il db dell'altro thread (https://www.iprogrammatori.it/forum-programmazione/access/data-scadenza-con-access-2007-t23195.html).

Allora, il problema è questo: ho dei campi (per scadenze varie) impostati con formato data/ora ma vorrei che quando sono vuoti, ovvero senza nessuna data indicata, restituisero "-".

Mi sembra di aver capito che la funzione che devo usare sia "is null" ma non ho capito come impostarla e dove....

Grazie per il vostro aiuto.

Ciao.

Marco

18 Risposte

  • Re: Campo vuoto se diverso da data

    Penso che nativamente nella tabella non puoi farlo. Magari in una query crei una espressione apposita (IIf dovrebbe funzionare).
    Se il tuo problema consiste nel non voler vedere il campo vuoto...io talvolta lo riempio con una data "palesemente fittizia" ad es. 1/1/1000 o 1/1/100...che non puoi fare a meno di notarla.
  • Re: Campo vuoto se diverso da data

    Ciao Osvaldo, mi sono spiegato male, io vorrei vedere nel campo che non contiene data perchè non necessaria, un simbolo tipo "-" o "/"...

    Grazie, ciao.

    Marco
  • Re: Campo vuoto se diverso da data

    Per quello che ne so io, dovresti comprendere bene che quello che hai chiesto è un TESTO, ma quel campo è di tipo DATA e accetta solo valori digitati in una certa maniera/formato.
    Al limite mi giocherei la proprietà "Maschera di input" che mostra automaticamente 2 slash e i campi dedicati gg/mmm/aaaa sottolineati anche in caso di Null.......mmmhhhh ho fatto una prova, ma l'effetto che avevo previsto lo fa soltanto quando clicchi dentro il campo Data, ma non lo vedi se il campo non è selezionato, nemmeno se ci vai dentro con il TAB...
    ...non saprei...
  • Re: Campo vuoto se diverso da data

    Osvaldo credo di aver capito quello che dici. Abbi pazienza ma impegni familiari mi impongono di "staccare" per stasera. Riprendiamo domani con più calma.

    Grazie ancora! Ciao.

    Marco
  • Re: Campo vuoto se diverso da data

    Devi distinguere l'aspetto di VISUALIZZAZIONE dall'aspetto funzionale.
    A livello funzionale un campo Data ha una formattazione predefinita e non è quella che chiedi ora tu, pertanto il sistema, se cerchi di inseriere un valore non ammissibile dal TIPO di DATO genera errore.

    Possiamo pertanto valutare questa richiesta non come aspetto funzionale ma come aspetto VISUALIZZAZIONE... e capire se ne vale la pena...!
    Per fare quanto chiedi, a livello di visualizzazione, imponi delle restrizioni funzionali proprio per quanto esposto sopra, in sostanza non è fattibile quello che chiedi sul Controllo associato al campo Data, servirà pertanto generare un campo Calcolato in una Query che popolerà un controllo READONLY di sola visualizzazione, ovvio che non lo puoi EDITARE direttamente e dovrai prevedere una maschera Popup ecc...

    Valuta tu se ne hai le capacità realizzative e se ne vale la pena.
  • Re: Campo vuoto se diverso da data

    Ciao Alex, grazie per la risposta, ho capito il concetto. La maschera "controllo stato soci" è in definitiva di sola lettura perchè l'inserimento dei dati soci viene fatto in un'altra maschera associata ad un'altra tabella.

    La maschera "controllo stato soci" fa riferimento ad una query dove sono riportati i campi che mi interessa visualizzare nella maschera di cui sopra e che mi riportano il dato in base a delle formule che ho cercato in internet e che ho cercato di applicare al mio caso.
    Però in caso di campo vuoto non so che pesci pigliare...come del resto in generale con access, essendo la prima volta che provo a fare una cosa del genere.

    Se ne vale la pena? Assolutamente si! Come in tutti quei casi in cui si può imparare qualcosa di nuovo. Ovvio che ci vorrà qualcuno che abbia la necessaria pazienza per insegnarmi qualcosa...
    Le capacità realizzative non sono ingrado di stabilire se le ho, ma direi di no, visti i risultati.. . Devo provare.

    Quindi se ho ben capito devo creare un'altra query. Come deve essere questa query e cosa deve contenere?

    Grazie per il vostro aiuto.

    Marco
  • Re: Campo vuoto se diverso da data

    Io dico che non ne vale la pena. Il campo Data è e deve rimanere un campo Data con tutte le sue caratteristiche, proprietà, formato ecc... Tentare di fare quello che hai chiesto, significa, al solo scopo di una visualizzazione da te inventata (forse sarebbe meglio dire "personalizzata"), di costruire una non semplicissima espressione (secondo me), per renderlo Testo, con il rischio di una indicizzazione errata poi. Se ad esempio vorrai elencare in ordine cronologico quel campo che lo hai snaturato, rendendolo Testo, non avrai più una elencazione coerente al senso del campo di tipo Data, almeno che tu non scelga il formato aaaa/mm/gg.

    @Alex ha scritto:


    Valuta tu se ne hai le capacità realizzative e se ne vale la pena.
    Se @Alex ti risponde così (interpreto), vuole anche dirti che, nello spirito del forum, devi arrivarci con le tue gambe.
    Il forum non deve fornire la cosiddetta "pappa pronta" (leggi bene il regolamento).
    Io non farei mai quello che hai chiesto, sia perchè ha pochissimo senso, sia perchè l'idea di inventarmi una espressione che rischierei io stesso di non capire, mi mette nella condizione di lasciare perdere: ecco il significato del "non valerne la pena".
  • Re: Campo vuoto se diverso da data

    Se la maschera è come dici readonly allora nella query ti basta creare un campo calcolato e visualizzare lui al posto del campo data...
    NuovaData:iif (Len (cstr(CampoData))> 0; Campodata;"-")

    Saluti
  • Re: Campo vuoto se diverso da data

    @Alex ha dato il suo solito colpo di bacchetta magica.
    Io non vorrei andare fuori tema, ma penso che, se l'obiettivo sarebbe di filtrare i campi vuoti o i campi non vuoti, basta scrivere in un "filtro in base a maschera" o query (senza virgolette)
    Is Null
    se vuoi filtrare i campi vuoti
    Not Is Null
    se vuoi filtrare i campi non vuoti.
  • Re: Campo vuoto se diverso da data

    Uhmmm..mi sembra di aver scatenato un pò di casino con le mie richieste e di questo mi scuso.
    Non è mia intenzione di pretendere le cose già scodellate. Vorrei però capire se per queste richieste, o per poterle applicare, sono necessarie delle robuste basi di programmazione in access oppure ci si può arrivare passo passo, considerando il mio livello zero in queste cose.

    Ringrazio entrambi per i suggerimenti che ho provato ad utilizzare e che non sono riuscito a far funzionare....

    Forse riesco meglio con un esempio pratico: prendo in considerazione il dato "scadenza ab istruttore" (per gli altri campi il concetto è uguale, cambia solo la destinazione d'uso ma sempre in formato data/ora rimangono):
    - questo è un campo in formato data/ora che è nella tabella "anagrafica". Si riferisce alla data di scadenza dell'abilitazione a istruttore ma se il socio non ce l'ha il campo rimane vuoto.

    - nella query scadenze ci sono i seguenti campi:
    - Scadenza ab Istruttore (tabella:Anagrafica)
    -data: Date()
    -ConfrontoScadenzaIstruttore: [data]-[Scadenza ab Istruttore]
    -ControlloScadenzaIstruttore: IIf([ConfrontoScadenzaIstruttore]>365;"Scaduto";"OK")
    -ControlloScadenzaIstruttoreCampoVuoto: IIf(Len(CStr([Scadenza ab Istruttore]))>0;([ControlloScadenzaIstruttore]);"-")

    Fino a "scaduto" e "ok" funziona, ma in caso di campo vuoto (prima del suggerimento di @Alex) il campo era sempre OK; dopo mi da "#errore" se il campo è vuoto.

    Questo è quanto... Vi ringrazio fin d'ora e vi rinnovo l'invito a dirmi senza mezzi termini se è il caso di andare avanti oppure no.

    Ciao

    Marco
  • Re: Campo vuoto se diverso da data

    Marvel01 ha scritto:


    Forse riesco meglio con un esempio pratico: prendo in considerazione il dato "scadenza ab istruttore" (per gli altri campi il concetto è uguale, cambia solo la destinazione d'uso ma sempre in formato data/ora rimangono):
    - questo è un campo in formato data/ora che è nella tabella "anagrafica". Si riferisce alla data di scadenza dell'abilitazione a istruttore ma se il socio non ce l'ha il campo rimane vuoto.
    Finora hai parlato di una sola tabella Anagrafica con i tipici campi anagrafici. Fin qui relativamente OK. Il campo ScadenzaIscrizione lo abbiamo abbuonato perchè tu preferisci modificare quel dato e non curarti di avere uno storico: anche qui un relativo OK.
    Ma un campo che si chiama "data scadenza abilitazione a istruttore" per me non ha nulla di omogeneo con una tabella Anagrafica.
    Occorre descrivere dettagliatamente:
    - tutti i nomi propri delle tabelle
    - di ogni tabella, tutti i nomi campo e indicare la chiave primaria
    - le relazioni
    - spiegare cosa vuoi fare.
  • Re: Campo vuoto se diverso da data

    Ciao Osvaldo, cerco di darti le risposte a quello che mi chiedi. Uso delle immagini catturate dal desktop, così evito di dire cose inesatte (le ho ridimensionate, spero si possano vedere bene):























    Cosa dovrebbe fare questo db: tenere in ordine i dati dai soci. Se ci sono delle scadenze visualizzarle sia che siano ok che se siano scadute; se un campo è vuoto perchè non ci sono dati inseriti, visualizzarlo con "-" o semplicemente vuoto.

    Il metodo di spiegazione tramite immgini non è molto ortodosso forse per questo settore ma penso sia più immediato.

    Ciao.

    Marco
  • Re: Campo vuoto se diverso da data

    P.s. nelle ultime schermate ci sono anche le formule che ho usato per i calcoli, inserite nei campi calcolati.

    Ciao.

    Marco
  • Re: Campo vuoto se diverso da data

    Le immagini sono illeggibili. Se vuoi allegare una immagine, mi basta la finestra Relazioni (leggibile possibilmente).
Devi accedere o registrarti per scrivere nel forum
18 risposte