2016-07-20 9 views
0

Ich habe eine ADB, die ich automatisch durch den Windows Explorer durchlaufen, die Datei in eine wöchentliche Berichtstabelle (Wkly_Rprt) importieren, Formatierung durchführen und an eine wöchentliche anhängen Übersichtstabelle (Wkly_S_Rprt), und löschen Sie dann jede Datei aus Windows Explorer? Dateinamen haben das gleiche Format, das Datum wird am Ende geändert. Wenn ja, wie würde das aussehen, da ich ohne viel Glück zahlreiche andere Beispiele durchgesehen habe.Automatischer Import von CSV-Dateien aus Windows Explorer in Access DB

Vielen Dank für Ihre Hilfe!

+0

Vielleicht dieses Thema hilft Ihnen auf Ihrem Weg: http://stackoverflow.com/questions/20245053/running-microsoft-access-as-a-scheduled-task – Rene

+0

Vergessen Sie Schleife durch einen Ordner, nur durch "TblImportMenu". Wie ist diese Tabelle ausgefüllt? Welche dieser Dateien in der Tabelle müssen Sie importieren? Gerade jetzt braucht es nur die erste. – Parfait

+0

Bei Dateien, die zu einer Datei im Windows Explorer-Ordner hinzugefügt werden, muss diese Datei importiert werden. Ob das 2 oder 50 Dateien gleichzeitig sind. Ich werde einen Blick darauf werfen, wie das TblImportMenu funktioniert. Wo würde ich das hinzufügen, vor der DoCmd oder danach? –

Antwort

0

Verwenden Sie Scripting.FileSystemObject, um durch Dateisystemordner und Dateien zu iterieren. Hier ist ein Beispiel von Code ich für Dateien aus einem bestimmten Ordner importieren:

Private sub ImportCSVs(TempImportFolder as String) 

    On Error Goto ImportCSVs_Err 
    Dim objFS As Object, objFolder As Object, objFiles As Object 

    Set objFS = CreateObject("Scripting.FileSystemObject") 
    Set objFolder = objFS.GetFolder((TempImportFolder)) 
    Set objFiles = objFolder.Files 
    For Each file In objFiles 
     DoCmd.TransferText acImportDelim, "[import_spec]", "Wkly_Rprt", TempImportFolder & "\" & file.Name, False 
     'Remove old data .... 
     'Append new data .... 
     'Delete file: 
     objFs.DeleteFile TempImportFolder & "\" & file.Name 
NextFile: 
    Next 
ImportCSVs_Exit: 
    Exit Sub 
ImportCSVs_Err: 
    'Handle Errors occurred do to file structure, and Resume NextFile 

End Sub 

Sie einen Ordner für Unterordner scannen können, und führen Sie diesen Code auf jeden Unterordner auch sample code at this reference

+0

Wow Marlan, das sieht gut aus! Vom Aussehen her würde ich so ziemlich alles von mir ersetzen, weniger die Remove and Append Stücke, wo man diese auskommentiert hat. Habe ich diese Annahme richtig? –

+0

Ja, so mache ich es. Wenn eine Datei nicht im richtigen Format ist, also nicht csv, oder csv, wenn ein anderes Format vorliegt, wird ein Fehler auftreten. Fortsetzen Sie einfach mit der nächsten Datei ... ** Bitte beachten Sie: ** * alte Daten entfernen * sollte mit den Daten, die Sie importieren, korrelieren, stellen Sie sicher, dass Sie nicht gerade importierte Daten in der vorherigen Iteration entfernen ...;) – marlan

+0

Hallo Marlan, Ich schaute auf das bisschen Code und wie es in meiner Situation funktionierte. Lief es, aber es mochte nicht die On Current Event Procedure als eine Schaltfläche - Prozedur Deklaration entspricht nicht Beschreibung des Ereignisses. Ich glaube, dass es auf OnOpen zurückzuführen ist, da erwartet wird, dass ein Ereignisname ausgeführt wird, wenn das Ereignis eintritt. Irgendwelche Vorschläge? Und wahrscheinlich eine dumme Frage für diese, wird dies aufgefordert, einen Ordner zu öffnen, oder bin ich die Quelle des Ordners hier wie in "TempImportFolder" zu platzieren? Vielen Dank, –