Domino 9 und frühere Versionen > ND6: Entwicklung
Fehler bei PicklistCollection (Mit Lösung)
RalfK:
Hallo,
ich habe (testhalber) 2 Masken geschrieben. In der Maske1 gibt es die Felder "Name" und "Strasse". Maske2 soll mit den Daten aus Maske1 gefüllt werden (hat auch die Felder "Name" und "Strasse".
Zusätzliche gibt es eine Ansicht (für die Picklist) namens "export"
Ich möchte nun per Schaltfläche in Maske2 eine Picklist aufrufen und 1 Dokument auswählen. Es sollen beide Spalten übernommen werden. Folgendes Script.
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim currdoc As NotesDocument
Dim doc As NotesDocument
Dim col As NotesDocumentCollection
Dim item1 As NotesItem
Dim item2 As NotesItem
Set uidoc = ws.CurrentDocument
Set currdoc = uidoc.Document
Set item1 = currdoc.GetFirstItem("Name")
Set item2 = currdoc.GetFirstItem("Strasse")
Set col = ws.PickListCollection(1, False, db.server, db.name , "export", _
"Auswahl", "Bitte auswählen:")
Set doc = col.GetFirstDocument
While Not (doc Is Nothing)
Call item1.AppendToTextList(doc.Name(0))
Call item2.AppendToTextList(doc.Strasse(0))
Wend
Ich erhalte nun die Meldung "Variant does not contain an object". Laut Debugger in der Picklist-Zeile.
Weiss jemand, wo der Fehler liegt. Ich werde aus der Meldung irgendwie nicht schlau.
Grüße
Ralf
Thomas Schulte:
wo ist dein Database Object initialisiert?
RalfK:
Oh ich hatte es übersehen.
Dim db As NotesDatabase
Nun, zumindest ist nun die Fehlermeldung eine andere. "Object variable not set"
Das lässt ja darauf schliessen, dass der Wert eine Variable "leer" ist. Es kann ja nur die Variable col sein, obwohl ich diese ja per Set angesprochen haben. Mit db.server und db.filepath greife ich ja auf die lokale DB zu. Also liegt der Fehler in der Ansicht?
Grüße
tfrenz:
Hallo,
wie Thomas Schulte schon schrieb, die Initialisierung fehlt.
Nicht nur die Deklaration, sondern auch die Zuweisung der DB.
Set db = Session.CurrentDatabase
Oder ähnliches, wenn es eine andere sien soll.
Thomas Frenz
RalfK:
Ihr habt natürlich recht. Vielen Dank.
Ich sollte mich mehr konzentrieren beim scripten. Das (funktionstüchtige) Script sieht nun so aus:
Dim db As NotesDatabase
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim currdoc As NotesDocument
Dim doc As NotesDocument
Dim col As NotesDocumentCollection
Dim item1 As NotesItem
Dim item2 As NotesItem
Set db = Session.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set currdoc = uidoc.Document
Set item1 = currdoc.GetFirstItem("Name")
Set item2 = currdoc.GetFirstItem("Strasse")
Set col = ws.PickListCollection(1, False, db.Server, db.FilePath , "export",
"Auswahl erstellen", "Bitte auswählen:")
Set doc = col.GetFirstDocument
Call item1.AppendToTextList(doc.Name(0))
Call item2.AppendToTextList(doc.Strasse(0))
Eine abschließende Frage noch. Wenn ich auf eine andere Datenbank zugreifen will, wie weise ich diese dann zu?
Grüße
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln