Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Contare il numero di record trovati da una query

603 views
Skip to first unread message

Fabio@

unread,
Aug 15, 2005, 1:26:11 PM8/15/05
to
Ciao a tutti.
In una Query ho inserito il seg. criterio
Like "*" & [Immettere il nome da cercare] & "*"
ma mi occorre contare il numero di record che poi va ad elencare per
inserirne il dato in una maschera.
Suggerimenti?
Anticipatamente grazie,
Fabio


Sandro

unread,
Aug 15, 2005, 1:46:43 PM8/15/05
to

"Fabio@" <io...@tin.it> ha scritto nel messaggio
news:Te4Me.55865$2U1.3...@news3.tin.it...

Ciao Fabio, prova in questo modo:

SELECT r1.nome, (select count(nome) from TuaTabella as r2 where
r2.nome=r1.nome) AS conteggioNomi
FROM TuaTabella AS r1
GROUP BY r1.nome
HAVING (((r1.nome) Like "*" & [nome:] & "*"))

Ciao e buon proseguimento di serata :-)

Sandro


Fabio@

unread,
Aug 15, 2005, 2:34:21 PM8/15/05
to

"Sandro" <sandro_...@tin.it> ha scritto nel messaggio
news:7y4Me.73694$fm.50...@news4.tin.it...
Ciao Sandro,
ti ringrazio per la risposta ma probabilmente non riesco a mettere in
pratica il tuo suggerimento.
Ho inserito le righe nei criteri di una nuova query. Al momento del
salvataggio una finestra mi dice che c'è un'errore: "Verificare la sintassi
e racchiudere la sottoquery fra parentesi.".
Potresti spiegarmi in maniera più dettagliata come fare?
Ancora grazie,
Fabio


Sandro

unread,
Aug 15, 2005, 3:56:58 PM8/15/05
to
[cut]

> > Ciao Fabio, prova in questo modo:
> >
> > SELECT r1.nome, (select count(nome) from TuaTabella as r2 where
> > r2.nome=r1.nome) AS conteggioNomi
> > FROM TuaTabella AS r1
> > GROUP BY r1.nome
> > HAVING (((r1.nome) Like "*" & [nome:] & "*"))
> >
> > Ciao e buon proseguimento di serata :-)
> >
> > Sandro
> >
> Ciao Sandro,
> ti ringrazio per la risposta ma probabilmente non riesco a mettere in
> pratica il tuo suggerimento.
> Ho inserito le righe nei criteri di una nuova query. Al momento del
> salvataggio una finestra mi dice che c'è un'errore: "Verificare la
sintassi
> e racchiudere la sottoquery fra parentesi.".
> Potresti spiegarmi in maniera più dettagliata come fare?
> Ancora grazie,
> Fabio
>

Ciao Fabio,

la subQuery va inserita in modalità struttura come se fosse un campo .
Prova ad aprire la query in modalità visualizzazione SQL e copiaci lo
statement che ti ho postato nel primo post.

Cambia ovviamente il TuaTabella con il nome effettivo della tabella che
contiene i dati e al posto di nomi ci metti il nome del campo su cui vuoi
fare il conteggio.

Fai sapere come va.

Ciao, Sandro


Fabio@

unread,
Aug 15, 2005, 4:32:30 PM8/15/05
to

"Sandro" <sandro_...@tin.it> ha scritto nel messaggio
news:es6Me.73916$fm.50...@news4.tin.it...
Ciao Sandro,
ho fatto come hai scritto e... funziona quasi!
Se digito, ad esempio "BATT", come output ho:
BATTISTI | 1
BATTIATO | 1
mentre il risultato che volevo era:
Battisti
Battiato
Tot. 2
Spero di essermi spiegato e ti ringrazio ancora per la risposta e il cortese
aiuto.
Ciao,
Fabio

Sandro

unread,
Aug 15, 2005, 7:50:51 PM8/15/05
to
[cut]

