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
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
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...!
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.
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!
Hallo,
naja, so eine Schleife solltest Du auch selber hinbekommen...
Do Until Dir("PFADNAME\dateiname_????????-?????????.csv") =""
.
.
.
Loop
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....!
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!