Newsgroup: it.comp.appl.access
Titolo: contare i record

ho una ,aschera di ricerca dati
nella mSCHERA IMPOSTA I CRITORI E NELLA SOTTOmaschera incorporata ho i
risultati
come posso creare un indice che mi dia il riusultATO della query, ovvero il
numero dei record ottenuti?
grazie

 ha scritto nel messaggio
news:pfxjb.40445$vO5.1...@twister1.libero.it...

Uno dei modi possibili è quello di ottenere il numero dei record usando una
funzione DCount (vedi help) che abbia come dominio  l'oggetto che è origine
record della sottomaschera.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


è..non riesco  a trovare la funziuone dcount sull'help, sia su indice che su
ricerca libera, non esce nuilla, quindi non riesco a capirne la sintassi
DCount («espr», «dominio», «criteri»)

 ha scritto nel messaggio
news:jLxjb.40548$vO5.1...@twister1.libero.it...

Questo è quanto ho trovato sull'helpcirca la funzione DCount:
===============
Funzione DCount
È possibile utilizzare la funzione DCount per stabilire il numero di record
contenuti in un determinato set di record, un dominio. Utilizzare la
funzione DCount in Visual Basic, in una macro, in una espressione nella
query o in un controllo calcolato.
È possibile, ad esempio, utilizzare la funzione DCount in un modulo per
restituire il numero di record contenuti in una tabella Ordini
corrispondente agli ordini inoltrati in una determinata data.
Sintassi
DCount(espr, dominio[, criteri])
La funzione DCount dispone degli argomenti riportati di seguito.
Argomento     Descrizione
espr              Un'espressione che identifica il campo contenente i record
che si desidera contare. È possibile che si tratti di un'espressione stringa
che identifica un campo in una tabella o in una query oppure un'espressione
che esegue un calcolo dei campi. In espr è possibile includere il nome di un
campo in una tabella, un controllo in una maschera, una costante o una
funzione. Se espr include una funzione, è possibile che sia incorporata o
definita dall'utente, ma non è possibile che si tratti di un'altra funzione
di aggregazione sui domini o di aggregazione SQL.
dominio        Un'espressione stringa che identifica il set di record che
costituisce il dominio. È possibile che sia un nome di tabella o di query.
criteri            Una stringa opzionale utilizzata per limitare
l'intervallo di dati su cui viene eseguita la funzione DCount. L'argomento
criteri, ad esempio, equivale spesso alla proposizione WHERE priva della
parola WHERE in un'espressione SQL. Se si omette l'argomento criteri, la
funzione DCount valuta espr confrontandolo con l'intero dominio. È
necessario che qualsiasi campo incluso in criteri appartenga anche
all'argomento dominio. In caso contrario, la funzione DCount restituisce il
valore Null.
Osservazioni
Utilizzare la funzione DCount per contare il numero di record contenuti in
un dominio quando non è necessario conoscere i relativi valori specifici.
Anche se l'argomento espr è in grado di eseguire un calcolo in un campo, la
funzione DCount conteggia semplicemente il numero di record. Il valore di
qualsiasi calcolo eseguito da espr non è disponibile.
Sia che la funzione DCount venga utilizzata in una macro o in un modulo, in
una espressione nella query o in un controllo calcolato, è necessario creare
con attenzione l'argomento criteri per assicurarsi che venga valutato
correttamente.
Utilizzare la funzione DCount in un controllo calcolato quando si rende
necessario specificare criteri per limitare l'intervallo di dati su cui
viene eseguita la funzione. Per visualizzare, ad esempio, il numero di
ordini da inoltrare in California, impostare la proprietà OrigineControllo
di una casella di testo all'espressione seguente:
=DCount("[IDOrdine]", "Ordini", "[ZonaDestinatario] = 'CA'")
Se si desidera semplicemente contare tutti i record contenuti in dominio
senza specificare alcuna limitazione, utilizzare la funzione Conteggio.
Suggerimento   La funzione Conteggio è stata ottimizzata per velocizzare il
conteggio dei record nelle query. Utilizzare la funzione Conteggio in
un'espressione nella query invece della funzione DCount e impostare criteri
opzionali per rafforzare qualsiasi limitazione sui risultati. Utilizzare la
funzione DCount quando è necessario contare i record in un dominio
dall'interno di un modulo di codice o di una macro o in un controllo
calcolato.
È possibile utilizzare la funzione DCount per contare il numero di record
contenenti un determinato campo non presente nell'origine record su cui si
basa la maschera o il report. È possibile, ad esempio, visualizzare il
numero di ordini nella tabella Ordini in un controllo calcolato in una
maschera basata sulla tabella Prodotti.
La funzione DCount non esegue il conteggio dei record contenenti valori Null
nel campo a cui fa riferimento espr, a meno che espr corrisponda al
carattere jolly asterisco (*). Se si utilizza un asterisco, la funzione
DCount calcola il numero complessivo dei record, compresi quelli contenenti
campi Null. Nell'esempio riportato di seguito si calcola il numero di record
contenuti in una tabella Ordini.
intX = DCount("*", "Ordini")
Se dominio è una tabella con una chiave primaria, è anche possibile contare
il numero complessivo di record impostando espr al campo della chiave
primaria, poiché un valore Null non compare mai nel campo della chiave
primaria.
Se espr identifica più campi, separare i nomi dei campi con un operatore di
concatenazione, una E commerciale (&) o un segno più (+). Se si utilizza una
E commerciale per separare i campi, la funzione DCount restituisce il numero
di record contenenti dati in un campo qualsiasi tra quelli elencati. Se si
utilizza un segno più, la funzione DCount restituisce solo il numero di
record contenenti dati in tutti i campi elencati. L'esempio riportato di
seguito dimostra gli effetti di ciascun operatore quando viene utilizzato in
un campo contenente dati in tutti i record (Destinatario) e un campo che non
contiene dati (ZonaDestinatario).
intW = DCount("[Destinatario]", "Ordini")    ' Restituisce 831.
intX = DCount("[ZonaDestinatario]", "Ordini")      ' Restituisce 323.
intY = DCount("[Destinatario] + [ZonaDestinatario]", "Ordini")   '
Restituisce 323.
intZ = DCount("[Destinatario] & [ZonaDestinatario]", "Ordini")   '
Restituisce 831.
Nota   La E commerciale è l'operatore preferenziale per l'esecuzione di
concatenazione di stringhe. Si consiglia di evitare l'utilizzo
dell'operatore di addizione se non per le operazioni di addizione numerica,
salvo che non si desideri espressamente diffondere valori Null in
un'espressione.
Le modifiche non salvate ai record in dominio non sono contemplate quando si
utilizza questa funzione. Se si desidera che la funzione DCount sia basata
sui valori modificati, è necessario prima salvare le modifiche scegliendo il
comando Salva record dal menu File, spostando lo stato attivo su un altro
record oppure utilizzando il metodo Update.
================================


