Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: webchild am 26.02.04 - 12:28:21
-
Ich möchte in einem Dokument ein Feld ändern und zwar soll der User das zu ändernde Dokument auswählen und dann den neuen Text eingeben.
Bei dem unteren Code taucht der Fehler auf "Object Variable not set" und im Debugger kann ich sehen, das dem NotesDocument Object:doc nichts zugewiesen wird.
Dei Ansicht ist kategorisiert und es gibt auch nur 1 Spalte. Ich habe aber wahrscheinlich doch noch einen gedanklichen Fehler beim Aufbau gemacht. :'(
Der Key nach dem gesucht wird ist z.B.: "ANWÄLTE/STEUERBERATER/VERBÄNDE/VEREINIGUNGEN\MESSE"
Dim s As New NotesSession
Dim uiws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim view As NotesView
Dim item As NotesItem
Dim sVar As String
Dim sVar2 As String
Set db=s.CurrentDatabase
Set view = db.GetView("aKTDienstleister")
Dim picklist As Variant
picklist = uiws.PickListStrings(PICKLIST_CUSTOM,False,db.Server,db.Filepath,"aKTDienstleister","Alte KAT Dienstleister",_
"Geben Sie die Kategorie Dienstleister die sie ändern möchten an: ",1)
sVar=picklist(0)
Set doc = view.GetDocumentByKey("sVar")
sVar2=Inputbox$("Geben Sie die Änderung der Kategorie ein: ","Neue KAT Dienstleister",sVar)
Set item = doc.ReplaceItemValue("fKTDienstleister", sVar2)
Call doc.Save( True, True )
Woran könnte man das Problem festmachen?
Ich würde mich über einen klitzekleinen Hinweis freuen, Danke schon mal, Krista
-
Warum läßt Du den User das gewünschte Dokument nicht per PickListCollection auswählen (dann eben keine MultipleSelection) und änderst das so erhaltene Dokument direkt ?
-
Ich versuchs und melde mich dannach!
Danke, Krista :)
-
... 2 kleine Fehler sind mir aufgefallen
In deiner Pfadeingabe gibte Backslash und Slash'es
Du suchst anch eine falschen Key: "sVar" - se sollte
.... GetDocumentByKey( sVar )
heißen...
ata
-
@Diri
Danke das wars : ;D
Dim s As New NotesSession
Dim uiws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim view As NotesView
Dim col As NotesDocumentCollection
Dim item As NotesItem
Dim sVar As String
Dim sVar2 As String
Set db=s.CurrentDatabase
Set view = db.GetView("aKTDienstleister")
Dim picklist As Variant
Set col=uiws.PicklistCollection(PICKLIST_CUSTOM,False,db.server,db.FilePath,"aKTDienstleister","Alte KAT Dienstleister",_
"Geben Sie die Kategorie Dienstleister die sie ändern möchten an: ")
Set doc = col.getfirstdocument
sVar=doc.fKTDienstleister(0)
sVar2=Inputbox$("Geben Sie die Änderung der Kategorie ein: ","Neue KAT Dienstleister",sVar)
Set item = doc.ReplaceItemValue("fKTDienstleister", sVar2)
Call doc.Save( True, True )
@Ata
Danke, ich habe es jetzt mit der Collection versucht und es hatte geklappt.
Aber aus Lernzwecken werde ich mir deinen Hinweis auch noch mal vornehmen!
Krista
-
@Ata
Ich Hirbel! Den Fehler mache ich so oft, obwohl ich es eigentlich weiß!
Aber ich habe wirklich noch keine große Übung!
Und wenn ein Fehler auftaucht denke ich immer er hätte einen viel komplizierteren Ursprung! :-[
Korrekt:
-------------------------------------------
Set db=s.CurrentDatabase
Set view = db.GetView("aKTDienstleister")
Dim picklist As Variant
picklist = uiws.PickListStrings(PICKLIST_CUSTOM,False,db.Server,db.Filepath,"aKTDienstleister","Alte KAT Dienstleister",_
"Geben Sie die Kategorie Dienstleister die sie ändern möchten an: ",1)
sVar=picklist(0)
Set doc = view.GetDocumentByKey(sVar)
sVar2=Inputbox$("Geben Sie die Änderung der Kategorie ein: ","Neue KAT Dienstleister",sVar)
Set item = doc.ReplaceItemValue("fKTDienstleister", sVar2)
Call doc.Save( True, True )
----------------------------------
Danke, Krista