> Ciao Sandro,
> ho fatto come hai scritto e... funziona quasi!
> Se digito, ad esempio "BATT", come output ho:
> BATTISTI | 1
> BATTIATO | 1
> mentre il risultato che volevo era:
> Battisti
> Battiato
> Tot. 2
> Spero di essermi spiegato e ti ringrazio ancora per la risposta e il
cortese
> aiuto.
> Ciao,
> Fabio
>

Ciao Fabio,

controllando meglio, mi sa che non ti ho dato un gran bel consiglio :-(((
Mi dispiace, ma con una query solamente non riesco a risolvere il problema.

Spero che intervega qualcuno più esperto di me.

Scusa, e ciao.
Sandro


Alessandro Baraldi

unread,
Aug 16, 2005, 5:22:05 AM8/16/05
to
"Sandro" <sandro_...@tin.it> wrote in message
news:vT9Me.74227$fm.50...@news4.tin.it


Secondo me l'unico metodo è quello di aprire un
recordset sulla Query parametrica passando il parametro:

Private Function retRecCount() as long
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Dim rst as DAO.Recordset
Set dbs = CurrentDB
Set qdf = dbs.QueryDefs("NomeQueryParametrica")
qdf.Parameters![Nome Parametro:] = ValoreParametro
Set rst = qdf.OpenRecordset
if rst.Eof then retRecCount=0:Exit Function
rst.movelast
retRecCount=rst.Recordcount
'...
rst.close
qdf.close
Set dbs = nothing
End Function

Ciao
@Alex


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Fabio@

unread,
Aug 16, 2005, 7:14:22 AM8/16/05
to

"Alessandro Baraldi" <ik2...@libero.it> ha scritto nel messaggio
news:66b1b8235b76ce8a0e...@mygate.mailgate.org...

Ciao @Alex,
grazie per la risposta.
Purtroppo non ho capito bene come fare. Dove devo inserire il codice? Le
istruzioni che devo cambiare sembrerebbero 2:
1- ("NomeQueryParametrica")
2- [Nome Parametro:]
La prima dovrò cambiarla con il nome della query di cui ho inviato il
codice.
La seconda... ?
Anticipatamente grazie per la risposta,
Fabio

Alessandro Baraldi

unread,
Aug 16, 2005, 9:23:10 AM8/16/05
to
"Fabio@" <io...@tin.it> wrote in message
news:iUjMe.56934$2U1.3...@news3.tin.it

[Cut]


> Ciao @Alex,
> grazie per la risposta.
> Purtroppo non ho capito bene come fare. Dove devo inserire il codice? Le
> istruzioni che devo cambiare sembrerebbero 2:
> 1- ("NomeQueryParametrica")
> 2- [Nome Parametro:]
> La prima dovrò cambiarla con il nome della query di cui ho inviato il
> codice.
> La seconda... ?
> Anticipatamente grazie per la risposta,
> Fabio


Ciao Fabio.
Non ho seguito tutto il 3D pertanto è possibile che la
tua richiesta sia anche stata fraintesa.
Se ti serve contare il Numero di Records visualizzati
in una Maschera basata su una Query non serve nulla di tutto
ciò, ma basta una TextBox nella quale inserisci un Conteggio.
Quanto ti ho esposto invece, era in particolare per affrontare
quanto diceva Sandro, ma ha un senso nel caso tu voglia sapere
quanti Records ci sono nel caso non venga aperta una Form oppure
prima di aprirla...!

Facci sapere quale sia realmente la tua esigenza.

Ciao
@ALex

Fabio@

unread,
Aug 16, 2005, 9:37:19 AM8/16/05
to

"Alessandro Baraldi" <ik2...@libero.it> ha scritto nel messaggio
news:489327606110781c3a...@mygate.mailgate.org...

> "Fabio@" <io...@tin.it> wrote in message
> news:iUjMe.56934$2U1.3...@news3.tin.it
>
> [Cut]
>
> Ciao Fabio.
> Non ho seguito tutto il 3D pertanto è possibile che la
> tua richiesta sia anche stata fraintesa.
> Se ti serve contare il Numero di Records visualizzati
> in una Maschera basata su una Query non serve nulla di tutto
> ciò, ma basta una TextBox nella quale inserisci un Conteggio.
> Quanto ti ho esposto invece, era in particolare per affrontare
> quanto diceva Sandro, ma ha un senso nel caso tu voglia sapere
> quanti Records ci sono nel caso non venga aperta una Form oppure
> prima di aprirla...!
>
> Facci sapere quale sia realmente la tua esigenza.
>
> Ciao
> @ALex
>
>
Ok. Riepilogo:
Ho una Query in cui fra i criteri ho messo:

Like "*" & [Immettere il nome da cercare] & "*"
in modo da ottenere come output solo quelli che contengono il testo immesso.
A questo punto in una maschera visualizzo l'elenco e tramite un'altra query
anche il numero totale dei records.
Vorrei, a questo punto, inserire anche la quantità di records elencati dopo
aver immesso il testo. Esempio:
Immettere il nome da cercare --> "batt"
Risultato in maschera:
Lucio Battisti
Franco Battiato
Tot. ricerca 2 record su 96 in database.
Spero di essere stato chiaro,
grazie,
Fabio


Alessandro Baraldi

unread,
Aug 16, 2005, 9:46:39 AM8/16/05
to
"Fabio@" <io...@tin.it> wrote in message
news:j_lMe.57229$2U1.3...@news3.tin.it

[CUT]


> Ok. Riepilogo:
> Ho una Query in cui fra i criteri ho messo:
> Like "*" & [Immettere il nome da cercare] & "*"
> in modo da ottenere come output solo quelli che contengono il testo immesso.
> A questo punto in una maschera visualizzo l'elenco e tramite un'altra query
> anche il numero totale dei records.
> Vorrei, a questo punto, inserire anche la quantità di records elencati dopo
> aver immesso il testo. Esempio:
> Immettere il nome da cercare --> "batt"
> Risultato in maschera:
> Lucio Battisti
> Franco Battiato
> Tot. ricerca 2 record su 96 in database.
> Spero di essere stato chiaro,
> grazie,
> Fabio


Allora dato che i n°2 Records sono visualizzati nella
Maschera, non hai bisogno di nessuna funzione per sapere
che sono 2...!
Metti una TextBox e con l'autocomposizione nella Proprietà
origine dati scrivi: =Conteggio([NomeChiavePrimaria])
ed ottieni il 2.
Per ricavare invece 96 la cosa è diversa, per non complicarti
la vita usa le funzioni di aggregazione, quindi metti una
nuova TextBox e nell'origine dati scrivi:
=DCount("*";"NomeTabella")

Ciao
@Alex

Fabio@

unread,
Aug 16, 2005, 10:20:46 AM8/16/05
to

"Alessandro Baraldi" <ik2...@libero.it> ha scritto nel messaggio
news:1fcd64a579d5846415...@mygate.mailgate.org...
Con entrambi i suggerimenti che mi hai dato il risultato è lo stesso: 96!
Il problema credo che sia che col nome della chiave primaria vada a prendere
i dati dalla tabella e non dalla query.
Cosa sbaglio?
Ciao,
Fabio


Alessandro Baraldi

unread,
Aug 16, 2005, 10:24:11 AM8/16/05
to
"Fabio@" <io...@tin.it> wrote in message
news:2DmMe.57319$2U1.3...@news3.tin.it

[CUT]
> Con entrambi i suggerimenti che mi hai dato il risultato č lo stesso: 96!


> Il problema credo che sia che col nome della chiave primaria vada a prendere
> i dati dalla tabella e non dalla query.
> Cosa sbaglio?
> Ciao,
> Fabio


Se la Maschera č basata sulla Query e restituisce 2 Records
non č possibile, devi aver sbagliato qualche associazione, ma
da quě a capire cosa sia c'č molto da dire...!

Non saprei come aiutarti.

0 new messages