GioVe
[Risposta]
Le matrici si dimensionano cosě:
'//All'inizio del Modulo specifica
Option Base 1
Dim TuaMatrice(7,3)
'//Se non specifichi Option Base 1
'//la matrice parte da 0
Dim TuaMatrice(6,2)
E' importante sapere di che tipo sono i dati nella matrice
altrimenti saranno di tipo Variant(16Byte)
Dim TuaMatrice(6,2) as Integer '// Solo 2Byte
Se un domani avrai bisogni di altre righe o colonne:
ReDim TuaMatrice(99, 99) As Integer
-------------------------------------------------------
Ti ricordo che anche una Tabella č una Matrice, quindi se
devi poi salvare i dati in Tabella forse ti conviene usare
direttamente la Tabella.
E' un pň piů brigoso aggiungere Colonne, ma Righe direi
che č elementare.
Per vedere una Tabella come una Matrice puoi accedere
agli oggetti Recordset e Fields.
Dove Recordset rappresenta la Riga, č infatti indicizzato
e puoi spostarti sulla riga 10 con l'istruzione MoveTo.
Le colonne sono rappresentate dai Campi Fields(Index).
Leggi l'Help per qualsiasi dubbio.
Ciao.
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------
E' proprio questo il problema.
Come si fa a inserire una matrice in una tabella?
La mia matrice ha per righe la data in cui sono cambiate e cambieranno le
aliquote Enasarco, per colonne la misura di tali aliquote.
Come creo praticamente la tabella che accoglierà questi dati?
> E' un pò più brigoso aggiungere Colonne, ma Righe direi
> che è elementare.
> Per vedere una Tabella come una Matrice puoi accedere
> agli oggetti Recordset e Fields.
> Dove Recordset rappresenta la Riga, è infatti indicizzato
Ciao, Gio.Ve.
Prima di preoccuparmi delle righe che diventeranno otto, io mi
preoccuperei di capire come mai attualmente sono sette.
Ovvero, dato che una matrice non ge'rmina spontaneamente, come mai e
perche' hai tale matrice? Da dove proviene? Chi o che cosa ha creato tale
struttura dati?
--
(Facci sapere se ed eventualmente come hai risolto. Grazie.)
Ciao :o)
Maurizio Borrelli, Microsoft MVP - Office Systems - Access
--------
?SPQR(C)
X
--------
Ciao, @Alex.
Meglio di tutto sarebbe ignorare "Option Base" e prendere la buona
abitudine di dichiarare sempre esplicitamente i limiti, superiore e
inferiore. Tanto piu' che tali limiti possono essere non solo 0 o 1 ma un
qualsiasi numero intero nell'intervallo dei Long. Per esempio:
Dim TuaMatrice(-8 To 25, 31 To 32) As <...>
ovvero una matrice bidimensionale di:
UBound(TuaMatrice, 1) - LBound(TuaMatrice, 1) + 1
cioe' 34 elementi per:
UBound(TuaMatrice, 2) - LBound(TuaMatrice, 2) + 1
cioe' 2 elementi.
--
Ciao Maurizio.
Certo quello che dici è ineccepibile.
Ho evidenziato Option Base perchè è un errore tipico che viene
commesso, ovviamente la tua considerazione taglia ogni dubbio.
Ciao
GioVe
Se le metti in EXCEL oppure in un foglio di Testo tipo Notepad
poi le importi in Access con la procedura guidata fai tutto.
Se la 1° e la 2° colonna sono = una delle 2 forse non serve.
Per la 3° essendo frutto di un calcolo non si deve inserire
nella tabella, ma nella Maschera che userai per visualizzare
inserirai un Controllo(non un campo) Calcolato.
Ciao, GioVe.
Ecco, appunto!... Non ci hai ancora detto chi ha creato tale matrice,
ovvero chi ha deciso che la matrice debba essere... una matrice.
Se la decisione l'hai presa tu... e se nessuno ti obbliga a gestire tali
dati con una matrice, perche' non consideri di eliminare la matrice e
gestire quei dati con una tabella?
Un'altra cosa non mi e' chiara. Posto che tu abbia una matrice, chi
popola tale matrice? Tu copi i dati dal Sole 24 Ore, ok. Ma quando li copi
dove li scrivi?
Ho anche il sospetto che quando tu parli di "matrice" intendi una cosa
diversa da cio' che intendiamo @Alex ed io. Noi ci riferiamo ad una ben
precisa struttura dati di Visual Basic. Tu forse usi la parola "matrice" in
senso generico, per definire un insieme di dati in righe e colonne.
Aiutaci a capire.
--
GioVe
Ciao, GioVe.
Ok. Ora la questione mi sembra piu' chiara.
Considera prima di tutto che una tabella (di access) e' una matrice, una
matrice come la intendi tu, come la si intende nel parlare comune. Proprio
un insieme di righe e colonne. Le colonne si chiamano campi, le righe
record.
La tua tabella quindi e' destinata a conservare lo storico delle
aliquote (enasarco). Perche' allora non chiamarla "ENASARCO Storico"? O
qualcosa del genere?
Ogni record conterra' tutte le informazioni relative ad una variazione.
Quali sono queste informazioni? Ci hai parlato di una data (di entrata in
vigore, suppongo) e di due aliquote, delle quali non mi sembra tu ci abbia
detto il "nome" o descrizione. Mettiamo si chiamino Aliquota1 e Aliquota2.
Quindi la tua tabella "ENASARCO Storico" possiedera' i campi:
DataInizio, di tipo data/ora
Aliquota1, di tipo numerico singolo
Aliquota2, di tipo numerico singolo
Non sono necessari altri campi in quanto otterrai la somma Aliquota1 +
Aliquota2 per mezzo di una query.
Per ora mi fermo qui. Penso anche che dovrebbe esserti utile leggere il
seguente capitolo della "Guida in linea di Microsoft Access":
Creazione e utilizzo di database
GioVe