PDA

Visualizza versione completa : Ottenere il valore più alto...


Fast-M
02-11-2004, 16.52.56
Salve, per ottenere il valore più alto in un campo di una tabella come conviene procedere?
Ho già usato il metodo del:
rs=db.OpenRecordset("........")
rs.moveLast
max=rs.RecordCount
-----------
ma se io volessi proprio conoscere il massimo valore e non l'ultimo record inserito, come dovrei fare?
Ho provato con:
rs.MoveLast
max=rs.Fields("campo1")
ma mi da problemi e non funziona!
Un aiuto?!
:|

LoryOne
02-11-2004, 17.10.15
Devi usare MAX().
Select Max(nomecampo) as nomecampovirtuale from nometabella

LoryOne
02-11-2004, 17.14.51
db.execute Insert into tabella1 (campo1,campo2) values(SELECT MAX(Campo) As valcampo1,quello che deve essereci nel campo2)

Ps: Ora non ricordo, forse il nome del campo virtuale in questo caso non serve...prova.

Fast-M
02-11-2004, 17.16.06
ma quindi all'interno della stringa sql, cioè:
max=rs.Fields("Select Max(campo1) from Tabella1")
??

LoryOne
02-11-2004, 17.18.39
No, attento alla sintassi.
Punto primo:
Se esegui una query d'azione non creare un recordset.
Punto secondo:
Se esegui una query di selezione, prima compila il recordset con la query, poi accedi alle colonne del recordset con rs.fields().

Stai facendo una confusione terribile.

Fast-M
02-11-2004, 17.35.59
Si vero!
Ti riferivi quindi a:

set rs=db.OpenRecordset("Select Max(..........))
rs.fields()

O sbaglio?
:|

Fast-M
02-11-2004, 17.37.27
Comunque ci sono arrivato semplicemente con:

max=DMax("[campo1]", "Tabella1")

Che ne pensi?

LoryOne
02-11-2004, 18.55.56
Penso che ci sono anche DFirst,DLast,DMin :D
Non ho mai utilizzato queste funzioni della classe Application ma se funzionano buono a sapersi ;)