Newsgroup: it.comp.appl.access
Titolo: strutture cicliche

Buongiorno,
vorrei realizzare il confronto tra campi di uno stesso record e ho pensato 
di utilizzare un ciclo for, però non so come indicizzare i campi.
I campi sono numerici e lo scopo finale è mettere i numeri in ordine 
crescente.
 
per facilità di comprensione la tabella è fatta cosi:
 
ID, n1, n2,...,n10
 
sono in grado di scrivere il ciclo, ma non sono in grado di indicizzare i 
campi del record. Come si fa?
 
Grazie 
 
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

Sembra un compitino di scuola...
 
Dim intFLD As Integer
Dim rs     As DAO.Recordset
 
Set rs=DbEngine(0)(0).OpenRecordset("NomeTabella o Query o SELECT")
For intFLD=1 to 10
   Debug.Print rs.Field("n" & intFLD).Value
Next
 
rs.close
set rs=Nothing
 
Ora vedi tu come gestirli...
 
@Alex


 
Dim oFld as variant
for each oFld in Recordset.fields
	if oFld.name <> "id" then print oFld.value
next
 
(cfr @Alex) oppure così ?
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)


 (La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)
 
L'ogegtto oFld sai che è di tipo Field... PIGRO...! Dichiaralo DAO.FIELD oppure Object non Variant
 
Se lui ha dei campi Indicizzati eviterei di usare questo metodo proprio in quanto serve codice che ESCLUDE PK o Campi non rientranti nel criterio...!
 
Ora vorrei sapere come fa a confrontare i campi dello stesso Record in un Ciclo così....
;-)
 
@Alex

 @Alex
 
grazie provo a vedere che succede

 grazie provo a vedere che succede
 
ancora grazie per la risposta

 ;-)
 
Ero curioso di vedere che dicevi. ;-)
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)
 


Non Funziona cosa significa...?
Cosa ti aspetti da quel codice...?
 
Stampa nella finestra immediata il contenuto dei Campi puntati dal NOME COMPOSTO.
 
Il Recordset ha un sottoinsieme ... i CAMPI... questo insieme si chiama COLLECTION e si chiama FIELDS.
COme tutte le collection sono INDICIZZABILI o puntabili con il Nome... quindi basta comporre il NOme del campo [N1] che è una stringa composta da [N]&[1] ed [1] è quel Puntatore incrementale di intFLD....
 
Quel codice FUNZIONA eccome, ovviamente così come è scritto NON CICLA I RECORD, ma cicla solo il PRIMO RECORD in tutti i suoi campi INDICIZZATI.
 
Poi quel codice non ti consente di confrontare il Campo1 con il Campo10... e li ci arriverai quando hai capito cosa fa quel codice...!
 
Saluti
@Alex
 

 Cosa ti aspetti da quel codice...?
che mi riesca a spostare in orizzontale, mi spiego meglio: ho utilizzato i cicli con altri software in ambito accademico e sempre muovendomi su matrici, pensavo di applicare lo stesso principio muovendomi sulla tabella come se fosse una matrice

approfondirò meglio l'argomento!!! :-)
Saluti

 che mi riesca a spostare in orizzontale, mi spiego meglio: ho utilizzato i cicli con altri software in ambito accademico e sempre muovendomi su matrici, pensavo di applicare lo stesso principio muovendomi sulla tabella come se fosse una matrice
Quali? Su una tabella relazionale?
 
Di fatto quel codice fa proprio quello utilizzando un indice
  "associativo" che e' /la/ soluzione poiche' un indice semplicemente 
numerico (sarebbe possibile)
potrebbe non dare una sequenza ordinata come la vuoi tu.
Il recordset non e' una matrice /bidimensionale/ poiche' per ottenere 
l'indice di riga e'
necessario fare una lettura (movenext) per il record successivo, e' quindi
una matrice di tipo
M(movenext-k-,fieldname-j-)
 
 
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)
 


Grazie Alessandro comincio ad avere qualche risultato!!! ;-)
 
"Alessandro Cara"  ha scritto nel messaggio 
news:bbkcy.37852$pt.3...@tornado.fastwebnet.it...
