Accodamento e contatore su testate e righe fatture

di il
14 risposte

Accodamento e contatore su testate e righe fatture

Buongiorno a tutti,
avrei questa difficolta' su un database fatturazione di un asilo

attualmente ci sono la
tabella presenza
tabella testata fattura
tabella riga fattura

al momento della fatturazione a fine mese faccio una query su tutte le tabelle presenze dei dati, cancello tutte le righe fatture gia' esistenti, cancello tutte le testate fatture gia' esistenti e ripopolo nuovamente tutte le testate e righe fatture (quelle cancellate in precedenza vengono scritte di nuovo)
poi ricalcolo il contatore solo sulle testate (da capo dalla prima riga)

fatture e righe fatture sono relazionate da id_chifattura, id_persona_fatturata, meseannodiriferimento

questo perche' ho delle difficolta' a gestire il contatore (ci sono piu' anni, piu' persone che fatturano)

ho preferito trovare una soluzione di scrivi in blocco e ricalcola il contatore da capo

lo so, e' un obrobrio

vorrei un aiuto per capire come posso scrivere da codice da una tabella

sia su una tabella testata fattura
che una tabella riga fattura

riga per riga non accodando in blocco da una select

grazie in anticipo

14 Risposte

  • Re: Accodamento e contatore su testate e righe fatture

    L'obrobrio per me parte dalla denominazione delle tabelle. Generalmente le si nomina al PLURALE.
    Io non ho capito quali sono i campi di ognuna di queste tabelle.
  • Re: Accodamento e contatore su testate e righe fatture

    Mi fermo prima dei nomi delle tabelle... la modalità che usi come approccio è tipica di chi usa un foglio di Excel... Non va bene questo metodo con Access come con qualsiasi Database relazionale.
    Excel non è un database ma un foglio dati ed il passaggio non è copia incolla.
  • Re: Accodamento e contatore su testate e righe fatture

    Osvaldo e Alex grazie per le risposte,
    premetto che il nome delle tabelle e' al plurale, ma in velocita' avevo scritto il tutto al singolare,
    mi spiego meglio, partendo da una situazione pulita:
    ho una tabella presenze dove ci sono i campi
    id_bambino
    giorno
    tipo_presenza
    id_fatturante

    dove giornalmente scrivo le presenze cioe'
    il bambino PIPPO il giorno 03/12/2018 e' presente FULL TIME e fattura GIUSEPPINA
    il bambino PLUTO il giorno 03/12/2018 e' presente FULL TIME e fattura PALMIRA
    il bambino PIPPO il giorno 04/12/2018 e' presente PART TIME e fattura GIUSEPPINA

    chiaramente il tutto collegato alle varie tabelle anagrafiche_bimbi e anagrafiche_fatturante e tipo_presenze

    da questa tabella compilata delle presenze vorrei generare le testate_fatture e righe_fatture

    dove i campi di testate_fatture sono
    id_fatturante
    contatore
    anno
    data_fattura

    che vorrei compilato con
    GIUSEPPINA 1 2018 31/12/2018
    PALMIRA 2 2018 31/12/2018


    dove i campi di righe_fatture sono
    id_fatturante
    contatore
    anno
    contatore_riga
    id_bambino
    tipo_presenza

    che vorrei compilato con
    GIUSEPPINA 1 2018 1 PIPPO FULL TIME
    GIUSEPPINA 1 2018 2 PIPPO PART TIME
    PALMIRA 1 2018 1 PLUTO PART TIME

    vorrei quindi partire da un registro presenze e generare testate e righe fatture, un po' come se partissi dalle righe dei ddt da fatturare e generassi nuove testate e righe fatture

    con il problema in piu' che in questo asilo ci sono due persone che fatturano con partita iva diversa e dovrei gestire quindi che
    il 03/12/2018 PIPPO e' presente e fattura GIUSEPPINA
    il 05/12/2018 PIPPO e' presente e fattura PALMIRA

    grazie ancora a chi vorra' darmi una mano
  • Re: Accodamento e contatore su testate e righe fatture

    Ciao,
    il problema del contatore e' stato risolto con un po' di codice apro un recordset di una query e scrivo con do until EOF le tabelle fatture e righe_fatture

    il problema è che ho una tabella presenze
    con la query vado a raggruppare tutti gli id_bambino e tipo_presenza e faccio il conteggio

    la tabella presenze riporta
    01/12/2018 PIPPO FULL_TIME
    02/12/2018 PIPPO FULL_TIME
    03/12/2018 PIPPO FULL_TIME

    il risultato della query di raggruppamento e' (che poi e' il dato che viene travasato in righe_fatture)
    PIPPO FULL_TIME 3

    vorrei aggiornare il campo fatturato si no in si dopo che e' stata scritta la riga_fattura

    ma con la query di raggruppamento chiaramente ottengo recordset non aggiornabile

    qualche idea?
  • Re: Accodamento e contatore su testate e righe fatture

    Ci credi che trovo la descrizione ancora non chiara (non voglio dire sbagliata)?
    La tabella testate_fatture si potrebbe chiamare più semplicemente Fatture?
    Che cosa rappresenta righe_fatture?
    Sembra che una Presenza = una Fattura...deve essere per forza così?

    Riepilogo le tabelle di mia comprensione:
    Bambini
    Fatturanti
    Presenze
    Fatture (ex testate_fatture)

    Relazioni finora da me comprese:
    Bambini uno-a-molti Presenze
    Fatturanti uno-a-molti Presenze

    ...poi non ho capito più niente...
  • Re: Accodamento e contatore su testate e righe fatture

    Bambini
    Fatturanti
    Presenze
    Fatture (ex testate_fatture)

    Relazioni finora da me comprese:
    Bambini uno-a-molti Presenze
    Fatturanti uno-a-molti Presenze

    ciao,
    Tabelle

    Bambini pk id_bambino
    Fatturanti pk id_fatturante
    Presenze pk id_bambino giorno id_retta
    Fatture pk id_fatturante contatore anno
    Fatture_righe pk id_fatturante contatore anno contatore_riga

    Relazioni
    Bambini uno-a-molti Presenze
    Fatturanti uno-a-molti Presenze
    Fatture uno-a-molti Presenze
    Fatture uno-a-molti Fatture_righe

    quando vado a fatturare copio dalla tabella presenze alla tabella fattura_righe e fatture

    non riesco a capire come posso togliere la tabella Fatture_righe e a seguire il tuo consiglio


    in presenze registro i dati giornalieri se il bimbo e' presente o meno
    solo una volta fatturati vengono compilati i campi relativi al contatore anno e id_fatturante

    come posso relazionare
    Fatture Presenze
  • Re: Accodamento e contatore su testate e righe fatture

    Aggiungo che quando vado ad inserire le presenze ho questi campi
    id_bambino giorno id_fatturante

    questo perche' devo avere la possibilita' che piu' persone possano fatturare nello stesso mese lo stesso bambino
    esempio:
    bambino PIPPO 03/12/2018 FATTURA MONIA
    bambino PIPPO 04/12/2018 FATTURA VINCENZA

    inserendo gia' il dato dell'id_fatturante nella tabella Presenze non mi permette di gestire correttamente l'integrita' referenziale
    perche' appunto ho gia' inserito l'id_fatturante nelle Presenze che dovrebbe essere chiave esterna in Fatture
  • Re: Accodamento e contatore su testate e righe fatture

    ocrot ha scritto:


    Tabelle
    Bambini pk id_bambino
    Fatturanti pk id_fatturante
    Presenze pk id_bambino giorno id_retta
    Fatture pk id_fatturante contatore anno
    Fatture_righe pk id_fatturante contatore anno contatore_riga

    Relazioni
    Bambini uno-a-molti Presenze
    Fatturanti uno-a-molti Presenze
    Fatture uno-a-molti Presenze
    Fatture uno-a-molti Fatture_righe
    Per come conosco io Access:
    Presenze deve avere una PK=IDPresenza, Fatture PK=IDFattura, se Fatture_righe è/sarà una tabella PK=IDFattura_riga.

    ocrot ha scritto:


    quando vado a fatturare copio dalla tabella presenze alla tabella fattura_righe e fatture
    Qua non ti seguo.
    Perché Fatture e Presenze non possono essere la stessa tabella?
    Cosa ci vai a scrivere dentro Fatture_righe?
  • Re: Accodamento e contatore su testate e righe fatture

    Grazie Osvaldo,
    sto lavorando al database ed ho seguito il tuo consiglio ed ho eliminato la tabella Fatture_righe
    avevo il problema del recordset non aggiornabile (quando fatturo vorrei mettere un flag su fatturato) ed ho risolto con un dlookup in query
    anziche' con una relazione con un'altra tabella

    non posso pero' unificare Fatture e Presenze perche' e' un
    1 a molti
    1 fatture per n presenze

    e comunque ci sono campi come il contatore della fattura, i totali fattura e l'importo del bollo oltre alle informazioni sullo stato del pagamento che riguardano la testata della fattura

    lo so quello che pensate: ma i totali non si salvano, si ricavano,
    ci penso su, ma anche se non corretto mi piace di piu'




    per quanto riguarda il consiglio sulle chiavi univoche ID di Presenze e Fatture
    accolgo il consiglio, anche se posso (potrei) avere dei duplicati non voluti che dovrei gestire

    ciao e grazie ancora
  • Re: Accodamento e contatore su testate e righe fatture

    ocrot ha scritto:


    non posso pero' unificare Fatture e Presenze perche' e' un
    1 a molti
    1 fatture per n presenze
    Adesso ti seguo un po' meglio. Ma il Fatturante va nella tabella Fatture o Presenze?

    ocrot ha scritto:


    per quanto riguarda il consiglio sulle chiavi univoche ID di Presenze e Fatture
    accolgo il consiglio, anche se posso (potrei) avere dei duplicati non voluti che dovrei gestire
    Il fatto che ogni tabella deve avere una propria PK...per me è un punto imprescindibile...se non altro rende chiara la stesura delle tabelle.
    Sul secondo aspetto...se ne può riparlare con altri punti di vista.

    Se tu elencassi davvero TUTTI i campi di tutte le tabelle avremmo un quadro più completo e consistente del tuo database.
  • Re: Accodamento e contatore su testate e righe fatture

    Grazie per le risposte, in questi giorni vi vorrei elencare, come da consiglio tabelle campi e relazioni,

    vorrei intanto sottoporvi questo problema

    ho la tabella presenze
    id_bambino pk
    giorno pk
    id_retta pk
    contatore_fattura fk

    ho la tabella fatture
    contatore_fattura pk

    fatture e presenze sono in relazione 1 a N

    questo mi serve per fatturare le presenze, quindi una volta che le presenze sono fatturate vengono abbinate alla fattura con la chiave esterna

    il problema nasce gia' dalla partenza:
    non posso inserire dei valori in presenze perche' giustamente non c'e' il record in fatture relativo:
    mi viene richiesto di inserire il contatore_fattura

    potrei risolvere inserendo a priori un contatore 0 in fatture e quando le presenze non sono ancora fatturate si agganciano a quello, avete altre idee?
  • Re: Accodamento e contatore su testate e righe fatture

    ocrot ha scritto:


    ho la tabella presenze
    id_bambino pk
    giorno pk
    id_retta pk
    contatore_fattura fk
    Questa tabella ha 3 PK: situazione impossibile da gestire. Se si tratta di una PK "multicampo"...dovresti almeno raccontarcelo in maniera esplicita. Io non amo le PK multicampo e preferisco mettere sempre un ID PK.

    OsvaldoLaviosa ha scritto:


    Se tu elencassi davvero TUTTI i campi di tutte le tabelle avremmo un quadro più completo e consistente del tuo database.
    Ti chiedo di rispondere a questa richiesta in maniera DETTAGLIATA su tutte le tabelle. In alternativa mostra una immagine della Finestra Relazioni.
  • Re: Accodamento e contatore su testate e righe fatture

    OsvaldoLaviosa ha scritto:


    Questa tabella ha 3 PK: situazione impossibile da gestire. Se si tratta di una PK "multicampo"...dovresti almeno raccontarcelo in maniera esplicita. Io non amo le PK multicampo e preferisco mettere sempre un ID PK.
    ciao,
    il bambino e' presente quel giorno con quel tipo presenza

    PIPPO il 15/12/2018 e' presente FULL TIME
    PLUTO il 15/12/2018 e' presente FULL TIME

    non posso avere piu' presenze lo stesso giorno per un bambino

    per quanto riguarda le tabelle e relazioni faccio una sintesi e cerco di raggruppare quelle inerenti al problema, perche' di tabelle ne ho veramente tante che servono per altro
  • Re: Accodamento e contatore su testate e righe fatture

    ocrot ha scritto:


    il bambino e' presente quel giorno con quel tipo presenza
    PIPPO il 15/12/2018 e' presente FULL TIME
    PLUTO il 15/12/2018 e' presente FULL TIME
    non posso avere piu' presenze lo stesso giorno per un bambino
    Questa cosa conviene gestirla/controllarla con un Indice Multicampo Univoco. Con esso ottieni lo stesso risultato di univocità spalmata su più campi (leggi la guida in linea per capire di cosa si tratta e come impostarlo). Ma poi devi avere una PK su un campo solo.

    ocrot ha scritto:


    per quanto riguarda le tabelle e relazioni faccio una sintesi e cerco di raggruppare quelle inerenti al problema
    D'accordo.
Devi accedere o registrarti per scrivere nel forum
14 risposte