Allora ho usato quest'espressione
=(DCount("[cognome]","Prncipale"))
dove principale è il nome della tabella che origina i dati della
sottomaschera, e cognome è uno dei suoi campi
cosi facemndo pero mi restituisce il valore totale dei record,anche se poi
nella maschera ricerca impongo dei criteri( la maschera ricerca contiene la
sottomaschera "principale")
allora ho impostato i criteri nell'espressione dcount.Ho letto che devono
essere tipo espressione sql
WHERE (((Prncipale.Cognome) Like [Forms]![ricerca]![Cognome]
quiondi
 =(DCount("[cognome]","Prncipale"),
WHERE (((Prncipale.Cognome) Like [Forms]![ricerca]![Cognome]
)
ma cosi mi da errore.
ho provato a toglierte il where..ma sempre errore.
Non so come impostare il criterio
Da notare poi che in realta il criterio dovrebbe contenere anche altre
query, in quanto la sottomaschera da risultati in bnase a criteri
multipli..per esempio eta + sesso + nazionalita, oopure nazionalita +
sesso..ecc ecc
quindi dovrei mettere
WHERE (((Prncipale.Cognome) Like [Forms]![ricerca]![Cognome] AND ....
in ogni caso non funziona proprio la sintassi credo

RISOLTO!!
grazie


vebbč ... dicci almeno come! ;-)

 ha scritto nel messaggio
news:bmoaqn$crv$1...@news.flashnet.it...

ecco come:
=(DCount("[qualifica]","Prncipale","[qualifica] like
([forms]![ricerca]![qualifica]) and [relatore] like
([forms]![ricerca]![relatore]) and [giorni] like
([forms]![ricerca]![giorni]) and [workshop] like
([forms]![ricerca]![workshop]) and [invitato] like
([forms]![ricerca]![invitato]) and [cognome] like
([forms]![ricerca]![cognome]) and [nome] like ([forms]![ricerca]![nome])"))
cosi il campo criterio contiene tutti criteri che  desidero, che imposto
nella maschera "ricerca" e che vanno a estrapolare i dati dalla tabella
prncipale
es.
[nome] like ([forms]![ricerca]![nome]   nome č sia  il nome della casella di
testo che uso per ricercare , e che sta nella maschera "ricerca"  sia un
campo della tabella "prncipale" che da origine a tutti i dati
Siccome i criteri di ricerca possono essere multipli  li unisco con AND
In questo caso dalla tabella principale posso estrapolare dati secondo  7
criteri diversi /qualifica, relatore, workshop, invitato,nome e cognome)
A questo punto ho una domanda:
In questi casi, quando da una tabella voglio estrarre dati secondo 1 o piu
criteri come imposto la maschera?
Io uso questo metodo, che non so se sia il piu corretto
In gni campo metto un record "*" e nella maschera di ricerca, le caselle di
testo(o combinate) in cui impostare il criterio hanno come valore di
default"*", cosi che i dati visualizzati  sono tutti.Cosi che solo le
caselle alle quali do un valore diverso da "*" hanno un effettivo valore
sulla ricerca
C'č un modo diverso di fare questo tipo di  lavoro?