Newsgroup: it.comp.appl.access
Titolo: Query e numero di record

Ciao a tutti
Domanda facile: in una query c'è un modo per rilevare il numero progressivo
di record selezionati?
Intendo non i record della tabella di origine ma soltanto quelli 'presi'
dalla query.
Esiste in altre parole un contatore che possa essere inserito nella query,
qualcosa come Contatore AS Espr1, in un campo della query?
Grazie
Filippo

 ha scritto nel messaggio
news:a23oa6$ke3$1...@news.panservice.it...

Puoi provare ad utilizzare la funzione count(nomecampo) in modo che ti
ritorni il numero di record selezionati.
Select count(primaryKey) as contarecord from nometabella
Ciao Alessandro

 ha scritto nel messaggio
news:LCd18.33708$aD.12...@twister2.libero.it...

Grazie ma non è quello che mi serve.
Non ho bisogno di sapere quanti record ho selezionato ma mi serve un campo
della query con i numeri progressivi da 1 (per il primo record) al totale
dei record
Come si fa?
Filippo

 wrote in message
a23oa6$ke3$1...@news.panservice.it...

A dicembre scrissi una soluzione per questo problema...
Antonio


Se mi dici se devono comparire in maschera od in tabella cerco di capire se
c'e' qualche possibilita' (al momento non mi viene in mente nulla).
Ciao Alessandro

Filippo Vinciguerra ha scritto:

Puoi usare SQL per farti un campo contatore nella query. p.e.
Contatore: (Select Count (*) FROM [Tabella] as Temp WHERE [Temp].[ID]
< [Tabella].[ID])+1
--
HTH
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com


Una soluzione appena testata puo' essere qs.
1.Crei una tabella TEMP la cui struttura e' identica ai campi che estrai
dalla query piu' un campo IdSel contatore.
2.La tua query la fai passare da query di selezione a query di accodamento
sulla tabella TEMP.
3.Avrai cosi' una tabella con il risultato della query e con un contatore
per ogni record.
Ricorda pero' di pulire la tabella ogni volta prima dell'utilizzo altrimenti
ti accoda tutte le volte nuovi record.
Qs. metodo funziona non so quanto sia "pulito" ma riesci ad avere cio' che
ti serve

Filippo Vinciguerra ha scritto:

No. Non esiste. Ma puoi usare SQL per farti un contatore. p.e.


 ha scritto nel messaggio
news:M8e18.33828$aD.12...@twister2.libero.it...

E come si fa a ritrovare quello che scrivesti a dicembre?

 ti serve
Per funzionare funziona, perň con queste controindicazioni:
- due messaggi che chiedono l'OK per proseguire (e io preferirei di no)
- la necessitŕ di ripulire la tabella temporanea (e come si fa?)
- il fatto che la volta successiva il contatore non riparte da 1 ma dal
numero successivo all'ultimo contatore della volta precedente (e questo non
so proprio come si fa ad evitarlo)
Comunque grazie e speriamo di trovare qualcosa di meglio
Ciao Filippo

 ha scritto nel messaggio
news:a2401o$uipd0$1...@ID-46617.news.dfncis.de...

La soluzione di Karl prevede l'uso di ANSI SQL e non di JET SQL.
A me pare che access non accetti la variabile Contatore seguita dai due
punti
Come si fa?
Grazie
Filippo

 Come si fa?
Non č una variabile ma puoi inserire tutta l'espressione come campo
calcolato in una query. Vuol dire "Contatore" č l'Alias per una sottoquery.
L'espressione SQL completo di una semplice query č p.e.
SELECT ID, Pippo, Foo, (Select Count (*) FROM Tabella AS Temp
WHERE Temp.ID<Tabella.ID)+1 AS Contatore
FROM Tabella


 so proprio come si fa ad evitarlo)
devi procedere con un bel compatta e ripristina database dopo aver
cancellato tutti i record.


 E come si fa a ritrovare quello che scrivesti a dicembre?
