Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Emre_1996 am 15.05.14 - 14:02:28
-
Sub ExportAttachment(o As Variant)
Dim Name As String
Dim sNum As String
Dim sTemp As String
Name = sDir & "\" & o.Source
While Not (Dir$(Name, 0) = "")
sNum = Right(StrLeftBack(Name, "."), 2)
If IsNumeric(sNum) Then
sTemp = StrLeftBack(Name, ".")
sTemp = Left(sTemp, Len(sTemp) - 2)
Name = sTemp & Format$(CInt(sNum) + 1, "##00") & _
"." & StrRightBack(Name, ".")
Else
Name = StrLeftBack(Name, ".") & _
"01." & StrRightBack(Name, ".")
End If
Wend
'Save the file
Call o.ExtractFile( Name )
End Sub
Hallo Leute,
ich hätte da eine Frage.
Ich habe eine Datenbank, in der ca. 5000 Dokumente gespeichert sind. Ein Dokument beinhaltet Informationen wie z.B. Name, Datum, Kommentar, Betrag und Body-Feld(Anhang ; meistens .pdf).
Nun möchte ich die Anhänge im Windows-Explorer übertragen. Es klappt auch super, die Anhänge werden übertragen.
Nun möchte ich, dass es bisschen ordentlicher aussieht und sortierter. Ich möchte ein Ordner erstellen z.B. 2014 und dann alle Dokumente die 2014 erstellt wurden (Datums-Feld "Date") in den Ordner. Alle die 2013 erstellt wurden dann in den 2013 Ordner.
Meine Frage wäre wie mache ich, dass mit den Ordnern.?
Vielen Dank im Voraus
-
Die Jahreszahl als String bekommst Du mit
jahr = Format (doc.Date (0), "yyyy")
Ein Verzeichnis legst Du mit MkDir an
-
Hallo Peter,
vielen Dank für deine schnelle Antwort
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim Datum As Variant
Dim Jahr As String
Dim Monat As String
Dim OrdnerName As String
Set db = ses.CurrentDatabase
Set dc = db.AllDocuments
Set doc = dc.GetFirstDocument()
While Not doc Is Nothing
Datum = doc.GetItemValue( "Date" )(0)
Jahr = CStr( Year( Datum ) )
Monat = CStr( Month( Datum ) )
OrdnerName = Jahr & "\" & Monat
Call doc.PutInFolder( OrdnerName )
Set doc = dc.GetNextDocument( doc )
Wend
Print "Exporting " & OrdnerName
'Save the file
Call o.ExtractFile( OrdnerName )
End Sub
Nun bekomme ich aber die Fehlermeldung:
Type misstach in Methode: DateConvert: String found. Date expected
-
Ach, das meintest Du mit Ordnern, ich dachte, Du wolltest die Dateien in Ordner (auf der Festplatte) ablegen. (EDIT: machst Du ja auch zusätzlich, habe ich überlesen)
Ich gehe mal davon aus, dass Dein Feld Date entgegen Deiner Aussage kein Datum, sondern einen Text enthält. Dann musst Du das entsprechend umwandeln.
If Isdate (doc.Date (0)) Then
Datum = Cdat (doc.Date (0))
Jahr = Format (Datum, "yyyy")
Monat = Format (Datum, "mm")
End If
Ich beharre mal auf dem Format, denn ein Cstr (Month (Datum)) wird Dich nicht wirklich glücklich machen.
Cstr (Month (Datum)) -> "5", wenn Datum = heute
aber Format (Datum, "mm") -> "05"
Sonst bekommst Du solche Ordner
2013\1
2013\10
2013\11
2013\12
2013\2
...
-
ACHTUNG: im DominoForum wird parallel unter anderem Namen gearbeitet (http://www.dominoforum.de/index.php/Thread/24535-Dokumente-in-SharePoint-2013-ExtractFile/?postID=142543#post142543)
-
Danke, dann kann ich mich ja wieder den Dingen widmen, für die ich bezahlt bekomme ... ;)