Partendo da un file Excel (in realtà i file sono molti e tutti con dati diversi, ma trovata la soluzione per uno il resto è scontato) che contiene moltissimi dati formattati come segue (lo scrivo come fosse un file ASCII ma sappiate che è un foglio Excel ed ogni dato è in una colonna ben definita, per un totale di 3 colonne ma con migliaia di righe):
Nota: praticamente ogni “NOME” presenta un valore ogni giorno diverso, ed i “…” stanno a significare che la base dati è molto + estesa di quanto non abbia riportato nell’esempio qui sopra.“NOME, DATA, VALORE”
…
…
Abc, 10/10/06, 150
Abc, 11/10/06, 149
Abc, 12/10/06, 160
…
…
Def, 10/10/06, 50
Def, 11/10/06, 55
Def, 12/10/06, 48
…
…
Ghi, 10/10/06, 76
Ghi, 11/10/06, 75
Ghi, 12/10/06, 70
…
…
l’obiettivo è importare tutti i dati del suddetto file xls (ed anche quelli di tutti gli altri) in un Database Access.
Più specificamente vorrei caricare (con un’unica query ?!?) i dati in più tabelle, una tabella per ogni “NOME”, ognuna della quali dovrà memorizzare record composti dai campi “NOME, DATA, VALORE”.
In questo modo sarà quindi possibile associare delle informazioni supplementari ad ogni record di tutte le Tabelle “NOME” al fine poi di filtrare i dati, estraendo solo quelli corrispondenti ai criteri stabiliti, esportandoli (con un Report) nuovamente in formato Excel, cioè in un file (.xls) che dovrà essere così formattato:
Il file Excel così ottenuto presenta adesso una “DATA” unica per ogni record di ogni Tabella “NOME”. I “NOMI” sono stati quindi posizionati suddivisi per colonne (uno per colonna) piuttosto che per righe consecutive (con inutili e scomode ripetizioni), come lo erano nello schema di file che ho descritto all’inizio del post.“DATA, Abc, Def, Ghi, …”
…
…
10/10/06, 150, 50, 76, …
11/10/06, 149, 55, 75, …
12/10/06, 160, 48, 70, …
…
…
In questo modo con il nuovo file Excel opportunamente formattato ed ottenuto a mezzo dei filtri applicati alla base dati presente in Access, sarei in grado di impostare “facilmente” in Excel tutte le formule matematiche ed i conteggi del caso.
Infine, tanto per dare qualche ordine di grandezza della base dati, i tipi “NOME” da gestire sono circa 10.000, ed ogni Tabella “NOME” dovrà contenere circa 1.000 record.
Quindi mole di dati colossale. Visto che le dimensioni del database saranno enormi, quello che mi è possibile fare è creare 3 database completamente diversi di circa 5.000, 2.000 e 3.000 “NOMI” ciascuno.
** DOMANDE: **
1) Credete sia possibile gestire questa mole di dati, specialmente riguardo al discorso di un DB con 5.000 tabelle?
E’ possibile creare una query collegando 5.000 tabelle (dove la chiave principale è il campo “NOME”)?
La vedo un po’ dura la eventuale costruzione “grafica” della query, dove mi troverei a trascinare i campi chiave per creare le correlazioni tra 5.000 tabelle. Che ne dite?
Che tempi di esecuzione è lecito attendersi per l’esecuzione di una query che “filtra” 5.000 tabelle?
2) Forse è possibile ottenere il secondo file Excel descritto (coi “NOMI” suddivisi in colonne) senza creare tutte le tabelle di cui parlo o in modo + veloce e/o meno complicato? Come?
3) Partendo dalla base dati presente nel primo file di Excel descritto, esiste qualcosa di “automatico” da impostare in Access per generare una tabella per ogni “NOME” piuttosto che creare manualmente tante tabelle tutte uguali, una appunto per ogni “NOME” (operazione che dovrà quindi precedere quella di “travaso” dei dati dal foglio Excel iniziale nella varie tabelle)?
4) Problema principale: è tecnicamente possibile “travasare” i dati (magari con un’unica query), così come presenti nel primo foglio Excel, suddividendoli in base al campo “NOME” ed inserendoli ognuno nella propria Tabella “NOME”? Come?
Grazie