Importazione automatica di alcune colonne di un file xls

di il
11 risposte

Importazione automatica di alcune colonne di un file xls

Salve
ho realizzato un database, chiamato Trasporti, in access 2007 e avrei necessità di importare i dati contenuti un file .xls che mi arriva tutti i giorni, il file xls ha nome diverso tutte le volte, dati diversi ogni volta ma stessa struttura nel senso che le intestazioni di colonne sono sempre uguali:
Es.
ipotiziamo che il file ha 4 colonne che si chiamano: a - b - c - d.

ora io voglio importare ed accodare ogni giorno i dati contenuti solo nelle colonne:
a - b

in una tabella del database chiamata: distribuzione
vorrei poter fare questo mediante un pulsante. non posso utilizzare la procedura automatica d'importazione con accodamento perchè non mi fa scegliere le colonne e poi comunque e una procedura da ripetere tutti i giorni.

lo stesso problema c'è l'ho con l'importazione nello stesso database e tabella di un file .txt inviato da altro fornitore, ma qui penso che diventa più complicato per il tipo di file.
Percui vorrei intanto risolve l importazione del file .xls

Aggiungo che i dati contenuti nelle colonne a - b del file .xls li devo accodare rispettivamente ai dati contenuti nelle colonne x - y della tabella "distribuzione" del database "trasporti"

Potete aiutarmi?

11 Risposte

  • Re: Importazione automatica di alcune colonne di un file xls

    Sarebbe fantastico se in automatico premendo il pulsante per importare i dati dal file .xls, potessi anche spostare il file dalla cartella "c:\\dati" dove io lo salvo tutti i giorni alla cartella "c:\\importati"
  • Re: Importazione automatica di alcune colonne di un file xls

    Domiasrls, leggi con attenzione il regolamento del forum sul crosspost, che segnalo
  • Re: Importazione automatica di alcune colonne di un file xls

    Ciao, ti invito a leggere il regolamento altrimenti mi tocca chiuderti i post.
  • Re: Importazione automatica di alcune colonne di un file xls

    Buongiorno a tutti.
    Sono un nuovo iscritto e mi permetto di provare a dare una risposta a 'domiasrls', per la soluzione del suo problema, sperando di non infrangere il regolamento (in tal caso me ne scuso anticipatamente).
    Tempo addietro anch'io mi sono dovuto cimentare con un problema analogo e, pertanto, penso che tu possa comportarti così:
    1) Crea una maschera che ti apra una commondialog per la ricerca del file da importare ( *.xlsx; *.xlsm; *.xls);
    2) In una casella di testo, chiamata per esempio "Results", della suddetta maschera assegna come valore il nome del file selezionato con la commondialog;
    3) Inserisci, sempre nella suddetta maschera, un pulsante di comando che, quando premuto, esegua le seguenti istruzioni:
    A) dichiara una variabile per definire il file di importazione (per esempio 'ImportFile = Me!Results');
    B) importa il file selezionato (Results) in una tabella temporanea creata appositamente nel tuo database e svuotata da dati eventualmente già presenti (per esempio tblImpTemp), attraverso l'istruzione 'TransferSpreadsheet';
    C) attraverso un'istruzione VBA, oppure Sql, copia le colonne interessate dalla tabella 'tblImpTemp' nella tua tabella definitiva.

    Ettore56.
  • Re: Importazione automatica di alcune colonne di un file xls

    Ciao
    Scusa il ritardo ma visto le fesserie fatte sopra pensavo non vi fossero risposte percui intanto grazie.
    Premesso che sono un pivello con il vba cerco di ragionare sulla tua risposta:
    metto da parte la costituzione di una commondialog con casella di testo per selezionare il file .xls o xlsx o xlsm la cui realizzazione l affronto dopo e vado al punto B.
    con questo codice
    docmd.transferspreadsheet acimport,"tabellatemporanea","c:\dati\*.xls,"false","a2:cs300"
    vado a importare i dati dal file .xls dalla sua cartella alla tabelle temporanea.
    Qui vi viene già il primo dubbio perchè così facendo importo tutti i dati di tutte le colonne nel range indicato, che poi è quello su cui devo operare.
    io però devo importare "solo" 15 colonne presenti in questo range e solo le righe con i dati, il cui numero può variare di volta in volta.
    come mi consigli di procedere?
  • Re: Importazione automatica di alcune colonne di un file xls

    Ciao.
    Purtroppo se non hai un minimo di conoscenza del codice VBA, credo sia quasi impossibile riuscire ad automatizzare il tuo processo d'importazione e trasferimento dei file importati da una cartella all'altra.
    Ciò premesso, per rispondere al tuo quesito, dovrei capire, intanto, se il numero di righe da saltare, nella fase d'importazione, è sempre costante, e se le stesse sono sempre posizionate allo stesso punto del file di Excel.
    Per quanto riguarda invece l'importazione dei dati di "solo 15 colonne", potresti affidarti, per esempio, alla semplice creazione automatica di una query di accodamento.
  • Re: Importazione automatica di alcune colonne di un file xls

    Ciao
    si la struttura del file d'importazione è sempre la stessa e le colonne pure, ma è un file con circa 90 colonne i cui dati per lo più a me non servono.
    Non conosco il linguaggio VBA, solo cose semplici, ma comunque leggendo e adattando ho comunque realizzato un db molto utile che utilizzo sul lavoro da molti anni ora però vorei automatizzare alcune fasi e si entra più nel tecnico.
  • Re: Importazione automatica di alcune colonne di un file xls

    domiasrls ha scritto:


    ... si entra più nel tecnico.
    Quindi, non sarebbe una cattiva idea rivolgersi ad un tecnico che le faccia per te ...
  • Re: Importazione automatica di alcune colonne di un file xls

    Condivido pienamente quanto ti ha suggerito Oregon. Non è un problema difficile da risolvere, ma occorre, comunque, una minima conoscenza di un linguaggio di programmazione.
  • Re: Importazione automatica di alcune colonne di un file xls

    Si non sarebbe una cattiva idea, avete qualcuno da consigliarmi a cui posso rivolgermi?
  • Re: Importazione automatica di alcune colonne di un file xls

    Dovresti cercare un programmatore nella tua zona e farti fare un preventivo.
Devi accedere o registrarti per scrivere nel forum
11 risposte