Inserire le presenze in un database.

di Ciccio_54 il
14 risposte
Ciao a tutti e ben ritrovati. Questa volta il problema mi sembra semplice ma non riesco a venirne a capo:
Sto usando un mio database molto elementare che ho creato tempo fa per il nostro circolo ricreativo, in cui c'è un'unica tabella: "Anagrafica", con cognome, nome, indirizzo ecc. Ora vorremmo vedere chi frequenta di più e chi di meno, per cui dovrei creare una query o meglio una maschera in cui, una volta inserita la data in alto, posso andare a scegliere i nomi dei presenti dalla tabella anagrafica e inserirli a cascata sotto la data, così se poi voglio fare una ricerca posso sapere chi era presente in quali giorni.
Ho provato a creare una maschera con una sottomaschera ricavata dalla tabella "Anagrafica", ma mi chiede la data per ogni inserimento.
Mi potete aiutare con parole semplici per favore?

14 Risposte

  • Io ci vedrei una tabella Eventi o Incontri con i seguenti campi
    IDEvento (PK)
    DataEvento
    NomeEvento

    Poi, a un Evento partecipano molte Persone. Ma una Persona può partecipare anche a molti eventi, serve una tabella
    Presenze
    IDPresenza (PK)
    IDPersona
    IDEvento

    Relazioni:
    Anagrafica.IDPersona uno-a-molti Presenze.IDPersona
    Eventi.IDEvento uno-a-molti Presenze.IDEvento

    Poi direi che potresti costruire una maschera/sottomaschera Eventi/Presenze e al campo IDPersona ci vedrei una casella combinata da cui selezionare la Persona.
  • Ciao Osvaldo. Volevo dire che non esiste una tabella "Evento" ma solo la presenza nei locali del circolo, quindi dovrei creare una tabella che alla data per esempio 15/11/2016 mi permetta di inserire 70-80 nomi di presenti presi dalla tabella "Anagrafica", casomai con una ricerca guidata, così poi posso vedere i giorni con maggiore affluenza e i soci che vengono più spesso.
  • Io l'ho chiamta Eventi...chiamala Date (però è un brutto nome che può generare ambiguità con parole riservate). Non penso tu voglia tracciare le Presenze tutti i giorni. In quest'ultimo caso, se ogni Data non costituisce UN EVENTO degno di nota, forse puoi accontentarti di sole 2 tabelle Anagrafica uno-a-molti Presenze. Nella tabella Presenze aggiungi il campo Data. Nella tabella Presenze resta sempre il campo IDPersona con casella combinata (quello che tu chiami "ricerca guidata").
  • Provo e ti faccio sapere. Ciao.
  • Siamo sempre lì: non riesco a creare una maschera che mi permetta di inserire la data una volta sola e poi andarmi a prendre le presenze (in media 70-80 al giorno) con una casella combinata: come faccio faccio mi chiede sempre la data per ognuno dei 70-80 record.
  • Mi pare di capire che tu abbia scelto la soluzione a 2 sole tabelle e con il campo Data in Presenze. Potresti impostare a Data il Valore predefinito: Date() che vuol dire "data odierna" e non devi digitarla ogni volta.
    Poi cosa intendi per presenze in media 70-80?
  • In media ci sono ogni giorno 70 - 80 iscritti presenti nelle sale, e entrando segnano che sono nel circolo, così se li cercano a telefono (i cellulari sono spenti) il portiere sa se ci sono o meno. Noi vorremmo inserire le vecchie e nuove presenze per le nostre statistiche, quindi non posso usare Now().
  • Dico a parole mie quello che ho capito.
    1. Tu sei davanti all'ingresso del club con il computer acceso e il database aperto pronto a scrivere ogni PersonaTesserata che passa. Questo tu lo fai ogni giorno.
    2. Poniamo che tu "stasera" debba fare sto lavoro. Mettendo il valore predefinito Date() o Now() non lo devi digitare. Devi solo selezionare ogni PersonaTesserata che passa.
    3. Passa Tizio e tu scrivi il primo record riferito a Tizio, passa Caio e tu scrivi il secondo record riferito a Caio, Sempronio al terzo record e così via...nel frattempo Data scriverà sempre la "data odierna"...se metti Now() ti traccerà anche l'Ora.
    4. A fine serata ti sarai accorto che avrai digitato circa 70-80 record

    Tutto questo tu lo fai ogni sera.
    Ora qual'è il problema?
  • Ti spiego meglio:
    Nell'ingresso ogni giorno c'è l'elenco dei soci con la data del giorno in corso: ogni volta che un socio entra il portiere mette una X all'entrata e quando va via mette una X all'uscita (ovviamente i fogli sono datati).
    Ora noi abbiamo un anno di questi fogli, e per un motivo che sarebbe lungo e inutile spiegare abbiamo la necessità di effettuare delle statistiche sui giorni più frequentati e i soci maggiormente frequentatori, quindi vorrei preparare una maschera in cui il portiere, nei tempi morti, si inserisce una decina di questi fogli al giorno.
    Tutti i tentativi che ho fatto finora mi portano a ottenere il risultato che il portiere, per ogni inserimento di presenza, dovrebbe mettere anche la data, e quindi credo che si rifiuterebbe o ci metterebbe una vita, per cui vorrei creare una maschera in cui lui mette la data una sola volta, e poi sceglie i 70 - 80 soci presenti quel giorno con la casella combinata.
    Ora è più chiaro?
  • Ciccio_54 ha scritto:


    Ti spiego meglio:
    Nell'ingresso ogni giorno c'è l'elenco dei soci con la data del giorno in corso: ogni volta che un socio entra il portiere mette una X all'entrata e quando va via mette una X all'uscita (ovviamente i fogli sono datati).
    Ora noi abbiamo un anno di questi fogli, e per un motivo che sarebbe lungo e inutile spiegare abbiamo la necessità di effettuare delle statistiche sui giorni più frequentati e i soci maggiormente frequentatori, quindi vorrei preparare una maschera in cui il portiere, nei tempi morti, si inserisce una decina di questi fogli al giorno.
    Tutti i tentativi che ho fatto finora mi portano a ottenere il risultato che il portiere, per ogni inserimento di presenza, dovrebbe mettere anche la data, e quindi credo che si rifiuterebbe o ci metterebbe una vita, per cui vorrei creare una maschera in cui lui mette la data una sola volta, e poi sceglie i 70 - 80 soci presenti quel giorno con la casella combinata.
    Ora è più chiaro?
    Per fare statistiche si usano le QUERY.
    Per evitare di digitare sempre la stessa data più volte, basta usare la combinazione tasti CTRL+' (apostrofo) e si inserisce automaticamente il valore del record precedente.
  • Proverò con DefaultValue o, al limite, con un po' di pazienza si inseriranno tutti con CTRL+C e CTRL+V e buona notte. Grazie a tutti e alla prossima.
    Francesco.
  • Ciccio_54 ha scritto:


    Proverò con DefaultValue o, al limite, con un po' di pazienza si inseriranno tutti con CTRL+C e CTRL+V e buona notte. Grazie a tutti e alla prossima.
    Francesco.
    La soluzione tecnica è il DefaultValue come suggerito da Willy... si tratta di ottimizzare come definirlo, se su AftferInsert o AfterUpdate... direi che è estremamente banale.
  • Ciccio_54 ha scritto:


    con un po' di pazienza si inseriranno tutti con CTRL+C e CTRL+V
    Questa è la soluzione peggiore. Scoccerebbe anche me.
Devi accedere o registrarti per scrivere nel forum
14 risposte