Presenze mensili

di il
36 risposte

36 Risposte - Pagina 2

  • Re: Presenze mensili

    Quindi ricapitolando mi dici che non mi servirebbe una nuova tabella presenze bensì va già bene come strutturato ora e il nuovo giorno da inserire lo gestisco con query di accodamento?

    OsvaldoLaviosa ha scritto:


    radeon79 ha scritto:


    Esatto è esattamente questo che vorrei ottenere!!
    Troppo complesso da realizzare o impossibile?

    OsvaldoLaviosa ha scritto:


    Vorrei un chiarimento.
    Tu vorresti che accada che il giorno 10/1/2019 i seguenti Dipendenti
    Francesco v
    Pippo v
    Leo
    Antonio v
    Giuseppe v
    Quelli con v sono presenti.

    Il giorno 14/1/2019 vuoi vedere in tabella Rapporti calare comunque 5 record riferiti agli stessi Dipendenti e spuntare la Presenza.
    È questo che vuoi?
    Prevedi un campo di spunta (Sì/No) aggiunto alla tabella Rapporti. Poi ti basta una "query di accodamento" che prenda in considerazione tutti i Dipendenti.IDDipendente e li vada ad accodare in Rapporti.IDDipendente. Questa query di accodamento la devi eseguire ogni giorno lavorativo, ma una volta sola al giorno.
  • Re: Presenze mensili

    radeon79 ha scritto:


    La data assunzione sta nei rapporti
    Non c'entra nulla con le presenze.

    radeon79 ha scritto:


    vorrei evitare di imputare una presenza ad un licenziato o ad un assunto.
    Per questo devi applicare un filtro per gestire solo i non licenziati.

    radeon79 ha scritto:


    Dovrei collegare anche la tabella presenze alla tabella rapporti?
    Ma cosa c'entra con le Presenze? Nulla.

    Segui la struttura che ti ha suggerito Willy!!!

    @Osvaldo: per cortesia, se non sei ferrato nella materia, evita di intervenire.
    Stai solo generando confusione a readeon.
    Lascia che se la sbrighi Willy, che sta dando i suggerimenti corretti.

    @Radeon:
    per cortesia EVITA l'overquoting!!! Grazie.
  • Re: Presenze mensili

    radeon79 ha scritto:


    Quindi ricapitolando mi dici che non mi servirebbe una nuova tabella presenze bensì va già bene come strutturato ora e il nuovo giorno da inserire lo gestisco con query di accodamento?
    Nella query di accodamento ci metti anche il campo DataPresenza (o DataRapporto...non si capisce più niente...c'è molta confusione) e dici alla query che deve accodare Date() (cioè la data odierna) in corrispondenza del campo Data.

    Io ti sto rispondendo limitatamente alla focalizzazione di idee solo su Presenze per ora.

    Willy ha proposto lo spezzettamento di "competenze tabelle" su più tabelle. È un'idea che ci può stare.
    Il fatto (da parte mia) è che non è mai stato chiaro da parte tua (radeon79) che cosa vuoi tracciare veramente.

    Rilevo un minestrone di problemi accavallati, almeno 2-3:
    1. La struttura tabelle: mai stata chiara da parte di radeon79
    2. Come implementare un discorso di Presenze sfruttando la spunta su un campo di tipo Sì/No
    3. Come implementare il punto 2. su quale tabella
  • Re: Presenze mensili

    Chiedo scusa a tutti se ho portato confusione.
    Allo stato attuale grazie ai vs suggerimenti ho questa situazione:
    Tabella Dipendenti
    Ho aggiunto il campo:
    IdDipendente (PK)
    Cognome (Testo)
    Nome (Testo)
    ChekPresenza (Si/No)
    e molti altri campi di anagrafica che non mi servono per le presenze
    Ho creato una nuova tabella presenze con i seguenti campi:
    IdPresenza (PK)
    IdDipendente (FK)
    DataPresenza (Data/Ora)
    CheckPresenza (Si/No)
    Ho creato una form chiamata InserimentoPresenze ed ho creato una query di accodamento campi chiamata inserisci_presenze che mi riporti in tabella Presenze i valori che inserisco nella form. Il valore della data di presenza lo faccio passare alla query di accodamento con la sintassi TodaysDate: [Forms]![InserimentoPresenze]![DataPresenza] in questo caso non ho bisogno di mettere la data a tutti i presenti ma mi basta inserirla nella texbox DataPresenza della form.
    Infine ho creato un bottone nella form con la seguente sintassi all'evento click.

    Dim nomequery As String
    Me.Refresh
    nomequery = "inserisci_presenze"
    DoCmd.OpenQuery nomequery, acNormal, acEdit
    MsgBox "Presenze inserite con successo!"
    End Sub

    Risultato funziona senza problemi l'inserimento nella tabella presenze.
    Ora Ho due problemi che mi restano.
    Se clicco due volte sul bottone che mi richiama la query di accodamento mi ritrovo duplicati nella tabella delle presenze come posso evitarlo??
    Infine nella maschera di anagrafica di ogni dipendente dovrei riportare il numero totale di presenze svolte nel mese avete idee in merito?? Ho già un campo in tabella chiamato TTGGGennaio come potrei farlo popolare?
    Grazie a tutti. Felice settimana.
  • Re: Presenze mensili

    radeon79 ha scritto:


    Ho aggiunto il campo:
    IdDipendente (PK)
    Cognome (Testo)
    Nome (Testo)
    ChekPresenza (Si/No)
    e molti altri campi di anagrafica che non mi servono per le presenze
    Nella tabella Dipendenti direi che non serve il campo ChekPresenza. Primo perché non è omogeneo alla tabella Dipendenti. Secono, quando fai l'accodamento, il campo Presenze.CheckPresenza resterà comunque.

    radeon79 ha scritto:


    Se clicco due volte sul bottone che mi richiama la query di accodamento mi ritrovo duplicati nella tabella delle presenze come posso evitarlo??
    Ci sarebbero varie soluzioni:
    A) (più ortodosso) Potresti controllare il DCount del recordset di Presenze. Se esso è 0 rendi il pulsante Visibile, altrimenti no. Potresti sfruttare l'evento "Su corrente".
    B) (più volgare...ma non so se può funzionare) Alla fine dell'esecuzione accodamento query, rendi Invisibile il pulsante.
  • Re: Presenze mensili

    Per la soluzione da te proposta ossia nascondere il pulsante ho questo dubbio ossia se si riapre la form nel corso della giornata sono punto e a capo nel senso che ho di nuovo la possibilità di rifare la query di accodamento e ritrovarmi così i duplicati.
    Non posso far controllare alla query di accodamento i campi id dipendente e data per evitare duplicati? se si come?
  • Re: Presenze mensili

    Io ho perso il filo del discorso. Non so più se stai lavorando con maschera/sottomaschera Dipendenti/Presenze. Solo maschera Presenze...altro!!!???
  • Re: Presenze mensili

    Maschera/sottomaschera Dipendenti/Presenze
  • Re: Presenze mensili

    Ma il discorso che ho implementato io non centra con questa struttura maschere.
    Il campo DataPresenza mo dove sta? In una tabella superiore a Presenze? Ce l'hai in Presenze? Scusa ma sto perdendo il bandolo della matassa. Se puoi riepiloga tabelle e campi (si sono dette tante di quelle cose…).
  • Re: Presenze mensili

    Hai ragione spero finalmente di fare chiarezza:
    Riepilogo:

    Tabella Dipendenti
    IdDipendente (PK)
    Cognome (Testo)
    Nome (Testo)
    Ho eliminato CheckData dietro tuo suggerimento.

    Tabella presenze
    IdPresenza (PK)
    IdDipendente (FK)
    DataPresenza (Data/Ora)
    CheckPresenza (Si/No)

    La form di inserimento è basata su Dipendenti (scusami per aver detto diversamente) da cui prendo Nome, Cognome e Id.
    I campi DataPresenza e CheckPresenza sono campi non associati che richiamo dalla query di accodamento per farli inserire nella Tabella Presenze.
  • Re: Presenze mensili

    Ma a che ti serve maschera/sottomaschera Dipendenti/Presenze se tu vuoi vedere l'accodamento su Presenze con TUTTI i Dipendenti in verticale e non uno per uno a causa della maschera principale?
  • Re: Presenze mensili

    Mi occorre per inserire TUTTE le presenze del giorno in unico inserimento senza appunto andare nella maschera principale di ognuno di loro ed inserire la presenza. Questione di praticità.
  • Re: Presenze mensili

    1. Per la query di accodamento la maschera/sottomaschera Dipendenti/Presenze non ti serve più.
    2. Ragioniamo per piccoli passi.
    3. Crea una query con i campi di Presenze: ti bastano i campi IDPresenza e DataPresenza
    4. In corrispondenza di DataPresenza metti il Criterio
    Date()
    o
    =Date()
    5. Salva la query con nome Query1
    6. Controllando il DCount di Query1 tu sei in grado di sapere (con un piccolo codice VBA) se eseguire o non eseguire la query di accodamento. Ossia Se DCount("*", "Query1") = 0 esegui la query di accodamento. Altrimenti no.
  • Re: Presenze mensili

    Ok Osvaldo, fatto funziona tutto. Mi resta l'ultimo grande dilemma ossia popolare i campi del totale delle giornate lavorate in un mese
    TTGGGennaio, febbraio,marzo etc dinamicamente direttamente nella maschera del dipendente a seconda del numero di giorni lavorati in un mese.
    Come ottenere ciò?
  • Re: Presenze mensili

    Fino abbiamo parlato di tutt'altro rispetto al titolo principale del thread. Effettivamente ora è arrivata la vera domanda. Solo che trovo "fuori luogo" mettere quello che hai chiesto (più suddivisioni mensili) in una maschera che si chiama Dipendenti.

    radeon79 ha scritto:


    Come ottenere ciò?
    Vuoi un pulsante che apre un'altra maschera che mostra/gestisce sta cosa?
    Innanzitutto occorrerà almeno una query con raggruppamenti per mese. Fai una ricerca con parole chiave "query di raggruppamento".
Devi accedere o registrarti per scrivere nel forum
36 risposte