Programma gestione fatture - Problema sulle maschere

di il
6 risposte

Programma gestione fatture - Problema sulle maschere

Continuo ad avere problemi su questo piccolo applicativo... sta diventando un'odissea.

Volevo sottoporre un mio problema.
Sto impostando la gestione delle fatture e la maschera che dovrebbe gestire l'inserimento delle fatture.
Questa gestione interpella due tabelle

-Estremi fatture - Dove vanno gli estremi degli intestatari della fattura
- Corpo fratture - Dove vanno i beni e servizi fatturati.

Queste due tabelle sono unite per anno/numero fattura, così come faccio vedere nello screen shot.

Faccio creazione Maschera guidata e inserisco tutti i campi di estremi fattura e quelli di corpo fattura.

Anno e numero fattura dovrebbero essere generate automaticamente, ed infatti sono dichiarate come: contatore automatico in corpo fattura, numerico in estremi di fattura. La relazione uno-molti.

I clienti dovrebbero essere scelti da un elenco a tendina quindi la denominazione della fattura è una casella combinata. Però quando scelgo il cliente dalla sua denominazione vorrei che gli altri campi si aggiornassero da soli (codice fiscale, indirizzo, cap, città etc...). E' possibile farlo?

Inoltre ho creato i tasti operazioni ma le fatture non vengono salvate. Cosa ho sbagliato? Grazie a chiunque possa aiutarmi!
Allegati:
11955_faff0193ba1357ed63e0dfc4b3403edb.jpg
11955_faff0193ba1357ed63e0dfc4b3403edb.jpg

