Ciao Alessandro
A dicembre scrissi una soluzione per questo problema...
Antonio
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
No. Non esiste. Ma puoi usare SQL per farti un contatore. p.e.
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
No. Va bene con Jet.
> A me pare che access non accetti la variabile Contatore seguita dai due
> punti
> 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
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
Filippo Vinciguerra ha scritto:
> Karl Donaubauer 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
> >
> La soluzione di Karl prevede l'uso di ANSI SQL e non di JET SQL.
No. Va bene con Jet.
> A me pare che access non accetti la variabile Contatore seguita dai due
> punti
> 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
ORDER BY Pippo non funziona come serve a te?
Non so se e' corretto ma e' una idea
Ciao Alessandro
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
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.
Perfetto, FUNZIONA, grazie
Così ho con una sola query, i record ordinati e numerati. Grazie ancora
Ciao Filippo