Aggiornamento automatico Tabella Access con dati CSV

di il
10 risposte

Aggiornamento automatico Tabella Access con dati CSV

Buongiorno a tutti,

Quotidianamente ricevo un file csv e dovrei ogni volta aggiornare la tabella1 del mio database access andando a sostituire ai dati esistenti quelli appena ricevuti. Esiste una forma di automatizzazione della procedura tramite per esempio un pulsante in una form?

attendo un riscontro ringraziandovi anticipatamente,
Ciao
Gabriele

10 Risposte

  • Re: Aggiornamento automatico Tabella Access con dati CSV

    Ho provato a creare una routine legata al click di un pulsante:

    Private Sub Comando1_Click()

    Dim nomeFile As String
    nomeFile = Dir("C:\Users\Gabriele\Desktop\tabella_file_da_caricare\FILE DA CARICARE\*.csv")
    Do
    If Len(nomeFile) = 0 Then Exit Do
    DoCmd.TransferText acImportDelim, "", "Tabella3", "C:\Users\Gabriele\Desktop\tabella_file_da_caricare\FILE DA CARICARE\" & nomeFile, 1
    nomeFile = Dir '' trova il file successivo
    Loop

    End Sub

    Cosi facendo, spostando semplicemente il file nella tabella indicata, e cliccando il pulsante nella form, la tabella si autoaggiornerebbe, ma purtroppo mi da degli errori.
  • Re: Aggiornamento automatico Tabella Access con dati CSV

    Tabella1 o Tabella3...?

    Il codice che hai scritto cicla una FOLDER intera ed importa tutti i File... anche se in realtà non andrà mai come l'hai fatta.

    Sai il Nome del File da importare e la corretta Cartella...? (il PAth completo lo conosci...?)

    Se lo conosci devi puntare direttamente a quello senza fare cicli assurdi.

    Detto questo serve chiarire alcuni concetti... di AUTOMATICO c'è solo quello che fa l'utilizzatore, lo sviluppatore deve scrivere codice per fare tutte quelle cose che faresti a MANO...!

    Esempio, il NUOVO file che ricevi giornalmente, sovrascrive il VECCHIO...? Se si non devi preoccuparti del precedente file ed il Nome sarà sempre il medesimo... se invece tu non conosci il Nome e sai solo che ti verrà riempita una Cartella, devi preoccuparti anche di Spostare/Eliminare il file già importato...
    Poi devi preoccuparti di Cancellare la Tabella1 o Tabella3 che sia dai dati vecchi oppure devi accodarli...?

    Insomma aiutarti è semplice se si conosce come operi altrimenti il richio è darti indicazioni banali.
  • Re: Aggiornamento automatico Tabella Access con dati CSV

    Ciao Alex, inanzitutto grazie della risposta.

    Cercherò di essere più chiaro.
    A me arriva in una determinata cartella su desktop un file CSV ogni giorno, e voglio che questo sovrascriva (e quindi SOSTITUISCA) i dati che sono all'interno di una tabella sul mio database Access.

    Il problema ora è che il Codice sopra scritto funziona, ma mi crea continuamente una tabella nuova sul database con al suo interno i dati giusti.
    Ecco, vorrei che invece di creare una tabella nuova, sovrascrivesse nella stessa tabella i nuovi dati.
    Il nome del file non sarà sempre uguale, e al momento non lo conosco.
    I dati precedenti ripeto che possono essere eliminati.
    Resto in attesa di un tuo consiglio,
    grazie mille,
    Gabriele
  • Re: Aggiornamento automatico Tabella Access con dati CSV

    Il nome del FILE cambia sempre...?
    Se si il codice che usi ancorchè tu dica funzionare espone a problemi... non ultimo i file Vecchi che non capisco ce fine fanno... e che non dici.
    Se il File(Oggi) sovrascrive il File(Ieri)... quella cosa NON SERVE... se non lo sovrascrive ma si chiama in modo diverso devi prevedere tu la cancellazione...!

    Ad ogni modo quel codice... [TransferText] NON crea ogni volta la Tabella3... ma eventualmente dopo averla creata la 1° volta, ACCODA i dati a quella esistente...!
    Quindi prima di eseguire quel codice devi semplicemente SVUOTARLA.
    DbEngine(0)(0).Execute "DELETE * FROM Tabella3"
  • Re: Aggiornamento automatico Tabella Access con dati CSV

    I file CSV vecchi vengono salvati in un altra cartella per eventuale uso futuro.
    Ora grazie alla tua stringa di codice riesco a sovrascrivere la tabella, ti ringrazio.
    Quali problemi ci sarebbero nel caso i file nuovi abbiano nome diverso, visto che il codice dovrebbe prendere i csv di quella cartella? Il file vecchio chiaramente lo sposterei dalla cartella.
    Grazie,
    Gabriele
  • Re: Aggiornamento automatico Tabella Access con dati CSV

    Dipende sempre dal livello di automatismo che vuoi implementare... che non ho ancora percepito...
    È evidente che nell'ottica di rendere tutto automatico devi avere più certezze che variabili...
  • Re: Aggiornamento automatico Tabella Access con dati CSV

    D'accordo, ti ringrazio molto in ogni caso per le spiegazioni.
    Ora avrei un altro problema che ti provo a spiegare.
    Questo database è collegato ad un'app desktop App Windows Forms (.NET Framework); Ogni giorno, aggiornato il database, devo calcolare degli indici con questa applicazione, ma ho verificato che aggiornando il database, non si aggiorna la stessa tabella richiamata nell'applicazione.
    Qualcuno conosce un modo per far si che l'app verifichi se il database sia stato aggiornato ogni volta?
  • Re: Aggiornamento automatico Tabella Access con dati CSV

    Per essere piu preciso:
    Vorrei che tramite un tasto "aggiorna" il DataGridView della mia applicazione si popolasse con i nuovi dati all'interno del database
    Grazie,
    Gabriele
  • Re: Aggiornamento automatico Tabella Access con dati CSV

    Per primo devi considerare che il Forum non essendo una CHAT ma operando per Tematiche devi postare un nuovo 3D per ogni tematica, e questo al fine di rendere fruibili i problemi a chi cerca(oltre che essere esplicito nel regolamento).

    Secondo aspetto è che tu ora parli di NET e non di Access... quindi siamo fuori Argomento, devi intervenire sull'applicativo affinchè rilegga in modo corretto i dati... ma non è argomento di questa sezione.
  • Re: Aggiornamento automatico Tabella Access con dati CSV

    Ok grazie, questo possiamo contrassegnarlo come risolto allora.
Devi accedere o registrarti per scrivere nel forum
10 risposte