6 Risposte

  • Re: Programma gestione fatture - Problema sulle maschere

    Nella tabella "EstremiFattura" hai stabilito che 2 campi (Data e Numero) siano la chiave primaria. Ciò è sconveniente. Ti consiglio di aggiungere un campo IDFattura, "contatore chiave primaria" nella tabella EstremiFattura e "numerico" in DettagliFattura. Poi relazionare uno-a-molti solo questo campo. Elimina le due precedenti relazioni.
  • Re: Programma gestione fatture - Problema sulle maschere

    Salve Osvaldo, grazie innanzitutto della risposta.

    Allora mettere Anno e Numero fattura come chiavi primarie mi è imposto dal fatto che ogni anno le fatture si devono azzerare e quindi ogni anno devono partire da 1.

    Quando vanno a fare la stampa delle fatture io non stampo l'id fattura ma la fattura cercandola per anno e numero.

    Se ho due fatture numero 9 uno anno 2012 e una anno 2013 non avrò conflitti?
  • Re: Programma gestione fatture - Problema sulle maschere

    Conosco questo modo di gestire le fatture. Non so se può smentirmi un utente più esperto, ma gestire relazioni con chiave-primaria-multicampo è davvero sconveniente. Leggevo altri post, qualcuno diceva che, non so se con Access o qualche altro programma, ciò non sarebbe affatto consentito. Tieni sempre presente che una tabella dal lato molti si muove sempre e soltanto in virtù di un'unica entità...per questo motivo è stato inventato tale giochetto. Creare una relazione uno-a-molti, che in questo caso si chiamerebbe due-a-molti risulta molto rischioso. Nella tabella figlia rischi di digitare dati non più univoci e/o incoerenti...scusa, non so se sto usando un linguaggio tecnicamente corretto, ma in sostanza non l'ho mai fatto e non sarei in grado di gestirla una relazione così congeniata.
    Io, in casi come questo, preferisco sempre indicare un solo campo chiave primaria (IDFattura) e creare un indice-multicampo-univoco sulla coppia campi Anno e Numero. Tale indice ti impedirebbe, per lo meno, di non commettere l'errore di digitare due coppie di valori uguali.
    Un'altra alternativa ancora, sarebbe di unificare i due campi in uno solo, cercando di digitare un formato coerente, ma soprattutto che sia sempre univoco, allora sì che puoi renderlo chiave primaria.

    ShaKa ha scritto:


    Quando vanno a fare la stampa delle fatture io non stampo l'id fattura ma la fattura cercandola per anno e numero.
    Se ho due fatture numero 9 uno anno 2012 e una anno 2013 non avrò conflitti?
    Per risolvere questo inconveniente, devi sfruttare proprio un filtro su due campi, perchè uno sul solo campo Numero, non ti basta. Ma non si crea alcun conflitto.
  • Re: Programma gestione fatture - Problema sulle maschere

    Salve, grazie come sempre per la risposta.
    Rispondo subito... ho optato per una combinazione di due indici perché il software che mio fratello aveva prima si basava su una combinazione del genere... Anno/numero come chiavi primarie.
    E' una cosa insolita, è vero. Io sono rimasta un po' su quella linea di progettazione, perché in realtà sto imparando adesso a usare access e non volevo fare il passo più lungo della gamba!

    Ho provato a fare la modifica che mi hai suggerito.
    Ho impostato nella tabella "estremi fattura" IDFattura come chiave primaria e contatore. E' corretto?

    In "corpo fattura" ho aggiunto IDFattura però come campo numerico.
    Ma appena ho fatto questo non funziona più niente, sto sbagliando qualcosa

    Se mettessi entrambi gli ID come numerici?
    Teoricamente la chiave primaria dovrebbe essere un campo univoco e quindi che non si ripete all'interno degli indici . Quindi ogni fattura ne dovrebbe averne uno univoco.

    Il corpo fattura invece dovrebbe avere un contatore per gli inserimenti delle varie voci da maschera.
    L'inserimento dei beni e servizi fatturati viene da una maschera, quindi ogni record viene memorizzato nella tabella "Corpo fattura", ogni record un bene fatturato.

    L'indice IDFattura identifica la fattura a cui è collegata, ma questo indice non può essere dichiarato primario in quanto nel corpo fattura potrebbero essere registrati diversi beni alla stessa fattura. Giusto?

    Grazie ancora!!!
  • Re: Programma gestione fatture - Problema sulle maschere

    ShaKa ha scritto:


    Ho impostato nella tabella "estremi fattura" IDFattura come chiave primaria e contatore. E' corretto?
    OK

    ShaKa ha scritto:


    In "corpo fattura" ho aggiunto IDFattura però come campo numerico.
    OK

    ShaKa ha scritto:


    Ma appena ho fatto questo non funziona più niente, sto sbagliando qualcosa
    In teoria no. Il punto sta nel fatto che ora dovresti con santa pazienza ricostruire tutti i valori numerici che devono stare in CorpoFattura.IDFattura nella maniera coerente. Attualmente in quel campo non ci sono valori. Access non te li dà adesso in automatico. Tali valori, se non sono moltissimi, dovrai digitarli a mano.

    ShaKa ha scritto:


    Se mettessi entrambi gli ID come numerici?
    Non risolvi nulla. Ricorda che un campo contatore è soltanto uno speciale campo numerico che si autoincrementa da solo, restando sempre automaticamente univoco. Viene prescelto come chiave primaria per comodità.

    Il resto del ragionamento è corretto, c'è soltanto questa croce da risolvere.

    Giusto per completezza. Io so che si può usare una chiave primaria multicampo, soltanto quando si è sicuri di stare utilizzando una tabella che certamente è l'ultima di una scala gerarchica. Cioè, quando si è certi di non doverla ulteriormente relazionare con una nuova tabella figlia. Non si tratta evidentemente del tuo caso.
  • Re: Programma gestione fatture - Problema sulle maschere

    Si, infatti non è il mio caso... ero scettica anche io su questa cosa... la soluzione che mi hai suggerito mi sembra molto più stabile e certamente la soluzione più robusta. E' la prima volta che metto su una struttura del genere, non ho idea della robustezza di access in questo tipo di applicazioni... se dà la stessa affidabilità dei prodotti microsoft... ahimè... sono nei guai!

    Ho sistemato tutto e ricreato pazientemente tutto. Adesso funziona benissimo e le fatture vengono memorizzate come si deve. Effettuerò la stessa impostazione con i preventivi.

    Grazie Osvaldo, sei stato cortese e molto disponibile. ShaKa
Devi accedere o registrarti per scrivere nel forum
6 risposte