Sul sito comune dovrebbero esserci i messaggi arretrati. Oppure con
www.deja.com
Comunque, tieni...
Tabella di appoggio "Tab", con un campo long "Num" .
Funzione Cont (x as variant) as long
dim rst as recordset
dim app as long
set rst = currentdb.openrecordset("tab")
rst.movefirst
app = rst.fields("Num")
rst.edit
rst.fields("Num") = rst.fields("Num") + 1
rst.update
set rst = nothing
Cont = app
End function
Nella query metterai un campo calcolato fatto cosě
Contatore: Cont([campoqualunque])
dove campoqualunque č un qualunque campo della tabella dati.
Prima di lanciare la query devi riportare il valore del campo Num a 1
Antonio
Antonio

 Come si fa?
Non è una variabile ma puoi inserire tutta l'espressione come campo
calcolato in una query. Vuol dire "Contatore" è l'Alias per una sottoquery.
L'espressione SQL completo di una semplice query è p.e.
SELECT ID, Pippo, Foo, (Select Count (*) FROM Tabella AS Temp
WHERE Temp.ID<Tabella.ID)+1 AS Contatore
FROM Tabella
--
HTH
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com
Con questo sistema funziona ma non come serve a me.
Mi spiego: Contatore contiene il valore di Tabella.ID reinizializzato a 1
Il mio problema è invece quello di avere in una query di ordinamento un
contatore che parte da 1 DOPO che i record sono stati ordinati
Io avevo usato una sottoquery per ordinare e poi l'espressione SQL
Però il Contatore ripete l'ID della tabella originale prima
dell'ordinamento.
In pratica devo riuscire a:
ordinare i record di una tabella con una query
avere un campo della query con numerazione progressiva da 1 a partire la
primo record ordinato
come si fa e quante query ci vogliono?
Grazie, Filippo

 FROM Tabella
ORDER BY Pippo non funziona come serve a te?
Non so se e' corretto ma e' una idea
Ciao Alessandro

 wrote in message
news:a23oa6$ke3$1...@news.panservice.it...

Il sistema c'è, bisogna vedere come lo vuoi utilizzare.
Se è solo per la visualizzazione in Form utilizza la tecnica
che viene abitualmente usata per la realizzazione della formattazione
condizionale di cui trovi traccia sul SC per il conteggio del
numero di RECORD e l'assegnazione del Progressivo.
Oppure sul sito MVPS.Org c'è un indicazione di come ricrearsi un
campo autoincrementante nelle QRY....!!
Alessandro. (@ALex)
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 come si fa e quante query ci vogliono?
Non hai scritto con quale campo vuoi fare l'ordinamento.
Se p.e. non è ID ma Pippo lo statement per la sottoquery è
(Select Count (*) FROM [Tabella] AS Temp
WHERE [Temp].[Pippo] < [Tabella].[Pippo])+1
L'anno scorso ho scritto un articolo per il KB di MS Germania sul tema:
http://www.microsoft.com/IntlKB/Germany/Support/kb/D45/D45183.htm
Certo è tedesco ;-) ma ci sono anche esempi in SQL e per di più
nel articolo ce un link a
http://www.microsoft.com/downloads/release.asp?releaseid=29437
Su questo sito trovi un download "D41757.exe - 40 Kb" che è un
piccolo mdb di A97 con vari esempi.
Esempi in inglese di Steve Arbaugh trovo sul sito attac:
http://ourworld.compuserve.com/homepages/attac-cg/AQryTip.htm
Esempi in italiano... beh, forse una volta scrivo un articolo per
il sito commune se sia interessante per più gente.


 WHERE [Temp].[Pippo] < [Tabella].[Pippo])+1
Perfetto, FUNZIONA, grazie
Così ho con una sola query, i record ordinati e numerati. Grazie ancora
Ciao Filippo