Domino 9 und frühere Versionen > Entwicklung

Felder auslesen?

(1/6) > >>

cococo69:
Hallo,

Gegeben:

5 Felder vom Typ Date/Time mit der Bezeichnung

VDat_1
VDat_2
VDat_3
VDat_4
VDat_5

Nun möchte ich deren Inhalt in einer Schleife auslesen.

Problem: Wie kann ich den Feldnamen in der Schleife variabel (für die laufende Zahl 1 - 5 ) angeben?

Oder geht diese etwa nur mit Hilfe eines Arrays?

Mein Code:

Sub Initialize
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   Set view = db.GetView( "AllesVortag" )
   Dim Counter As Integer
   
   Set doc = view.GetFirstDocument
   Do While Not (doc Is Nothing)   
      Msgbox doc.KdName(0)
      
      Counter =1
      While Counter < 6
         Msgbox doc.VDat_+Counter+(0) ' <<<======= hier ist mein Problem!!!!!!!!!!!!
         Counter = Counter + 1
      Wend
      
      Set doc = view.GetNextDocument(doc)
   Loop
   
End Sub

Gruß
Armin

MadMetzger:
Du arbeitest einfach mit set item=doc.Getfirstitem ( feld_name ). Dann kannst du dir die Variable feld_name nach deinem Geschmack zusammen basteln.  Schau dir die NotesItem-Klasse mal an.

So etwa sollte es gehen:

Do While Not (doc Is Nothing)  
      Msgbox doc.KdName(0)
     
      Counter =1
      While Counter < 6
         feldname = "VDat"+cstr(counter)
         set item = doc.getfirstitem ( feldname )
         Msgbox item.Value (0)
      Counter = Counter + 1
      Wend
     
      Set doc = view.GetNextDocument(doc)
   Loop

Colibri:
oder so

Counter =1
While Counter < 6
    Set item = doc.GetFirstItem("VDat_" & counter)
    Msgbox item.text      
    Counter = Counter + 1
Wend

cococo69:
Hallo Ihr Beiden,

"subber ", es funzt! Danke!

@Alexis
der Vollständigkeit halber (hast dich bestimmt nur vertan):

--- Zitat ---Msgbox item.Value (0)
--- Ende Zitat ---
muss so heissen: Msgbox item.Text

@Colibri
dein Code funktioniert 100%!!!

Nachmals Danke!

Gruß Armin

koehlerbv:

--- Zitat ---Msgbox item.Value (0)

muss so heissen: Msgbox item.Text
--- Ende Zitat ---
Muss nicht - es kann ! Es kann auch nur das "s" gefehlt haben:
MsgBox item.Values (0)

Das Verfahren von Colibri würde ich nicht einsetzen:

--- Code: ---Set item = doc.GetFirstItem("VDat_" & counter)
--- Ende Code ---
Das ist wegen des an sich unzulässigen Mischens von Datentypen (String und Integer) sehr unsauber - die Umwandlung mit Cstr sollte schon verwendet werden. Ob das Vermischen der Datentypen in der nächsten LS-Version noch funktioniert, kann nicht garantiert werden.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln