COLLEGARE ACCESS AD EXCEL

di il
10 risposte

COLLEGARE ACCESS AD EXCEL

Buongiorno,
ho realizzato un database gestionale con Access 2013 e l'ho collegarlo con un foglio excell gestito da un altro ufficio. Il problema è che i due file, non possono essere aperti in contemporanea. Ho bisogno che il mio programma e il file excell da cui attingo alcuni dati possano lavorare e aggiornarsi sempre, anche quando sono entrambi aperti. Spero di aver posto bene il mio quesito, sono comunque a disposizione per ulteriori chiarimenti. Grazie.

10 Risposte

  • Re: COLLEGARE ACCESS AD EXCEL

    Ciao Gianluca, dovresti essere un po' più specifico riguardo a come hai implementato il collegamento. nel caso utilizzi codice VBA posta il codice relativo.
  • Re: COLLEGARE ACCESS AD EXCEL

    Ciao, non ho usato VBA. Ho caricato i dati di una query del file Access, utilizzando l'opzione di excell, carica dati da access. Il risultato è una query caricata nel file excell i cui record sono in sola lettura. Esempio:
    Cognome Nome Data di Nascita sono informazioni che provengono da access, l'utilizzatore del file excell inserisce dati in ulteriori colonne tipo ore di lavoro, prodotti venduti ecc.
    Il problema è che i due file non possono essere aperti contemporaneamente.
  • Re: COLLEGARE ACCESS AD EXCEL

    L'idea di COLLEGARE foglio Excel con tabella Access è una prassi che non conosco, ma a naso mi sembra ovvio che non puoi aprirli contemporaneamente essendo "collegati" e Excel mostrerà di dati di Access (solo dopo)...penso soprattutto all'ESPORTAZIONE. Non credo ci possa essere sincronizzazione automatica se non con un codice VBA che piloti il tutto...ma poi a che pro?
  • Re: COLLEGARE ACCESS AD EXCEL

    Un gestionale collegato ad un File di Excel è quasi un ossimoro.
    Se in qualche modo colleghi il Foglio di Excel ad Access, via LINKED non dovrebbe essere Editabile per l'assenza di PK a riferimento... in ogni caso Excel non è un Database.

    Il Metodo corretto eventualmente è usare il File di Excel come tramite, quindi dal Gestionale si GENERA il file da dare in pasto a chi lo usa, poi si reimportano le modifiche... altri metodi se non hai un Database nel quale hai le idee chiare di come serva gestire l'accesso concorrente... parliamo di aria fritta.
  • Re: COLLEGARE ACCESS AD EXCEL

    Concordo pienamente con quanto scritto da Alex e Osvaldo (e ci mancherebbe ... )
    Quello che farei io, se ho afferrato il punto, è dimenticarmi del file excel, e far lavorare tutti con Access:

    Creerei su Access una Maschera basata sulla tabella che adesso utilizzi attualmente in excell con le colonne:
    Cognome, Nome, Data di Nascita, ore di lavoro, prodotti venduti ecc.

    Dividerei il Database di Access (Se già non lo fosse) in FrontEnd(Con le varie maschere query ecc) e BackEnd(con i dati).

    Usere una o più copie del FrontEnd nel primo ufficio e
    Darei ai colleghi dell'altro ufficio una copia del FE per poter inserire i dati usando la maschera di cui sopra.

    In questo modo Access, nei suoi limiti, gestirà gli accessi concorrenziali al db e tutti potranno lavorare contemporaneamente.
    Fermo restando quanto detto da Alex, devi avere ben chiaro come gli utenti dei due uffici possono utilizzare il db; se non ritieni possibile che entrambi possano modificare contemporaneamente lo stesso record non vedo grossi problemi
  • Re: COLLEGARE ACCESS AD EXCEL

    Signori, concordo pienamente con quanto detto da tutti voi. Il problema è che talvolta, non si riesce a far capire a chi usa excel come un database, che ci sono altri modi per gestire i dati. Questo è il mio caso, necessito di ricevere costantemente informazioni da un altro ufficio che non vuole lavorare con Access, motivo per cui ho cercato una soluzione alternativa che permettesse al personale utilizzatore di excel di continuare a lavorare come ha sempre fatto e a me di ricevere comunque le informazioni di cui necessito.
  • Re: COLLEGARE ACCESS AD EXCEL

    In attesa che l'altro ufficio si evolva, per quanto riguarda il caricamento dei dati su Excel puoi modificare la stringa di connessione:
    Dalla barra dei menù di Excell->Dati->Connessioni->Proprietà->Definizione->Stringa di Connessione
    Modifichi il valore di Mode='quello che hai' in "Mode=Read"
    In questo modo puoi usare entrambi i file contemporaneamente e aggiornare i dati su Excell anche con Access aperto.

    Non ho capito poi come passi i dati nel verso opposto ossia da Excell ad Access
  • Re: COLLEGARE ACCESS AD EXCEL

    Grazie per il suggerimento ma ho risolto (parzialmente) il problema creando prima una connessione dalla scheda dati di excel e poi ho caricato i dati esterni da connessioni esistenti e non da access. In questo modo entrambi i file lavorano e si aggiornano (ogni minuto).
    Ora vorrei che i dati caricati fossero modificabili anche da excell. Premetto che quando ho creato la connessione ho dato autorizzazione di lettura e scrittura, ma nonostante questo se modico un dato, dopo l'aggiornamento questo viene eliminato.
  • Re: COLLEGARE ACCESS AD EXCEL

    Premetto che non sono un esperto ma non credo che esista il modo di importare dati in Access da Excel mentre il file Excel è aperto. Anche da codice sia il metodo TransferSpreadsheet che altri metodi di importazione dati con le stringhe di connessione che conosco richiedono che il file excel sia chiuso.
    Allo stesso modo, in Excel, quando importi i dati da Access, i dati modificati verranno sempre sovrascritti ad ogni aggiornamento.

    Una soluzione contorta e concettualmente non corretta potrebbe essere utilizzare un terzo file da utilizzare come tramite che chiamerò Caronte.xls (che potrebbe essere anche un file di Access .acdb) :
    Importi i dati dalla tabella di access sul tuo file excell come hai già fatto, gli utenti possono aggiungere dati in altre colonne ma non modificare quelli importati (le modifiche verrebbero sovrascritte).
    Nel file Excell, da codice ti crei un timer che a intervalli stabiliti esporti il contenuto del tuo file modificato nel file Caronte.xls
    Su Access, da codice, crei una routine da eseguire sull'on Timer di una maschera nascosta (da caricare all'apertura del db) che importi i dati da Caronte.xls alla tabella di partenza ad intervalli stabiliti. Il tutto facendo attenzione a quali colonne devono comparire in Caronte.xls e a gestire con criterio l'importazione in Access del tutto.

    Riterrei molto più produttivo insegnare ai reticenti ad usare Access.
  • Re: COLLEGARE ACCESS AD EXCEL

    Ho risolto diversamente, ho creato una tabella collegata ad excel nel mio programama (la tabella non verrà mai aperta quindi non darà mai problemi di conflittualità in caso apertura contemporanea). Ho creato una query di aggiornamento che aggiorna solo i campi di cui ho bisogno nella tabella anagrafica che ho collegato all'excel dell'altro ufficio. Ovviamente ho creato una macro che si attiva su apertura maschera principale del database così i dati saranno sempre aggiornati ogni volta che apro il programma. Funziona bene. Riassumendo :
    - Ho creato una connessione con il mio database access su excel
    - Ho condiviso la mia anagrafica con excell mediante carica dati da connessioni esistenti
    - Ho inserito delle nuove colonne dove l'altro ufficio inserirà i suoi dati di competenza
    - Ho collegato il file excell all'interno del mio programma
    - Ho creato una query di aggiornamento dati che agisce sulla mia tabella anagrafica di access aggiornando solo le informazioni che ha inserito l'altro ufficio.
    - Ho creato una macro su apertura maschera che attiva la query di aggiornamento.
Devi accedere o registrarti per scrivere nel forum
10 risposte