Newsgroup: it.comp.appl.access
Titolo: Domanda da nuovo (e poco esperto ) utente su query

Spero mi possiate aiutare a risolvere il mio pb.
Tramite una query parametrica riesco ad ottenere un record che mi mostra i
valori di alcuni campi. Ho bisogno di trovare il min. e il max. tra un
gruppo di questi valori, in modo da poterli inserire in un Report.
Ad es.: voglio trovare il min e max tra i seguenti 5 valori dei campi di un
record
Num. pieghe1 - Num. pieghe2 - Num. pieghe3 - Num. pieghe4 - Num. pieghe5
 70             75             73             76             72
La creazione guidata Report mi permette di trovare e mostrare il min e max
tra tutti i valori del campo Num. pieghe 1 (o degli altri quatrro) ma
invece
io voglio paragonare i valori "per righe", non "per colonne".
Come fare?
Grazie in anticipo a chi puň darmi suggerimenti.
Nuvj
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 --
Ciao Nuvj,
il problema da te presentato non si può risolvere con una query SQL standard
perchè la particolarità del linguaggio SQL è quella di essere SET-Oriented,
mentre quello che ti proponi di fare è orientato ai singoli valori di
ciascura riga.
La questione si risolve con una procedurina giovane e veloce e con due
funzioni banalissime.
Supponendo che tu abbia una tabella chiamata 'Test_X_Nuvj', creati un nuovo
modulo access ed incollaci il seguente
codice. Esegui poi la sub trovaMaxmin() e leggerai i risultati sulla
finestra immediata di debug.
Il codice è sufficentemente commentato.
Provala e fammi sapere.
Se hai difficoltà, SIAMO tutti in ascolto.
Ciao.
--
Simplex2
www.mdenittis.it
Option Compare Database
Option Explicit
' --------------------------------------------------------------------------
----------------------
Public Function Max(RS As DAO.Recordset) As Integer
' Calcola il massimo dei valori di una colonna
' Il controllo sulla posizione del cursore è delegata all'esterno.
Dim counter As Integer
Dim NumOfFields As Integer
' prelevo il numero dei campi della tabella
NumOfFields = RS.Fields.Count
' inizializzo il massimo
Max = RS.Fields(0)
For counter = 1 To NumOfFields
    Max = IIf(Max >= RS.Fields(counter - 1), Max, RS.Fields(counter - 1))
Next counter
End Function
' --------------------------------------------------------------------------
----------------------
Public Function min(RS As DAO.Recordset) As Integer
' Calcola il minimo dei valori di una colonna
' Il controllo sulla posizione del cursore è delegata all'esterno.
Dim counter As Integer
Dim NumOfFields As Integer
' prelevo il numero dei campi della tabella
NumOfFields = RS.Fields.Count
' inizializzo il minimo
min = RS.Fields(0)
For counter = 1 To NumOfFields
    min = IIf(min <= RS.Fields(counter - 1), min, RS.Fields(counter - 1))
Next counter
End Function
' --------------------------------------------------------------------------
----------------------
Public Sub trovaMaxmin()
' Stampa sulla finestra di debug i massimi ed i minimi della tabella
Test_X_Nuvj
Dim recset As DAO.Recordset
Dim MySql As String
' Esegue la query
MySql = "SELECT * FROM Test_X_Nuvj"
Set recset = CurrentDb.OpenRecordset(MySql, dbOpenDynaset)
' stampa il valore massimo ed il minimo di ogni riga sulla finestra
immediata del debugger
While recset.EOF = False
    Debug.Print Max(recset) & ", " & min(recset) & vbCrLf
    recset.MoveNext
Wend
End Sub

 ----------------------



 Nuvj
La soluzione di Simplex è corretta, ma io mi chiedo 
se a monte non ci possa essere una non corretta struttura
tabellare che complica la vita.
Solitamente in esempi come questo non si inseriscono N campi
ma si sfruttano relazioni 1--Molti.
Non conoscendo la reale esigenza, magari già pienamente valutata,
mi limito solo ad ipotizzare questa eventualità ed eventualmente
a valutarla.
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG