Newsgroup: it.comp.appl.access
Titolo: Mex per Roberto (dal portatile o da Casa) e per tutto il NG sul mio problema di Access (lungo)

 naturalmente sul NG e non in privato, come dici nel tuo capoverso> successivo.
Ok tutto chiaro. Eccovi il mio database:
TABELLE:
[tblCommesse2000]:
- Numero commessa (testo - chiave primaria)
- Descrizione (memo)
- Totale giorni (numerico)
- Totale giorni stimati (numerico)
- Stato commessa (testo)
- Giorni PF già consuntivati (numerico)
- Giorni PF ancora da consuntivare (numerico)
- Giorni EB (numerici)
- ODL (testo)
- Data inserimento commessa (Data/ora)
- Prestazioni personale interno (Valuta)
- Prestazioni fornitori (Valuta)
- Extra-budget (Valuta)
[tblCommesse2001]:
esattamente come la 2000, ma in questo caso, devo solo prendere le commesse che nascono nel 2001 o che provengono dal 2000 perché non ancora terminate.
[tblStatoCommesse]:
- intIDStatoCommessa (Testo - chiave primaria)
- strDescrStatoCommessa (Testo)		
(questa tabella semplicemente serve per individuare in modo univoco lo stato delle commesse se "assegnata, in aggiornamento, ecc.)
[tblElencoCommesse2000]:
- intIDPreventivo (Testo)
- IDVFOP (Testo)
- Risorse (Testo)
- Gen (numerico)
- Feb (numerico)
- Mar (numerico)
- Apr (numerico)
- Mag (numerico)
- Giu (numerico)
- Lug (numerico)
- Ago (numerico)
- Set (numerico)
- Ott (numerico)
- Nov (numerico)
- Dic (numerico)
Questa tabella mi serve per inserire il numero di ore lavorate da ogni singolo dipendente per commessa e per mese.
[tblElencoCommesse2001]:
Come la 2000 ma considera solo le commesse che non sono terminate nel 2000 o che vengono assegnate nel 2001.
QUERY:
[qryRiepilogoDati2000]:
Mette in relazione la tabella tblCommesse2000 e tblStatoCommesse con proprietà join del tipo "Includi tutti i record 'tblCommesse2000' e solo i record di 'tblStatoCommesse' in cui i campi collegati sono uguali". Detto questo, i campi inseriti sono i seguenti:
- Numero commessa
- Descrizione
- strDescrStatoCommessa
- Totale giorni
- Totale giorni stimati
- Differenza giorni: [Totale giorni]-[Totale giorni stimati]
- Giorni PF già consuntivati
- Giorni PF ancora da consuntivare
- Giorni EB
- Giorni Totali consuntivati: [Totale giorni]+[Giorni PF già consuntivati]+[Giorni EB]
- Differenza giorni globali: [Giorni totali consuntivati]-[Totale giorni stimati]
- ODL
- Data inserimento commessa
- Prestazioni personale interno 
- Prestazioni fornitori 
- Extra-budget
- Importo totale commessa: [Prestazioni personale interno]+[Prestazioni Fornitori (PF)]+[Extra-Budget (EB)]
[qryRiepilogoDati2001]:
come la 2000, ma crea la relazione fra tblCommesse2001 e tblStatoCommesse
[Commesse2000]:
Prende i dati da tblElencoCommesse2000 con i seguenti campi:
- IDVFOP
- Risorse
- Gen
- Feb
- Mar
- Apr
- Mag
- Giu
- Lug
- Ago
- Set
- Ott
- Nov
- Dic
- Totale ore: [Gen]+[Feb]+[Mar]+[Apr]+[Mag]+[Giu]+[Lug]+[Ago]+[Set]+[Ott]+[Nov]+[Dic]
[Commesse2001]:
Come la 2000, ma prende i dati da tblElencoCommesse2001
[qryTotaliParziali2000]:
Prende i dati esattamente dalla query Commesse2000 tranne il campo Risorse; poi fa un raggruppamento per commessa (secondo il campo IDVFOP) sommando tutti i dati parziali per mese, ottenendo alla fine il totale generale.
Con questa tabella ottengo le somme parziali per mese, per commessa.
[qryTotaliParziali2001]:
Come la 2000, ma prende i dati da Commesse2001
MASCHERE:
[frmRisorseAssegnate2000]:
Prende i dati da Commesse2000 e viene configurata secondo la modalità Foglio Dati
[frmRisorseAssegnate2001]:
Prende i dati da Commesse2001 e viene configurata secondo la modalità Foglio Dati
[frmTotaliParziali2000]:
Prende i dati da qryTotaliParziali2000 e viene configurata secondo la modalità Foglio Dati
[frmTotaliParziali2001]:
Prende i dati da qryTotaliParziali2001 e viene configurata secondo la modalità Foglio Dati
[frmRiepilogoDati2000]:
Prende i dati da qryRiepilogoDati2000. Vengono poi, inserite due sottomaschere: la frmRisorseAssegnate2000 e la frmTotaliParziali2000 connettendole tutte secondo il numero di commessa. In questo modo, di una commessa posso sapere nozioni generali, quali risorse gli sono state assegnate e infine, i totali parziali per mese, per commessa.
[frmRiepilogoDati2001]:
Come la 2000, ma prende i dati da frmRisorseAssegnate2001 e frmTotaliParziali2001.
PROBLEMA:
Il problema che mi si è presentato è all'apparenza banale. Infatti, nella frmRiepilogoDati2001 Access non riesce a tener conto dei dati passati. Mi spiego meglio. Se ho una commessa X nata nel 2000 sulla quale le risorse hanno lavorato 100 ore, vorrei che nella frmRiepilogoDati2001, nel compo "Totale giorni Consuntivati" si tenesse conto di questo data che dovrebbe poi, essere aggiunto alle ore lavorate nel 2001 dalle risorse sulla stessa commessa. Al momento, questo tipo di configurazione si mantiene solo se non si inserisce nessuna dato nella sottomaschera frmRisorseAssegnate2001; ma basta inserire anche una sola ora, che Access "dimentica" quanto lavorato nel 2000 su quella commessa e la considera come se fosse nata nel 2001. Che cosa posso fare?
Vi prego di scusarmi se mi sono dilungato in questa maniera, ma mi è sembrato inevitabile data la mole di dati che è necessario tener presente. Vi ricordo inoltre, che sono un principiante e che una parte di questo database è stata costruita con l'aiuto ed i suggerimenti di amici e colleghi.
Restando in attesa di vostre notizie vi saluto e ringrazio anticipatamente chiunque possa aiutarmi con questo mio delicato problema.
------------------------------------------
Posted via web with GlobalNews
The first european Free Usenet Web Portal 
www.globalnews.it
------------------------------------------
Per la mia e-mail: sostituite "libero" (senza virgolette) a NOSPAMMATEMI




Visto che esplicitamente richiedi il mio intervento, eccomi.
Non ho risposto al tuo messaggio del 19/2/2001 ore 10:36 in quanto, mentre
mi accingevo a farlo, ho notato che ti aveva risposto Nicola Ardito: ho
letto il suo messaggio e, poichè mi sono accorto che diceva ciò che stavo
per scrivere io, ho ritenuto opportuno di non fare il coro a Nicola.
Nicola ti ha fatto una domanda alla quale tu non hai risposto e che pertanto
io ti ripropongo:
perchè usi due tabelle diverse per memorizzare la stessa cosa?
Questa domanda non te la facciamo perchè non vogliamo farci gli affari
nostri, ma perchè dalla tua risposta potrebbe scaturire la soluzione al tuo
problema.
La soluzione che stai tentando di adottare prevede il raddoppio di tutti gli
oggetti del database; nel 2002 che pensi fare? Di triplicarli e poi
arrovelarti per mettere insieme i dati del 2000 + quelli del 2001 + quelli
del 2002? E nel 2003?
Nicola nel suo messaggio ti ha già suggerito una soluzione: è sufficiente
aggiungere un campo con la data di fine commessa nella tblCommesse e un
campo Anno nella tblElencoCommesse per fare a meno di duplicare tali tabelle
e quindi anche tutti gli altri oggetti del database. Che cosa non ti piace
di questa soluzione?
Inoltre, mentre può avere una logica unire o accodare delle tabelle
movimenti di due esercizi differenti (tblElencoCommesse), secondo me non ha
alcun significato accodare delle tabelle che contengono prevalentemente dati
anagrafici, anche perché a mio avviso un anagrafica non ha una validità di
esercizio, va solo tenuta aggiornata.
Scusami se sono stato un pò crudo, ma visto che mi hai esplicitamente
chiamato in causa, spero solo di essere riuscito a spiegarti che è difficile
darti una mano a realizzare una soluzione che non condivido e che con
l'andar del tempo potrebbe crearti ulteriori problemi.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 wrote in message
eVUk6.4952$k55....@news.infostrada.it...
