Newsgroup: it.comp.appl.access
Titolo: Aiuto calcolo percentuale

Ho una query di totali dove ho due colonne: il tempo impiegato per
svolgere una certa attività [tempo] e la quantità di attività per quel
tempo [conteggio].
Ho inserito questa query in una maschera e sono riuscito a calcolare il
totale delle attività inserendo in un controllo "=Somma([conteggio])",
ma devo anche calcolare la percentuale rispetto a questo totale della
quantità delle attività che hanno un certo criterio (cioè quelle
eseguite in un tempo maggiore rispetto allo stabilito).
Praticamente: qual è la percentuale delle attività eseguite in più di 2
giorni rispetto al totale? Come faccio a visualizzare questo valore in
un controllo? Graize mille a chi avrà la pazienza di rispondermi.
Marcello.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
news:949a77862eb05c67967...@mygate.mailgate.org

Supponendo che il tempo stabilito sia posto in una casella che si
chiama [stabilito], penso che potresti scrivere qualcosa come:
eccedenti = dcount("[tempo]","nomequerydiorigine","[tempo] > " &
[stabilito])
per il conto dei valori con tempo eccedente
(nota che si chiudono le virgolette prima del nome di casella);
scrivi:
tutti = dcount("[tempo]","nomequerydiorigine")
per il totale delle registrazioni,
e quindi la percentuale degli eccedenti è:
perc = eccedenti / tutti
Abbi l'avvertenza di scrivere punti e virgola al posto delle virgole, se
metti le funzioni dcount in una casella di testo o in un campo di query.
Se ci sono problemi, scrivici.
Buon lavoro
Riccardo


Forse non mi sono spiegato bene (o non ho capito quello che tu mi hai
detto). La query (una query si selezione con i totali visualizzati) in
uscita ha tre campi:
[tempo] che è il tempo impegato ed è un raggruppamento
[severità] che è il livello di graivtà dell'attività che è un
raggruppamento
[conteggio] che è il numero di attività completate in quel tempo per
quella gravità che è un conteggio
Sostanzialmente ho qualcosa di simile
[tempo][severità][conteggio]
0      3         5
1      3         6
2      1         1
2      3         5
3      3         7
5      3         1
etc...
Ora: nel pié di maschera ho inserito un controllo che come dati ha:
=somma([conteggio)
e così mi da il totale delle attività svolte.
Mi occorre avere un altro controllo (se possibile non via codice) che mi
calcoli qual è il totale delle attività il cui tempo è superiore a 3. In
realtà poi il criterio sarà quanto il tempo è superiore a 3 se la
severità è 3 o il cui tempo è superiore a 2 per le severità 1 e 2.
Va da sé che poi avòr un terzo controllo con il calcolo della
percentuale.
Grazie per la pazienza.


 wrote in message
news:f84a5b285a5fe39091a...@mygate.mailgate.org

Direi che ci siamo. Se sostituisci al nome che avevo dato io,
(stabilito),
il nome del campo [severità], metti nella maschera un controllo con
questa origine record:
=dsum("[tempo]";"nometabelladiorigine";"[tempo]> [severità]")
per il conto dei valori con tempo eccedente.
Nel tuo esempio, mi par di capire che i record in cui il tempo è
superiore a severità sono il 3 e il 6. Di conseguenza sommando i
rispettivi conteggi ottieni 2.
Se il controllo in cui hai messo la somma dei conteggi si chiama
"tutti", e la casella che dico io si chiama "eccedenti", la percentuale
sarà in una nuova casella chiamata "perc", contenente:
=eccedenti / tutti
Sommando tutte le attività di conteggio nel tuo esempio, ottengo 25,
dividento 2 per 25 otteniamo una percentuale pari a 8%.
La casella "perc" avrà formato percentuale e cifre decimali a tuo
piacimento.
Se ho capito, bene, sennò fammi sapere.
Riccardo


Ok, perfetto, tutto funziona alla grande. Tranne: il controllo "=Somma"
se è l'unico controllo va, se inserisco quello che mi hai suggerito non
va più. Questo l'ho risolto inserendo per la somma totale una riga
simile a quella che mi hai dato. Il problema è che nel terzo controllo
non mi becca i nomi degli altri due, quindi ottendo il valore anziché
con "controllo1/controllo2" con formula1/formula2, ripetendo nel terzo
controllo entrambe le righe dei primi due controlli nel terzo. Funziona,
ma essendo in rete i dati, è lento. Hai qualche suggerimento? Grazie.


 wrote in message
news:d3c970745cda5b29181...@mygate.mailgate.org

Hai provato a mettere i nomi dei campi fra parentesi quadre, così:
= [controllo1] / [controllo2]
?
Alle volte non si ottiene risultato facendo riferimento a un controllo
appena creato PRIMA di salvare la maschera.
Riccardo


Parentesi quadre, maschera salvata. Tutto fatto, ma niente. Per ora l'ho
risolta cosě, ma se le esigenze dovessero crescere, non posso
permettermi di aspettare 2/3 minuti per avere un report...
