Sortieren von Files in vba Filesystemobject

22/10/2016 - 20:09 von Wolfgang Weitzel | Report spam
Hallo,

ich möchte eine besteiimte Anzahl von Dateien aus einem Order auslesen und in ein Array schreiben. Als Kriterium sind den Dateinamen am Anfang eine Datumsangabe vorangestellt, die ich überprüfen kann.
Mit der nachfolgenden Funktion funktioniert dies auch.
Leider wird beim Zugriff keine Sortierung verwendet, so dass ich nicht die korrekten Daten erhalte.
Wie kann ich über VBA die Dateien im Order absteigen sorteieren, damit ich die korrekten Dateien einlesen kann.

MFG
Wolfgang

Public Sub Rechnungen()
Dim objFSO As Scripting.FileSystemObject, objFolder As Scripting.Folder, objFile As Scripting.File
strSQL = "SELECT Rechnungen.Datum_Rech, Rechnungen.Betrag_Rech " & _
"From Rechnungen " & _
"WHERE (((Rechnungen.ABR_ID)=Eval('[Forms]![F_Uebersicht]![v_ABR_ID]'))) " & _
"ORDER BY Rechnungen.Datum_Rech "
Set objFSO = New Scripting.FileSystemObject
Set rsdb = dbs.OpenRecordset(strSQL)
rsdb.MoveLast
v_X = rsdb.RecordCount
If v_X > 30 Then
MsgBox (" Di Anzahl der Datensàtze ist größer" & chrlf & _
" als der vorgesehene Speicher"), vbInformation
Exit Sub
End If
rsdb.MoveFirst
For i = 1 To v_X
For J = 0 To 1
If J = 0 Then _
v_Rechnungen(i, J) = Format(rsdb!Datum_Rech, "yyyy") & "-" & Format(rsdb!Datum_Rech, "mm") & "-" & Format(rsdb!Datum_Rech, "dd")
If J = 1 Then _
v_Rechnungen(i, J) = rsdb!Betrag_Rech
Next J
rsdb.MoveNext
Next i
Set objFolder = objFSO.GetFolder("E:\71 Krankenkosten Abrecchnungen & Belege\Abrechnungen Wolfgang\Belege")
i = 1
For Each objFile In objFolder.Files
v_Pruef = Left(objFile.Name, 10)
If v_Pruef = v_Rechnungen(i, 0) Then
v_Anlagen(i) = objFolder & "\" & objFile.Name
i = i + 1
End If
If i > v_X Then Exit For
Next objFile
rsdb.Close: Set rsdb = Nothing
End Sub
 

Lesen sie die antworten

#1 Ka Prucha
23/10/2016 - 09:38 | Warnen spam
Am 22.10.2016 um 20:09 schrieb Wolfgang Weitzel:
Hallo,

ich möchte eine besteiimte Anzahl von Dateien aus einem Order auslesen und in ein Array schreiben. Als Kriterium sind den Dateinamen am Anfang eine Datumsangabe vorangestellt, die ich überprüfen kann.
Mit der nachfolgenden Funktion funktioniert dies auch.
Leider wird beim Zugriff keine Sortierung verwendet, so dass ich nicht die korrekten Daten erhalte.
Wie kann ich über VBA die Dateien im Order absteigen sorteieren, damit ich die korrekten Dateien einlesen kann.



Warum nicht in eine temporàre Tabelle speichern und dort sortieren?

Ich habe einmal etwas àhnliches gemacht:
<http://members.aon.at/ka_prucha/page_7_1.html>

Da ich Access auf meinen derzeitigen Rechner nicht mehr habe, kann ich
es aber jetzt nicht überprüfen.

mfg Ka Prucha

Ähnliche fragen