Domino 9 und frühere Versionen > ND6: Entwicklung
Dokument suchen und Daten ändern
lotus blue:
Zunächst mal vielen Dank für die schnelle Hilfe. Seid ja schneller wie die Feuerwehr.
Ist halt ein geiles Forum.
Aber nochmal zurück zum Thema.
Meine Scriptkenntnisse sind, wie ihr bestimmt schon bemerkt habt, sehr übel.
Der Inhalt des Felds: Status soll auf erledigt gesetzt werden, bei allen Dokumenten die bereits vorhanden und den gleichen Wert im Feld "Auftragsnummer" haben.
Hier nochmal die Formel die ich derzeit hab für den Agenten:
Sub Initialize
Dim session As New notessession
Dim db As notesdatabase
Dim doc As notesdocument
Dim fileNum As Integer, cells As Integer, k As Long
Dim fileName As String
Dim InputStr As String, delimiter As String
Dim FieldArray As Variant
Set db = session.currentdatabase
fileNum% = Freefile()
' Dateipfad
fileName$ = "C:\Ordner Archiv\Erledigung\Archiv.csv"
' Trennzeichen
delimiter = ";"
Open fileName$ For Input As fileNum%
Line Input #1, InputStr$
Do While Not Eof(fileNum%)
' Zeile für Zeile einlesen
Line Input #1, InputStr$
FieldArray = Split(InputStr$,delimiter)
Set doc = view.GetDocumentByKey(FieldArray(0))
Call doc.ReplaceItemValue("Status", "erledigt")
Call doc.Save(True,True)
Loop
Close fileNum%
Exit Sub
End Sub
Fehler: Variant does not contain an Object.
Was hab ich da vergessen.
Kadlec:
Dir fehlt die view?
Dim view As NotesView
Set view = db.GetView(namedeinerview )
Boris
s_Old:
--- Zitat von: Kadlec am 04.06.08 - 17:44:10 ---Dir fehlt die view?
...
--- Ende Zitat ---
Das wäre der nächste Fehler (Object Variable Not Set), der angegebene Fehler lässt vermuten, dass der Aufruf von Split das Array nicht füllt...
--- Code: ---Sub Initialize
Dim session As New notessession
Dim db As notesdatabase
Dim doc As notesdocument
Dim fileNum As Integer, cells As Integer, k As Long
Dim fileName As String
Dim InputStr As String, delimiter As String
Dim FieldArray As Variant
Dim view As NotesView
Set db = session.currentdatabase
Set view = db.GetView ("NAME")
fileNum% = Freefile()
'Dateipfad
fileName$ = "C:\Ordner Archiv\Erledigung\Archiv.csv"
'Trennzeichen
delimiter = ";"
Open fileName$ For Input As fileNum%
Line Input #1, InputStr$
Do While Not Eof(fileNum%)
'Zeile für Zeile einlesen
Line Input #1, InputStr$
FieldArray = Split(InputStr$,delimiter, -1, 0)
If Not Isempty(FieldArray) Then
Set doc = view.GetDocumentByKey(FieldArray(0))
Call doc.ReplaceItemValue("Status", "erledigt")
Call doc.Save(True,True)
End If
Loop
Close fileNum%
End Sub
--- Ende Code ---
DerAndre:
Dann schau Dir auch gleich noch den Best Practices: Error Handling an
Axel:
--- Zitat von: S.O.L.D am 04.06.08 - 18:31:47 ---
--- Zitat von: Kadlec am 04.06.08 - 17:44:10 ---Dir fehlt die view?
...
--- Ende Zitat ---
Das wäre der nächste Fehler (Object Variable Not Set), der angegebene Fehler lässt vermuten, dass der Aufruf von Split das Array nicht füllt...
--- Ende Zitat ---
Das glaube ich eher weniger. Dann müsste die Fehlermeldung anders lauten.
Die Meldung "Variant does not contain an Object." weist in diesem Fall eindeutig auf die nicht gesetzte Variable view hin.
Mit einer vernüftigen Fehlerbehandlung wäre es wesentlich einfacher die Stelle im Code zu ermitteln an der der Fehler auftritt.
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln