Gestione campo data mm/aa

di il
4 risposte

Gestione campo data mm/aa

Nel mio db ho un importante campo data, inserito dall'operatore, dove mi interessa esclusivamente il mese e l'anno.
Questo campo mi serve, oltre che per la specifica informazione che contiene, anche per varie elaborazioni statistiche e funzioni di aggregazione e ordinamento, e mi serve come dato a schermo e sui report; è necessario che si comporti proprio come una data, solo che il giorno è e deve risultare totalmente inutile, invisibile e ininfluente.
Non avendo nessuna preparazione in merito alla gestione sistematica di una questione come questa e non essendo stato capace di trovare dello specifico materiale veramente istruttivo (almeno per me), ho proceduto un po' a tentoni con funzioni di calcolo date e imposizione formati, grazie soprattutto alle istruzioni che sono riuscito a trovare (e a capire) in rete.
Non credo proprio di essere riuscito ad impostare al meglio le proprietà del campo nella tabella e riscontro varie difficoltà nella sua gestione.
Per quanto riguarda le funzioni di calcolo e le query, sono riuscito, ovviamente tribolando, ad ottenere tutti i risultati attesi in maniera per me soddisfacente, e questo vale anche per i report. Il discorso è diverso per le procedure di inserimento e/o modifica del dato, dove purtroppo non sono per nulla soddisfato del risultato, pur avendo realizzato un sistema che dopo diversi mesi di utilizzo e qualche migliaia di imputazioni sembra dimostrare di garantire la correttezza e l'affidabilità delle procedure e dei dati.
Il sistema non riesce a essere sufficientemente comodo e lineare per chi deve imputare i dati e produce risultati a volte bizzarri. In altre parole non sono riuscito a realizzare un lineare formato di input (nelle caselle di testo dove il dato può essere inserito o nei fogli dati dove può essere modificato) dove l'operatore debba sempre e solo preoccuparsi di imputare due o quattro numeri in sequenza che verranno sempre interpretati come mm/aa.
I risultati bizzarri mi vengono fuori nell'interazione dell'input dell'operatore con il sistema di completamento automatico dell'anno di Access (io vorrei invece essere in grado di determinare semplicemente l'autocompilazione sulla base del contenuto di un'altra casella di testo) e con il modo per me, totale analfabeta in merito, misterioso che access ha di gestire il formato americano o italiano della data, magari poi qualche volta con il risultato di imputare come giorno (se uno lo va a guardare) lo stesso numero dell'anno. Invece a me piacerebbe saper imporre ad esempio 01 come giorno default, immodificabile e sempre invisibile per tutte le date di questo campo (e dei suoi derivati, comunque non modificabili).
Altra cosa fastidiossissima che non sono capace di evitare è che in caso sia necessario correggere l'autocompilazione nella casella di testo o modificare il dato già presente nei fogli dati, il formato di input ritorni sempre gg/mm/aa, se non gg/mm/aaaa.
Insomma nell'insieme una roba che non mi piace per nulla e che sento ahimè completamente fuori controllo, anche se, grazie ad un tester sveglio e attento alle autocompilazioni, alla fine pare funzionare. Se non riesco a trovare degli efficaci fix su questa impostazione (che nasce anche da un cambio in corsa, faccio prototipi), ho solo una buona strategia alternativa, ma complicata e temo un po' onerosa da implementare rispetto ad un obiettivo non solo dimostrativo di funzionalità del sistema ormai già quasi completamente raggiunto.
Ultimo (?) problema: ho in genere tribolato abbastanza a trovare il modo di mantenere il formato mm/aa nelle catene di query e a video nelle sottomaschere a foglio dati ma alla fine il problema mi è rimasto solo in una casella di riepilogo che dipende da una query d'unione dove sono ancora costretto a vedere la data in formato gg/mm/aaaa.
Se qualcuno sapesse indirizzarmi a qualche link specifico o volesse suggerire qualche vincente soluzione pret-a-porter sarei molto grato.

