Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: mohab am Januar 28, 2015, 11:21:14

Titel: Alle Dateien eines Verzeichnises importieren
Beitrag von: mohab am Januar 28, 2015, 11:21:14
Hallo zusammen,

ich habe einen Code der eine CSV-Datei in meine Datenbank importiert. Die Datei (jeweils mit neuem Zeitstempel) wird in ein bestimmtes Verzeichnis automatisch abgelegt, ich hole sie ab, und lösche sie.
Nun würde ich gerne den Code so ändern, dass der Vorgang automatisch solange wiederholt wird, bis keine Datei mehr in dem Verzeichnis liegt. So müsste der User nicht 20x pro Stunde klicken. Kann mir jemand sagen wie ich meinen Code verändern müsste?
Private Sub Befehl204_Click()
MsgBox "Datenimport gestartet... bitte warten"
On Error GoTo error
  Dim Dateiname As String
Dateiname = Dir("PFADNAME\dateiname_????????-?????????.csv")

     DoCmd.TransferText acImportDelim, "importspezifikation", "tbl1_temp", "\\PFADNAME" & Dateiname
With CurrentDb
        .Execute "qry1_Anfügen"
End With
CurrentDb.Execute "DELETE FROM tbl1_temp", dbFailOnError
Kill "PFADNAME" & Dateiname
MsgBox "neue Daten wurden importiert, bitte prüfen"
Exit Sub
error: MsgBox "keine neuen Daten vorhanden"
End Sub


Vielen Dank für eure Hilfe!
Grüße,
Mohab
Titel: Re: Alle Dateien eines Verzeichnises importieren
Beitrag von: bahasu am Januar 28, 2015, 12:03:08
Hi,

vielleicht erreichst Du Dein Ziel, indem Du das Zeitereignis verwendest.
Im Formular bei "Bei Zeitgeber" als VBA-Code eintragen:
call Befehl204_Click
und bei Zeitgeberintervall einen Wert in der Größenordnung:
3600 * 1000 / 20 : bitte selber ausrechnen

Ich würde allerdings die msgbox-Anweisungen ersetzen durch Anzeigen, die keine Bestätigungseingabe erfordern.

Harald
Titel: Re: Alle Dateien eines Verzeichnises importieren
Beitrag von: mohab am Januar 28, 2015, 12:15:25
Servus Harald,

danke für den Denkansatz, aber das ist nicht genau was ich suche, da ich dann den vorgang ja unnötig in die länge ziehen würde, falls zum Beispiel nur 1 Datei vorhanden wäre...!

Titel: Re: Alle Dateien eines Verzeichnises importieren
Beitrag von: DF6GL am Januar 28, 2015, 12:47:44
Hallo,

bau eine Schleife ein, die solange durchlaufen wird, bis die Dir()-Funktion einen Leerstring zurückgibt...

Die Prozedur kann dann mit Hilfe des Formular-Timers z. B. jede Stunde ausgeführt werden.
Titel: Re: Alle Dateien eines Verzeichnises importieren
Beitrag von: mohab am Januar 28, 2015, 13:03:17
Servus Franz,

ja, das ist das was ich gerne tun würde. Kannst du mir mit dem Code evtl helfen? Wo müssten die Zeilen eingefügt werden, und wie müssten diese aussehen?
(die timerfunktion bekomm ich alleine hin, mir geht's nur um die schleife)
Ich hab da ein wenig Respekt davor, weil ich keine endlosschleifer oder unnötige Wiederholung produzieren will.

Vielen Dank für deine Hilfe!
Titel: Re: Alle Dateien eines Verzeichnises importieren
Beitrag von: DF6GL am Januar 28, 2015, 13:13:11
Hallo,

naja, so eine Schleife solltest Du auch selber hinbekommen...


Do Until Dir("PFADNAME\dateiname_????????-?????????.csv") =""
.
.
.
Loop
Titel: Re: Alle Dateien eines Verzeichnises importieren
Beitrag von: mohab am Januar 28, 2015, 13:23:59
Hi,

ich weiß, das mag für nen Guru wie dich vielleicht abwegig sein, aber ich bekomm das leider nicht hin.

Die Bedingung "Do Until Dir("PFADNAME\dateiname_????????-?????????.csv") ="" " ist klar
Aber ich füge Sie scheinbar nicht richtig in meinen Code ein....!
Titel: Re: Alle Dateien eines Verzeichnises importieren
Beitrag von: mohab am Januar 28, 2015, 13:32:09
hat sich erledigt... 1 endlosschleife später rufe ich: try & error ftw !  :D
Antwort auf meine eigene Frage:
direkt vor die Zeile "Dateiname = Dir(...." dann klappts.

Danke trotzdem Franz!