J'ai un bout de code (qui au demeurant fonctionne plutot bien) que je ne m'explique pas... c'est pas bloquant dans la mesure ou je contourne, mais j'aimerai bien piger ce qui déconne.
En bref au debut de dans mon code j'ai :
Dim s As New NotesSession
Dim doc As NotesDocument
Dim rtItem As NotesRichTextItem
Set db = s.CurrentDatabase
Set doc = view.GetFirstDocument
Do While Not (doc Is Nothing)
If Not doc.HasItem( "TestDbComment" ) Then
If Not doc.HasItem( "TestDbComment" ) Then
Set rtItem = doc.CreateRichTextItem( "TestDbComment" )
Call doc.Save(True,True)
End If
End If
[...]
Tout cela parce qu'après je mets a jour un champ qui n'existe pas dans tous les documents (car créé sur le tard)
Bon bref.... bin parfois Debug me retourne un Object Variable not set... alors que je vois bien mon Doc.TestDbComment dans mes Items du doc !
Du coup pour que cela fonctionne j'execute avant, un agent qui parcours tous les documents de ma vue et qui me fait :
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim i As Integer, ii As Integer
Dim rtItem As NotesRichTextItem
'Base et doc en cours
Set db = s.CurrentDatabase
Set view = db.GetView("vwTmpByName")
Set doc = view.GetFirstDocument
i=0
ii=0
Do While Not (doc Is Nothing)
Print ii
If Not doc.HasItem( "TestDbComment" ) Then
i=i+1
Set rtItem = doc.CreateRichTextItem( "TestDbComment" )
Call doc.Save(True,True)
End If
ii=ii+1
Call doc.Save(True, True)
Set doc = view.GetNextdocument(doc)
Loop
Msgbox(Str$(ii)&" docs traités / "& Str$(i)& " docs corrigés")
???? Et là, tout baigne lorsque j'execute mon code initial.... pu d'object variable not set ! J'pige pas vu que c'est exactement la mème méthode pour tester l'existance du champ dans les 2 procédures !!???
Quelqu'un aurait il une idée ?