Newsgroup: it.comp.lang.visual-basic
Titolo: massimo di un vettore

Salve a tutti, avrei un problema da proporvi:
sto scrivendo un programma in Access e sono arrivato ad un punto morto.
Ho 5 tabelle che contengono un campo testo che ha il seguente formato:
01/01, 01/02 etc. Devo isolare la parte di testo a destra di "/" e
convertirlo in numero.
Fin qui ci potrei anche arrivare ma devo trovare il massimo tra i 5 campi
delle mie tabelle.
Qualcuno sa come fare? Io non so come richiamare dei campi da un database.
Vorrei che il valore massimo trovato compaia all'interno di una maschera
access in un text box, è possibile?
Ringrazio fin d'ora chi riuscirà a risolvere questo problema.

 wrote in message
news:975506231.470327@linuxintra...


Ringrazio fin d'ora chi riuscirà a risolvere questo problema.
Beh, se non sono molto grosse, non credo abbia senso usare una query, io farei semplicemente così:
Apro la prima tabella, leggo il primo valore e lo associo ad una variabile "Max"; poi scorro tutta
la tabella e confronto il valore del campo che mi interessa di ogni record con max: se è maggiore,
allora associo  Max questo nuovo valore...
Faccio così fino alla fine della tabella e poi passo alle successive...
Es:
Max=0
'premesso che rs sia un oggetto di tipo Recordset che punta alla tabella che vuoi esaminare
'premesso anche che il campo di tale tabella è "numero"
do
	if rs("numero")>Max then Max=rs("numero")
	rs.movenext
loop until rs.eof
in questo modo ala fine Max contiene il valore massimo per il campo numero di tale tabella..
ora procedi con un altra tabella:
rs=db.openrecordset(Nuovatabella)
e ripeti il ciclo.
Volendo puoi inserire il ciclo in una funzione del tipo:
Function MaxValue (rs as recordset) as long
	do
		if rs("numero")>Max then Max=rs("numero")
		rs.movenext
	loop until rs.eof
end function
così basta che usi:
pippo=MaxValue(tabella1)
dove pippo conterrà il massimo per il campo numero di quella tabella e tabella1 è un oggetto
recrdset (attento non il nome della tabella!) che punta ad una delle tabella...
Il codice proposto è piuttosto grezzo, ma giusto per farti capire il procedimento...
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

 Vorrei che il valore massimo trovato compaia all'interno di una maschera
access in un text box, è possibile?
Un po' confuso, il discorso... E mi viene anche il dubbio che "01/01",
"01/02", ecc. siano i *nomi* dei campi!... Dimmi che non e` vero, per
favore.
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 wrote in message
9036ev$2un6$3...@ID-52090.news.dfncis.de...

mi rendo conto di spiegare malissimo, ma il nome del campo è fattura e
contiene delle stringhe
del tipo 01/01 dove il numero a sinistra rappresenta l'anno e quello a
destra il numero.
Delle cinque tabelle che ho dovrei trovare il massimo numero (quello di
sinistra) e inserirlo in un text box

 Delle cinque tabelle che ho dovrei trovare il massimo numero (quello di
sinistra) e inserirlo in un text box
... e che i numeri non sono ripetuti nelle cinque tabelle? Cioe` gestisci al
massimo 99 fatture fra tutte e cinque le tabelle? Oppure il formato AA/00
non e` realmente quello che sembra da cio` che dici ma e` in realta` AA/0
dove per 0 potremmo avere un numero di cifre qualsiasi?
La questione non e` di poco conto: facciamo l'ipotesi che tu abbia stringhe
del tipo AA/00 dove cioe` il numero sia sempre rappresentato con due
caratteri numerici allineati a destra e riempiti con zeri a sinistra. Una
soluzione in questo caso potrebbe essere:
Query1:
SELECT Max(Fattura) AS MaxDiFattura
FROM Tabella1
UNION
SELECT Max(Fattura) AS MaxDiFattura
FROM Tabella2
UNION
SELECT Max(Fattura) AS MaxDiFattura
FROM Tabella3
UNION
SELECT Max(Fattura) AS MaxDiFattura
FROM Tabella4
UNION
SELECT Max(Fattura) AS MaxDiFattura
FROM Tabella5;
Query2:
SELECT Max(MaxDiFattura) AS MaxDiMaxDiFattura
FROM Query1;
