Inserire le presenze in un database.

di il
14 risposte

Inserire le presenze in un database.

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

  • Re: Inserire le presenze in un database.

    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.
  • Re: Inserire le presenze in un database.

    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.
  • Re: Inserire le presenze in un database.

    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").
  • Re: Inserire le presenze in un database.

    Provo e ti faccio sapere. Ciao.
  • Re: Inserire le presenze in un database.

    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.
  • Re: Inserire le presenze in un database.

    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?
  • Re: Inserire le presenze in un database.

    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().
  • Re: Inserire le presenze in un database.

    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?
  • Re: Inserire le presenze in un database.

    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?
  • Re: Inserire le presenze in un database.

    Puoi impiegare la proprietà DefaultValue impostando la data dell'ultimo valore (della presenza) inserito in modo che sia fornito automaticamente per ogni record aggiunto:

    https://www.iprogrammatori.it/forum-programmazione/access/valore-default-campo-t14518.html
    http://forum.ialweb.it/forum_posts.asp?TID=15198447&PN=3&title=impostare-come-valore-predefinito-quello-precedente
  • Re: Inserire le presenze in un database.

    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.
  • Re: Inserire le presenze in un database.

    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.
  • Re: Inserire le presenze in un database.

    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.
  • Re: Inserire le presenze in un database.

    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