Domino 9 und frühere Versionen > ND6: Entwicklung

Type mismatch? warum??

(1/2) > >>

DaWutz:
Hallo zusammen,

warum zeigt mir der folgende Code immer den Finger? In dem Dokument aus dem die Daten kommen sollen steht in dem Feld "active". Mit dem Debugger komme ich immer auf die Zeile if orgStatus ...

Kann ich denn einen Variant nicht einfach so vergleichen? Was mache ich falsch?


--- Code: ---....

Dim orgName As Variant
   Dim orgAbbreviaton As Variant
   Dim orgStatus As Variant
   Dim counter As Single
   Dim kw As Variant
   counter = 0   ' einfacher Zähler!
   kw = Inputbox("Which Calendar week you want to create?")
   
   ' Schleife, die jedes weitere Dokument anspringt
   Do While Not (doc Is Nothing)
      orgName = doc.GetItemValue("org_name")                     ' Werte aus Mutter-Dok auslesen
      orgAbbreviation = doc.GetItemValue("org_abkuerzung")
      orgStatus = doc.GetItemValue("org_status")
      
      If orgStatus = "active" Then   
         Set note = db.CreateDocument                              ' neues Dok erzeugen
         
         Call note.ReplaceItemValue("Form", "check_form")               ' Maske ändern
         Call note.ReplaceItemValue("check_orgName", orgName)         ' Felder mit Werten belegen
         Call note.ReplaceItemValue("check_orgAbbr", orgAbbreviation)
         Call note.ReplaceItemValue("check_calendarWeek", kw)
         Call note.save(True,False)                                    ' speichern des neu angelegten Dok´s
         
         Set doc = view.GetNextDocument(doc)                        ' nächstes Dokument aus der View anspringen
         counter = counter+1   
      End If
      
   Loop

--- Ende Code ---
???

Thomas Schulte:
Weil Variants Arrays sind und Arrays spricht man mit ArrayVar(0) an.

Thomas

DaWutz:
War es nicht so, das ein Variant das "wird" was an Daten rein geht? In meinem Fall ein String? Aber daovn mal ganz ab, wenn ich die Varaible mit orgStatus(0) = "active" anspreche, dann knallt mein Notes weg. Und wenn ich die Variable von Anfang an als String wähle, dann wirds auch nix...  ???

koehlerbv:
Variants können Arrays sein, müssen aber keinesfalls !

A-Bär: Übernimmt man direkt ein Item in ein Variant (ausser RTI), dann ist das Ergebnis IMMER ein Array:
variant = NotesDocument.Field

Selbiges macht auch das von DaWutz verwendete NotesDocument.GetItemValue - das Ergebnis ist ausser bei RTIs IMMER ein Array.

HTH,
Bernhard

TMC:
Beim Backend-Zugriff auf ein Item erhält Du immer ein Array - egal welcher Feldtyp das ist.

*Edit*: Da war Bernhard schneller. Und ich vergass die Ausnahme RTI.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln