Neue Werte zu item.values hinzufügen

  • Hallo zusammen,


    ich habe ein Namenfeld mit Mehrfachwerten.
    Diesem möchte ich jetzt neue Namen aus einem Array hinzufügen.


    Das neue komplette Array bekomme ich hin. Alle Werte drin und doppelte Einträge sind raus.


    Ich bekomme dieses neue Array nur nicht mehr in das original Item zurück geschrieben.


    Hier ist der Code: Parameter der Funktion doc,inhalte as Variant, feldName as String


    Dim item As NotesItem
    Dim count1 As Integer
    Dim count2 As Integer
    Dim NewBound As Integer
    Dim holder As Variant
    Dim typ As Integer

    Set item = doc.GetFirstItem(feldName)

    count1 = Ubound(inhalte)
    count2 = Ubound(item.Values)

    newBound = count1 + count2 + 1 'Für einen Null Index

    Redim holder(newbound)

    holder = Arrayappend(item.Values, inhalte)
    holder = Arrayunique(holder,1)

    typ = Datatype(item.Values)
    typ = Datatype(inhalte)
    typ = Datatype(holder)

    Set item.values = holder

    AddNewRoles = True
    Exit Function



    Die Fehlermeldung ist Type mismatched bei Set item.values = holder.
    Die Datentypen sind Values -> 8712, inhalte -> 8712, holder 8716


    Da liegt das Problem.
    Hat jemand ne Idee zur Lösung?



    Gruß Tom

    • Offizieller Beitrag

    Holder ... Datentyp VariantArray
    Values ... Datentyp StringArray
    Inhalte ... Datentyp StringArray


    D.h. mache das Holder-Array zu einem TextArray und dann sollte es funktionieren.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Ich habe jetzt holder in Dim holder() As String geändert.


    Dann funktioniert die holder = Arrayunique(holder,1) nicht mehr.
    Illegal reference to array or list: HOLDER


    Arrayunique fordert einen Vartiant



    Gruß Tom

  • so geht´s:

    • Offizieller Beitrag

    da item.Values und inhalte zwei StringArrays sind, müsste holder ebenfalls ein StringArray sein.


    Keine Ahnung ob ein Cstr() über das Array holder hilft. Die dazughörige @_Funktion @Text tut es jedenfalls.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Noch ein Zusatz: wenn du nicht sicher sein kannst, ob das Feld schon vorher existiert (du kannst einen neuen item auch mit REPLACEITEMVALUE generieren), wirst du das Feld in einer Ansicht nur anzeigen können, wenn du noch ein
    item.IsSummary=True
    dranhängst. Wird gerne vergessen, deshalb der Hinweis.


    Usage
    The IsSummary property of the item defaults to False, which means that the item value cannot be displayed in a view or folder. You must explicitly set IsSummary to True if you want the value to be displayed in a view or folder.