4 Risposte

  • Re: Gestione campo data mm/aa

    AmnesiaVivace ha scritto:


    ... un importante campo data, inserito dall'operatore, dove mi interessa esclusivamente il mese e l'anno.
    ...è necessario che si comporti proprio come una data, solo che il giorno è e deve risultare totalmente inutile, invisibile e ininfluente.
    E' chiaro quindi ed è un punto fermo che un campo data è sempre memorizzato come data e conterrà sempre l'informazione relativa al giorno (nonché l'ora, che sarà 00:00:00, ma questo non ci interessa per ora). Indipendentemente da come lo vedi, da come lo inserisci, da come lo stampi, sarà sempre una data.

    AmnesiaVivace ha scritto:


    Il sistema non riesce a essere sufficientemente comodo e lineare per chi deve imputare i dati....
    Ed è qui che entra in campo l'interfaccia utente abilmente realizzata dal programmatore (tu).
    Nota a margine: "imputare" in italiano è una parola che esiste. Quanto mi piacerebbe che non fosse l'italianizzazione di "to input". Già "killare" sembra non più arginabile.
    modificare il dato già presente nei fogli dati, il formato di input ritorni sempre gg/mm/aa, se non gg/mm/aaaa.
    Se per foglio dati intendi la maschera a visualizzazione "foglio dati", dimenticatela, è la meno adatta a quello che devi fare perché ha pochissimi eventi gestibili, come pure "l'interfaccia grafica". Vale in discorso di prima: sta a te far vedere "gg/mm/aa" anche se il dato memorizzato è una data completa.
    Devi far passare ogni forma di inserimento-variazione dati da una maschera in cui hai un versione personalizzata di quello che un tempo era il controllo calendario e che ora è appunto il "calendario" che compare automaticamente se si imposta un controllo per ospitare una data.
    Non si può non ricorrere, per l'ennesima volta, all'immenso campionario di esempi realizzati da @Alex, che non hanno nulla da invidiare a prodotti professionali in questo e che sono puro codice vba.
    Selezione Date/Periodo
    Poi altri link che possono venir buoni
    Raccolta Funzioni di Manipolazione Date
    (basta togliere quella relativa al giorno e il gioco è fatto)

    Quindi niente maschere di input o automatismi vari, sempre e solo inserimento/modifica "forzata" tramite caselle di testo e maschere apposite. Forzata nel senso che devi fare in modo che l'utente non possa fare altro che usare il sistema che tu hai predisposto.
  • Re: Gestione campo data mm/aa

    Appunto, non sono un programmatore. Ma studio... Grazie mille dei ragionamenti e dei link.
  • Re: Gestione campo data mm/aa

    Philcattivocarattere ha scritto:


    Se per foglio dati intendi la maschera a visualizzazione "foglio dati", dimenticatela, è la meno adatta a quello che devi fare perché ha pochissimi eventi gestibili
    Per le mie particolari ma non complicatissime esigenze (di lavoro di controllo, correzione e definizione dei dati da parte dell'operatore) le sottomaschere a foglio dati rispondono molto efficacemente e, nonostante gli evidenti limiti rispetto alle caselle di testo, riesco a gestire tutti gli eventi che mi interessano in questi casi e anche un po' di grafica. Il primo reale problema l'ho avuto con la gestione di questo campo. In generale non amo le date, ma è chiaro che dipende dalla mia ignoranza, almeno adesso me la cavo con i calcoli.
  • Re: Gestione campo data mm/aa

    AmnesiaVivace, (perdonami) hai scritto solo grandi papiri. A noi altri utenti del forum servono le seguenti informazioni:
    - nomi propri di tutte le tabelle
    - nomi propri di tutti i campi con indicazione della chiave primaria
    - le relazioni
    - rispiega tutto quello che ti serve usando i nomi propri
Devi accedere o registrarti per scrivere nel forum
4 risposte