Flexgrid auslesen und Löschen

zyclop

Erfahrenes Mitglied
Gleich zu meiner Frage:

Ich bin an einem Projekt welches am Donnerstag fertig sein muss. Da ich grosse Probleme habe und nicht weiterkomme, seit ihr gefragt.

Ich habe Einträge in ein Flexgrid eingetragen.

Code:
'Rekursive Subprozedur zur Ordnerüberprüfung
Private Sub pSubScan(ByVal strPath As String)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strPath)

'Schlaufe zur Ordner Indexierung
For Each objsubfolder In objFolder.subfolders
    strPath = objsubfolder.Path
    
    'Schlaufen einleitung
    If objFSO.FolderExists(strPath) Then
    
   'If objsubfolder.Name = "Neuer Ordner" Then
   'MsgBox objsubfolder.Name
   'End If
    
        'If CDate(dDatumLastmodified) < CDate(dDatumNow) Then
        If DateDiff("d", objsubfolder.datelastmodified, Date) >= intAelterals Then
        
                'If chk_samOrdner. = True Then
                'If Überprüfung - Auschschliessung der Obersten Verzeichnisse
                'If LCase(Mid(objsubfolder.Name, 1, 3)) <> "an_" Then
               ' Else
                'End If
                'If chk_samOrdner.Value = 1 Then
                'If LCase(Mid(objsubfolder.Name, 1, 4)) <> "_sam" Then
                'Else
                'End If
                
                 'Counter für die Schlaufe
                MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
                lonZeileZaehler = lonZeileZaehler + 1
            
                'Eintrag der Attribute für die Ordner in die Tabelle
                MSFlexGrid1.TextMatrix(lonZeileZaehler, 1) = objsubfolder.Name
                MSFlexGrid1.TextMatrix(lonZeileZaehler, 2) = objsubfolder.datelastmodified
                MSFlexGrid1.TextMatrix(lonZeileZaehler, 3) = objsubfolder.DateCreated
                MSFlexGrid1.TextMatrix(lonZeileZaehler, 4) = objsubfolder.Size
                MSFlexGrid1.TextMatrix(lonZeileZaehler, 5) = objsubfolder.Path
                
                'Refresh der Anzeige, damit der User nicht denkt das Programm funktioniert nicht
                MSFlexGrid1.Refresh
                'End If
            'End If
        End If
            
            'Schlaufe zur Datei Indexierung
            For Each objdatei In objFolder.Files
            
            'Wenn der Datumsunterschied grösser als (Anzahl = Variable) Tage ist, dann
               If DateDiff("d", objsubfolder.datelastmodified, Date) >= intAelterals Then
                
                    'Counter für die Schlaufe
                    MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
                    lonZeileZaehler = lonZeileZaehler + 1
                    
                    'Eintrag der Attribute für die Dateien in die Tabelle
                    MSFlexGrid1.TextMatrix(lonZeileZaehler, 1) = objdatei.Name
                    MSFlexGrid1.TextMatrix(lonZeileZaehler, 2) = objdatei.datelastmodified
                    MSFlexGrid1.TextMatrix(lonZeileZaehler, 3) = objdatei.DateCreated
                    MSFlexGrid1.TextMatrix(lonZeileZaehler, 4) = objdatei.Size
                    MSFlexGrid1.TextMatrix(lonZeileZaehler, 5) = objdatei.Path
                    
                    'Refresh der Anzeige, damit der User nicht denkt das Programm funktioniert nicht
                    MSFlexGrid1.Refresh
                   Else
                   
                  End If
              Next
              
            'Rekursiver Aufruf
            pSubScan (strPath)
End If
Next
End Sub

Nun will ich die Dateien welche sich im FlexGrid befinden Löschen. Wie soll ich das machen Ich kann euch auch die Projektdatei zur verfügung stellen.
 
Ich möchte nicht das FlexGrid leeren sondern:

Mein Programm liest aus einem Verzeichnis, die Dateien und Verzeichnisse aus welche Älter als 31 Tage sind. Diese werden auch ins Flexgrid eingetragen. Funktioniert alles Prima. Aber nun möchte ich all die Dateien löschen welche nun im Flexgrid eingetragen sind.
 
du musst doch nur dein Flexgrid durchlaufen und dann ggf ein file Objekt auf den entsprechenden Eintrag setzten und löschen

Visual Basic:
 if   cdate(MSFlexGrid1.TextMatrix(lonZeileZaehler, 3).text) <= DateADD ("d",-31,now) then
        set file = fso.Getfile  (MSFlexGrid1.TextMatrix(lonZeileZaehler, 4).text) 
         file.delete
end if
Grüsse bb
 
Die Überprüfung ob es älter als 31 Tage ist brauch ich nicht. Alle Dateien die älter als 31 Tage sind, werden im Flexgrid angegeben. Ich brauche nun eine Schlaufe welche die Tabekke von oben nach unten Abarbeitet und die jeweilige datei Oder den Ordner Löscht.
 
also dann so

Visual Basic:
dim fil as File 
for i = 0 to  MSFlexGrid1.Rows -1 
set fil = fso.Getfile  (MSFlexGrid1.TextMatrix(i , 4).text)          
fil.delete ' löscht den File !
next i
 
Ich möchte nicht das FlexGrid leeren sondern:

Mein Programm liest aus einem Verzeichnis, die Dateien und Verzeichnisse aus welche Älter als 31 Tage sind. Diese werden auch ins Flexgrid eingetragen. Funktioniert alles Prima. Aber nun möchte ich all die Dateien löschen welche nun im Flexgrid eingetragen sind.

Push 2 see

sry
 
Ich habe nun dieses hier eingefügt

Visual Basic:
Private Sub cmdLoesch_Click()
    Set file = fso.Getfile(MSFlexGrid1.TextMatrix(lonZeileZaehler, 4).Text)
    file.Delete
End Sub

Bekomme aber folgende Fehlermeldung und Markiert mir folgenden Teil vom Oben erwähnten CODE:

"Ungültiger Bezeichner"

Visual Basic:
.TextMatrix
 
Den habe ich auch vorhing gelesen...ich bin im Moment an einem anderen Lösungsansatz. gibt doch bitte deine Meinung ab

Visual Basic:
Private Sub cmdLoesch_Click()

'Variablen Deklaration
    Dim strPathDel As String        'Pfad welcher zu löschen ist
    Dim lonCounterSchlaufe As Long  'Zähler in der Schlaufe
    Dim lonCounterZeile As Long     'Temp Variable um den lonZeileZaehler nicht zu verändern
    
    lonCounter = 0
    lonCounterZeile = lonZeileZaehler
    Do While lonCounterSchlaufe <= lonCounterZeile
    
    lonCounterSchlaufe = lonCounterSchlaufe + 1
    
----FEHLER----Path = MSFlexGrid1.TextMatrix(lonZeileZaehler, 5)
    Path = MSFlexGrid1.TextMatrix(lonCounterZeile, 5)
    MsgBox (File & Path) 'anstatt mSGBOX kommt delet vorgang hier
    
    lonCounterZeile = lonCounterZeile - 1
    Loop
End Sub

Funktioniert auch so...aber im Moment zeigt er mir nur immer den Selben Ordner...habs extra kommentiert, damits besser verstehen kannst. lol Falsche Variable Verwendet....siehe Fehler...mein nextes Problem ist das er 36 Einträge hat mir aber in der MSG Box nur 20 Darstellt.

BAHNHOF? =S
 
Zuletzt bearbeitet:
Zurück