Newsgroup: it.comp.appl.access
Titolo: caselle di testo e combinate

In una maschera una caselladi riepilogo prende i dati da una query
totaleClienti, un'altra da una query ClientiFemmine, per avere la
percentuale ho una casella di teso dove ho messo
=[ClientiFemmine]/[totaleClienti]+100. Pechè mi da #Errore?

 ha scritto nel messaggio
news:9vkru5$iob$1...@serv1.albacom.net...

Prova con
= DCount("*"; "ClientiFemmine")/DCount("*"; "totaleClienti")
ed imposta il formato della casella di testo a Percentuale.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Non funziona. E' strano perchè con i tuoi consigli non ho mai toppato. Non
riesco a capire dove sbaglio!


Cosa significa: "Non funziona"?



ho messo la formula in origine controllo della casella di testo. Il
risultato č #errore


Significa che nel tuo database non esiste una query chiamata ClientiFemmine
e/o una query chiamata totaleClienti.


 ha scritto nel messaggio
news:9vng7j$2mfc$1...@stargate1.inet.it...

Hai ragione, avevo capito che si riferisse alle caselle della maschera! C'è
ancora qualcosa che sbaglio perchè il risultato è 100,00% quando il
risultato della query femmine è 1 e quello del totale è 3


Strano, sembrerebbe che le due query contengano un numero uguale di righe.
Hai provato ad aprire le query e verificare il numero di righe che
contengono?


 ha scritto nel messaggio
news:9vnijf$4g50$1...@stargate1.inet.it...

Ho provato con varie query ed il risultato è sempre lo stesso, mi dà
l'unità. Per provare nel formato ho inserito vero o falso e mi da vero, in
fisso mi da 1,00. Le query hanno una riga sola. In struttura vi è la tabella
anagrafica d dove prendo  il conteggio e quella dei clienti con la formila
dove da cui prendo il sesso.

 dove da cui prendo il sesso.
Beh, se ambedue le query hanno una riga sola, allora è giusto il risultato
che ottieni; le due funzioni DCount contano le righe contenute in ognuna
delle due queries ed ambedue restituiscono come risultato 1 e poiché 1
diviso 1 fa 1....
Penso che ci sia stato un grosso equivoco circa il contenuto delle due
query; dovresti spiegarci meglio cosa contengono, ancora meglio se ci posti
il loro codice SQL.


SELECT Count(tAnagrafica.[ID Paziente]) AS [ConteggioDiID Paziente]
FROM tAnagrafica
WHERE (((tAnagrafica.sesso)="f"));
SELECT Count(tAnagrafica.[ID Paziente]) AS [ConteggioDiID Paziente]
FROM tAnagrafica;
 Questi i codici SQL. Quello che sto cercando di fare  è calcolare i totali
con le query e le percentuali con le caselle di testo.

Ho capito! Dovevo impostare le query a raggruppamento e non a conteggio!
Giusto?


Ma se le cose stanno così, non creare affatto le due queries e nell'origine
controllo della casella di testo scrivi direttamente:
=DCount("*";"tAnagrafica";"[sesso]= 'f'")/DCount("*";"tAnagrafica")
e come ti ho già detto dai alla casella di testo il formato Percentuale.


FANTASTICO!!! Così è molto pù economico. Puoi dirmi come fare a calcolare la
media dell'età con lo stesso metodo ( senza query)?
Grazie, sei grande!!

 ha scritto nel messaggio
news:9vpmvv$5t0$1...@pegasus.tiscalinet.it...

Se la maschera su cui stai lavorando ha come origine record la tabella
tAnagrafica che contiene anche il campo di tipo Data/ora chiamato
DataNascita.
Prova a scrivere nell'origine controllo della tua casella di testo non
associata che deve contenere l'età media:
=Somma(Year(Date())-Year([DataNascita]))/DCount("*";"tAnagrafica")



La soluzione sopra scritta calcola l'età facendo la differenza secca tra
l'anno della data odierna e l'anno della data di nascita.
Se invece vuoi un calcolo dell'età più preciso espresso in anni e frazioni
di anni, ed inoltre non hai tAnagrafica come origine record della maschera
su cui lavori, forse è meglio scrivere:
=((Date()*DCount("*";"tAnagrafica")-DSum("DataNascita";"tAnagrafica"))/DCoun
t("*";"tAnagrafica"))/365
Se infine ti sta bene calcolare l'età come differenza tra l'anno in corso e
l'anno della data di nascita, ma non hai tAnagrafica come origine record
della maschera, puoi provare a scrivere:
=(Year(Date())*DCount("*";"tAnagrafica")-DSum("Year(DataNascita)";"tAnagrafi
ca"))/DCount("*";"tAnagrafica")
Insomma la soluzione cambia a seconda di come vuoi calcolare l'età e di cosa
hai come origine record della maschera.


Naturalamente ora va tutto bene, perciň sto rifacendo tutto il lavoro in
base ai criteri che mi hai suggerito. Ho ancora un broblema irrisolto
(scusa!): in una tabella che ha molti nomi su scrivo
=Dcount(*";tPersone";"[nomi]='Anna'") trovo il conteggio di tutti i nomi
Anna che nella tabella appaiono per primi, cioč se in una vi č Anna  Antonio
Nicola Francesco, ma se vi č Nicola Anna Antonio Francesco questo non viene
conteggiato, ho provato con '*' ma evidentemente č sbagliato. Quale č la
sintassi per trovare e contare una parte di una parola?
GRAZIE!

 ha scritto nel messaggio
news:9vq2vi$cl2$1...@pegasus.tiscalinet.it...

Se nei criteri della DCount usi il segno di uguaglianza, verranno contati
solamente i record che nel campo indicato prima del segno = hanno
esattamente il valore della stringa posta dopo il segno uguale. Nel tuo
caso, solo i record delle persone chiamate Anna.
Se invece vuoi contare tutti i record che in un determinato campo contengono
una determinata stringa, nei criteri della DCount non devi usare il segno di
uguaglianza, la la funzione Like (vedi help).
Naturalmente in quel caso ti verranno contati, oltre ai record che
contengono il nome Anna anche i record che contengono il nome Mirianna o
Annalisa ecc.
Quindi prova a scrivere:
=DCount("*";"tAnagrafica";"Nomi Like '*Anna*'")


E' incredibile! Sei una enciclopedia vivente. Ma dove si trovano queste
cose?
Ciao e grazie di tutto

 Ciao e grazie di tutto
--


> Ciao e grazie di tutto
Ho notato anchio che leggere č sempre meno di moda....
... anche perchč č piů comodo e veloce chiedere ....
Ciao. Emanuele.