2016-03-23 4 views
0

Ich habe einen VBA-Makro, der einige Daten aus einer LotusNotes-Anwendung bezieht. Das meiste funktioniert gut, aber ich komme nicht um die Anzahl der Elemente in einem Artikel abrufen.Anzahl der LotusNote-Artikel über VBA

Zum Beispiel:

Dim DomSession As Object 
Dim DomDir As NotesDatabase 
Dim DomContacts As NotesView 
Dim DomDoc As NotesDocument 

While Not (DomDoc Is Nothing) 
GetItemValue("name of item")(0) 
Set DomDoc = DomContacts.GetNextDocument(DomDoc) 
Wend 

getItemValue ("Elementname") (0) wird mir der erste oder einzige Wert des Elements. Wenn es jedoch mehr Elemente in einem Item gibt, passiert das als ich nicht weiß wie viele. Das Durchlaufen der Indizes (i) führt zu einem Laufzeitfehler in VBA, da es eine Schleife ausführt, bis die Liste aus dem Rahmen gerät.

In LotusScript selbst gibt es @Count, die tun sollten, was ich will, aber das funktioniert nicht über VBA. Irgendwelche Vorschläge?

+0

Ein Schuss im Dunkeln. Es ist schon lange her, dass ich mit Lotusscript gearbeitet habe. Versuchen Sie etwas wie dieses 'MyAr = doc.GetItemValue (" Name des Elements ")' und dann 'Ubound (MyAr)', um die Anzahl der Itmes zu erhalten? –

+0

Danke! Dies scheint den Trick zu machen. – Ocmer

+0

Eigentlich ist es Ubound (MyAr) +1, seit Array-Element 1 ist bei Index 0. –

Antwort

2

GetitemValue gibt ein Array mit allen Werten in einem Element zurück.

Wie bereits in den Kommentaren aus Sie einfach das Ergebnis einer Variablen und Zyklus durch Verwendung ubound zuweisen:

Dim DomSession As Object 
Dim DomDir As NotesDatabase 
Dim DomContacts As NotesView 
Dim DomDoc As NotesDocument 
Dim varValues 

While Not (DomDoc Is Nothing) 
    varValues = DomDoc.GetItemValue("name of item") 
    max = ubound(varValues) 
    For i = 0 to max 
     yourValue = varValues(i) 
     '- do whatever you want with values 
    Next 
    Set DomDoc = DomContacts.GetNextDocument(DomDoc) 
Wend 
+0

Danke für die Lösung. – Ocmer

Verwandte Themen