Importare e collegare un foglio di lavoro di Excel in Access

di il
6 risposte

Importare e collegare un foglio di lavoro di Excel in Access

Buonasera !

Premetto che ho già chiesto questa cosa in un forum di Excel, e mi hanno consigliato di rivolgermi in questo o altro forum di Access.

Voglio importare e collegare un foglio di lavoro di Excel ad una tabella di Access, ma solo le righe con i dati, e non tutto il foglio di lavoro di Excel che può arrivare ad oltre 1.000.000 di righe ed oltre 60.000 colonne.

Come si può fare ?

Saluti e buona Pasqua a tutti.

6 Risposte

  • Re: Importare e collegare un foglio di lavoro di Excel in Access

    ProgrammD ha scritto:


    ...
    Voglio importare e collegare
    Importare non è collegare: con l'importazione i dati su Access sono totalmente staccati da quelli che erano su Excel, conseguentemente la variazione su uno dei due non si riflette automaticamente sull'altro, cosa che invece avviene con il collegamento quando i dati, pur essendo accessibili come "tabella" in Access restano comunque conservati in un foglio di Excel e la modifica fatta attraverso uno dei due programmi (aprendo il foglio Excel o attraverso query / codice da Access) è unica. (spiegazione molto sommaria ma vale a rendere un po' l'idea)

    ProgrammD ha scritto:


    ...un foglio di lavoro di Excel ad una tabella di Access, ma solo le righe con i dati, e non tutto il foglio di lavoro di Excel che può arrivare ad oltre 1.000.000 di righe ed oltre 60.000 colonne.
    Una volta deciso se importare o collegare si può ragionare di conseguenza.
    Ipotizzo l'importazione.
    Il problema principale è dato dal numero delle colonne che dovrebbero rappresentare i campi: 60.000 è impensabile, una tabella di Access ne ammette massimo 255 (prova a vedere qui le altre "limitazioni" di Access 2010, ad esempio: https://support.office.com/en-us/article/Access-2010-specifications-1e521481-7f9a-46f7-8ed9-ea9dff1fa854
    Qui ci sono vari esempi di importazione
    Cerca di identificare le colonne che veramente servono, sperando che i dati rilevanti siano sempre nelle stesse colonne e non sparsi qua e là, altrimenti è veramente difficile. Esiste una colonna già utilizzabile come chiave primaria? o più colonne che possono costituire una pk multicampo?
    Immagino che questa "supertabella" su excel abbia bisogno, poi, di essere normalizzata. Se sei costretto a superare il limite delle 255 colonne - campi su Access potresti importare in tabelle diverse creando N relazioni 1 ad 1 tra le varie tabelle, per poi poter appunto "normalizzare" ed avere tabelle degne di essere chiamate tali in un DB.
    Spero che non ci siano anche "oggetti pesanti" da importare (tipo immagini o simili) perché altrimenti 1.000.000 di record potrebbero superare, con questi oggetti pesanti, il limite dimensionale del database (dimensione del file).
    Devi importare tutte le righe - record o anche lì bisogna fare dei distinguo?
    Per ora non saprei cosa suggerire di più. Aspettiamo lumi sul contento e importanza delle colonne.
  • Re: Importare e collegare un foglio di lavoro di Excel in Access

    Sto creando un piccolo programma per gestire una piccola attività. I calcoli ed i report li faccio con Excel, mentre Access è l'archivio.
    Nel foglio di lavoro di Excel ci sono al massimo 30 colonne.
    Il punto è il numero di righe in Excel (più di 1.000.000) che poi diventano i record in Access.
    Con il collegamento tra Excel ed Access, come si può limitare il collegamento ai soli righi con dati di Excel ?
  • Re: Importare e collegare un foglio di lavoro di Excel in Access

    ProgrammD ha scritto:


    ... I calcoli ed i report li faccio con Excel, mentre Access è l'archivio.
    ...
    Con il collegamento tra Excel ed Access, come si può limitare il collegamento ai soli righi con dati di Excel ?
    Porta pazienza ma non capisco: nel primo post parlavi di ipotetiche 60.000 colonne, ora sembra che siano solo 30. Dici che Access è l'archivio però poi vuoi limitare il collegamento ai soli righi con dati di Excel: dove sono i dati, su Access o su Excel? In ogni caso, quando si tratta di gestione "mista" Access-Excel non sono a mio agio, quindi oltre a non aver capito la situazione, probabilmente non saprei nemmeno come aiutarti "in generale". Ti conviene confidare nell'aiuto di qualcun altro.
  • Re: Importare e collegare un foglio di lavoro di Excel in Access

    È impossibile fornirti aiuto se non dici:
    - di cosa parla il tuo database
    - i nomi propri delle tabelle
    ...non mi dilungo in altre necessarie richieste base per rendere comprensibile di cosa si sta parlando. Inoltre occorre sempre (è un brutto vecchio vizio o fatale errore) non confondere la logica di Excel con la logica di Access.

    Perdonami ProgrammD, non prenderla come un'offesa. Leggo molti tuoi thread, ma non ti sforzi mai di descrivere CHIARAMENTE tutto lo scenario. Quando si scrive occorre anche provare a mettersi nei panni di chi legge.
    Ripeto, chiedo scusa se mi sono permesso di dirlo.
  • Re: Importare e collegare un foglio di lavoro di Excel in Access

    Ripeto la domanda fatta all'inizio della discussione.

    Voglio collegare un foglio di lavoro di Excel, e solo dove ci sono dei dati, ad esempio l'intervallo A1:Z100, in un database di Access.
    Voglio che nel database di Access ci siano solo i dati inclusi nell'intervallo A1:Z100 e non tutte righe e colonne di Excel.
    Come si può fare ?

    Credo di essere stato chiaro.

    Saluti e buona Pasqua.
  • Re: Importare e collegare un foglio di lavoro di Excel in Access

    Cercando di rimanere nel campo TECNICO...quando dici "COLLEGARE" occorrerebbe capire tu cosa intendi, e non mi riferisco a giri di parole per comprendere il termine italiano ma a cosa e come tecnicamente credi di poter gestire i DATI di quelle celle collegate, dal momento in cui sai o dovresti sapere(da quì la domanda) che un foglio di Excel non ha un legame relazionale e non è un Database, la Tabella "Collegata" potrebbe risultare READONLY non avendo ChiaviPrimarie..., motivo per cui io, nella mia ignoranza, se sento Collegare ho più dubbi che certezze...!

    Altro motivo è che in sostanza si può fare tutto in tanti modi, e la guida in linea almeno uno semplicissimo lo espone con tanto di spiegazione... che fa qualcosa che potrebbe avvicinarsi(Leggi bene la guida alla proprietà TransferType)....
    TransferSpreadsheet
    https://msdn.microsoft.com/en-us/library/office/ff844793.aspx
    https://support.office.com/en-us/article/Import-or-link-to-data-in-an-Excel-workbook-a1952878-7c58-47b1-893d-e084913cc958


    Si potrebbe aprire un Recordset sul Foglio puntando al RANGE specifico, se leggi bene come si apre un Database scopri che la proprietà Connect supporta il Driver di Automazione di Excel.
    Si può importare il Range, editarlo in Access e poi riesportarlo...
    Si può lavorare con Automazione
    Si può fare un sacco di cose... e di tutte le possibilità tu non ne hai trovata nè provata 1...?

    Ecco spero di essere stato chiaro altrettanto io... se hai dubbi chiedi pure.
Devi accedere o registrarti per scrivere nel forum
6 risposte