Newsgroup: it.comp.appl.access
Titolo: Controllare la proprietà column

Ciao a tutti i partecipanti al NG.
Cerco di risolvere una problematica che viene fuori quando il database
diventa di notevoli dimensioni e la casistica diventa incontrollabile.
All'inizio ho creato delle caselle combinate o di riepilogo dalle quali
traggo dei dati attraverso l'uso della proprietà "Column" con l'indice
numerico della colonna: 0,1,2,3 ecc.
Successivamente, per chissà quale motivo, la casella di riepilogo/combinata
viene modificata e non ci si accorge che alcuni dati cominciano ad essere
errati.
Mi chiedo: esiste un metodo per far si che ciò non accada? Oppure è
possibile sostituire l'indice con il nome del campo a cui ci si vuole
riferire?
Grazie a mi darà delle risposte!
Ciao
Paolo Mazzanti

 ha scritto nel messaggio
news:10019422...@fusilla.abanet.it...

Non capisco che cosa vuoi dire con il discorso:
Successivamente, per chissà quale motivo, la casella di riepilogo/combinata
viene modificata e non ci si accorge che alcuni dati cominciano ad essere
errati.
se puoi essere più chiaro!?
Per quanto riguarda il secondo quesito visto che una casella di riepilogo o
combinata ha come fonte dei dati da una query ti puoi riferire a
quest'ultima con i nomi dei campi.
Ciao Roberto - Syd

 Ciao Roberto - Syd
Infatti mi chiedevo se c'era un modo di riferirsi all'istruzione SQL della
casella combinata o di riepilogo, con i nomi invece di usare il numero delle
colonne. Tutto questo senza creare altre query.
Grazie
Ciao
Paolo Mazzanti
(scusa il ritardo!)

 ha scritto nel messaggio
news:10026643...@fusilla.abanet.it...

Facciamo conto che la tua query che alimenta la tua combobox si chiama pippo
per accedere ai campi della query pippo devi fare cosė:
dim db as DAO.Database
dim rs as DAO.Recordset
set db = currentdb
set rs = openrecordset("pippo")
rs.fields("NomeCampo")
etc...
Ciao Roberto - Syd

 Ciao Roberto - Syd
OK, ti ringrazio, terrò presente per il futuro. Ma a volte il database non è
fatto usando il codice e a volte ci si riferisce ad una casella combinata
esistente in una maschera.
Ad esempio mi porto dietro questo codice steso alcuni anni fa:
...............
     MTV.Seek "=", FV!EleSfa.Column(0, RigaC), FV!EleSfa.Column(1, RigaC),
FV!EleSfa.Column(5, RigaC)
.........
come vedi l'uso della proprietà column comporta il riferimento al numero
della colonna. Questo riferimento a distanza di tempo diventa insignificante
quando si rimettono le mani al codice. Poi come ti dicevo è stato
sufficiente (per necessità) aver cambiato il numero di colonne totali del
controllo, per ottenere una serie di dati sballati senza che nessuno si
fosse accorto.
Da qui la necessità di riferirsi alla colonna giusta non con un numero ma
con il nome del campo.
Non ho intenzione di rimettere mano a tutta l'impostazione del codice di
questo database cresciuto dalla versione 1-2 di Access, ma solo apportare
quei piccoli miglioramenti per renderlo più sicuro.
Secondo te potrei usare la RowSource e il nome del campo per avere un
riferimento più preciso?
Grazie
Ciao
Paolo Mazzanti da casa

[CUT]

La rowsource la puoi usare in questo contesto:
dim db as DAO.Database
dim rs as DAO.Recordset
set db = currentdb
set rs = openrecordset(Me.CasellaCombinata.RowSource)
msgbox  rs.fields(0).Name 'Visualizza il nome del primo campo
ma non credo per l'utilizzo che ne devi fare ti possa servire.
Ciao Roberto - Syd

 Ciao Roberto - Syd
Ti ringrazio molto!
Invece credo proprio che mi possa servire!
Non lo proverò a breve perchè sono preso da altre cose, ma credo proprio che
faccia al caso e mi suggerisce di utilizzare lo stesso metodo per ottenere
il set di records filtrato di una maschera, al quale riapplicare altri
filtri a catena (vedrò).
Dal punto di vista dell'utente credo che tu sia fra i primissimi posti di
tutte le persone che operano nei NG, per il grado di risposta che dai ai
quesiti. Sempre precisa, esauriente, pertinente.
Grazie ancora
Ciao
Paolo Mazzanti
ph...@mazzanti.it