Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

löschen von Dateien in Verzeichnissen

Begonnen von mary, September 14, 2011, 09:29:41

⏪ vorheriges - nächstes ⏩

mary

Hallo liebes Forum,
leider konnte mir bislang noch keiner irgendwie helfen...
ich habe ein kleine Datenbank, mit der ich Dateien verwalte. Hierzu werden die Dateien per Code in ein bestimmtes Verzeichnis kopiert und der Pfad in der Datenbank übernommen. Die Dateien (also der Pfad) werden dann untereinander in einem Endlosformular angezeigt. Ein Button neben jedem eintrag öffnet die Datei, der andere soll sie löschen.
Jetzt mal das Problem:
Beim löschen wird immer nur der Tabelleneintrag mit dem Pfad gelöscht (das ist auch richtig so), es soll jedoch zusätzlich die Datei aus dem Verzeichnis gelöscht werden.
Den Tabelleneintrag wird gelöscht, jedoch bekomme ich den Pfad nicht in den Kill befehl zum löschen der Datei im Verzeichnis hin... Was mache ich falsch?

Dim a As Variant
Dim Datenam1 As String

' löschen bestätigen lassen
    a = MsgBox("Möchten Sie die Datei wirklich löschen?", 52, "x")
    If a = 7 Then GoTo ende
   
    DoCmd.SetWarnings False
    Datnam1 = DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
        Kill Datnam1
   
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Hondo

Hallo,
verabschiede dich doch von diesen unsäglichen DoMenuItem, das provoziert nur Fehler.
Ich schreib deinen Code etwas um:

Dim db As Database
Dim Pfadname As String
Set db = CurrentDb
Pfadname = "c:\Dateien\test2.txt"    ' (Alternativ ein Bezug auf ein Formularfeld wie Me!Pfadname oder ähnlich)
If MsgBox("Möchten Sie die Datei wirklich löschen?", vbQuestion + vbYesNo, "Sicherheitsabfrage") = vbYes Then
   db.Execute "Delete From Tabelle1 Where Pfadname = '" & Pfadname & "'"
   Kill Pfadname
   If Dir(Pfadname) <> vbNullString Then
       MsgBox "Fehler beim Löschen der Datei, bitte von Hand löschen!"
   End If
End If
Set db = Nothing


Gruß Andreas

Hondo

Als Kriterium für die Löschabfrage sollte man aber besser einen ID-Wert verwenden, also Bezug auf die ID-Spalte.

Andreas

mary

 :D
DANKE  :D
Damit bist du mein Held des Tages... es funktioniert super  :D

Hondo

Hallo,
für sowas gibts den Danke-Button... nicht nur bei mir