Domino 9 und frühere Versionen > ND6: Entwicklung

Dokument suchen und Daten ändern

<< < (4/26) > >>

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