Automatizzare import file csv in access

Anonimo
2015-06-19T19:08:23+00:00

Buona sera a tutti.

Ho un problema con l'import di file .csv

Ho un programma che genera file csv ogni giorno.

Ho necessità di importarli in access.

Con il seguente codice VBA importo tutti i dati dei file presenti nella cartella.

Private Sub Import_Click()

Dim nomeFile As String

nomeFile = Dir("C:\Documents and Settings\Desktop\import\File da caricare\*.csv")

Do

If Len(nomeFile) = 0 Then Exit Do

DoCmd.TransferText acImportDelim, "Import Specification", "Import-Misure", "C:\Documents and Settings\Desktop\import\File da caricare" & nomeFile, -1

nomeFile = Dir '' trova il file successivo

Loop

End Sub

Il problema è come evitare d'importare nuovamente gli stessi dati.

Potrei cancellare i file nella cartella ma poi come faccio a ricordarmi quali file non ho scaricato o evitare gli errori?

Grazzie per le future risposte.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

4 risposte

Ordina per: Più utili
  1. Anonimo
    2015-06-19T20:09:29+00:00

    ciao Prosso,

    crea una tabella t_files con due campi

    idFiles, autonumber.

    nomf testo

    copia questa rountine importCSV2 in un modulo standard e richiamala sull'evento click del tuo command Button:

    Private Sub Import_Click()

    importCSV2

    End Sub

    Option Compare Database

    Option Explicit

    Private Const strPath = "C:\Documents and Settings\Desktop\import\File da caricare"

    Public Sub importCSV2()

    Dim strFile As String

    strFile = Dir(strPath & "")

    Do While strFile <> ""

        If (GetAttr(strPath & strFile) And vbDirectory) = 0 Then

           If DCount("nomeF", "t_files", "nomeF='" & strFile & "'") = 0 Then

              If Mid$(strFile, InStr(1, strFile, ".") + 1, 3) = "csv" Then

                'Debug.Print strFile

                 DoCmd.TransferText acImportDelim, "Import Specification", "Import-Misure", strPath & strFile, -1

                CurrentDb.Execute "insert into T_files (nomeF) values ('" & strFile & "')", dbFailOnError

              End If

            End If

        End If

        strFile = Dir

    Loop

    End Sub

    ciao, Sandro.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2015-06-19T19:51:35+00:00

    Ciao,

    forse potresti spostare il file una volta caricato in un'altra cartella o solo rinominarlo con un prefisso che lo identifichi come tale.

    Guarda l'istruzione Name:   

    Name OldName As NewNameMimmo
    

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-06-19T19:33:47+00:00

    Grazie Sandro per la risposta rapida.

    Ma qule funzione devo usare per salvare il nome dei file in una tabella?

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-06-19T19:14:19+00:00

    ciao Prosso,

    potresti creare una tabella in cui scrivi i nomi dei files di xls via via  importati.

    Prima di importare i files di xls in access verifichi se in questa tabella il nome di quel specifico file c'è già, se si lo salti e passi al successivo.

    Ciao, Sandro

    La risposta è stata utile?

    0 commenti Nessun commento