Newsgroup: it.comp.appl.access
Titolo: Richiesta aiuto con Access 97 (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
------------------------------------------


[MEGACUT]
Premetto che non ho letto con la dovuta attenzione tutto il messaggio ma ti
vorrei chiedere perchè usi due tabelle diverse per memorizzare la stessa
cosa?
Non converrebbe aggiungere un paio di campi tipo inizio e fine commessa?
In questo modo la query che è origine della frmRiepilogodati guarderebbe
sempre alla stessa tabella...
Per visualizzare eventualmente solo dati dell'anno in corso è poi
sufficiente costruire i filtri adeguati.
Ciao Nicola
--
email:sostituire inwind a NOSPAM

sempre alla stessa tabella...
Ho seguito il tuo consgilio..... e in effetti il database risulta anche più facile da consultare. Questo però non risolve ancora il mio problema. Come faccio a far capire ad Access che in RiepilogoDati2001 deve tener presente anche dei dati del 2000 se la commessa risulta ancora aperta?
Attendo vostre risposte e nell'attesa vi ringrazio in anticipo.
Ciao a tutti.

