VBS - In einer Schleife auf Objekte zugreifen

Gast #1060602
Lesenswert?

Hallo zusammen,

ich bekomms einfach nicht hin in einer Schleife auf Objekte zuzugreifen, 
vieleicht kann mir hier einer einen Anstoss geben

Ich möchte in einer Schleife auf den Inhalt von Editboxen zugreifen.

mystring = editbox1.Text & editbox2.Text... usw  in einer Schleife.

Wie bekomm ich die Nummer der editbox variabel?

mein Versuch mit:

tempstring = "editbox" & x & ".Text" und dann den zusammengesetzten 
String zu verwenden ergibt ja für den Inhalt von tempstring:
editbox1.Texteditbox2.Text....
Ich hätte hier aber gern den Inhalt der editboxen.

Gruß Micha
Gast #1061522
Lesenswert?

Hallo Micha,

du könntest auch ein Collection-Objekt von Visual Basic benutzen.

siehe auch http://msdn.microsoft.com/en-us/library/a1y8b3b3.aspx

Bsp.:

' neue Instanz vom Collection-Objekt
Dim colText As New Collection()

Dim strString As String

' Hinzufügen der einzelnen Texte zum Collection-Objekt
colText.Add(editbox1.Text , "Box1")
colText.Add(editbox2.Text , "Box2")
colText.Add(editbox3.Text , "Box3")
colText.Add(editbox4.Text , "Box4")

' Schleifendurchlauf über die Texte aller Editboxen
For each strString in colText
    msgbox("Inhalt der Editbox: " & strString)
Next strString

Der Zugriff auf einzelne Elemente ist dann auch in der Form

  Dim Text1 as String

  Text1 = colText.Item("Box1")

möglich.

Über alle Elemente auch in der Form

 dim i as Integer

 For i = 1 to 4

   msgbox("Der Inhalt von Editbox" & CStr(i) & _
          " ist " & colText.Item("Box"&CStr(i)))
 next i

Ich kann die angebenen Codefragment leider nicht testen, musst also 
einfach ausprobieren.

Gruß
Gast #1075216
Lesenswert?

VBS und editbox, lass mich raten, das ist eine HTA-Application. Wenn dem 
so ist, kannst du mit

   Window.Document.All.Item("editbox" & i).Text = "wert"

oder

   a = Window.Document.All.Item("editbox" & i).Text

darauf zugreifen. In HTA können mehrere Textfelder, wie in VB6, den 
selben Namen haben. Dann ist das Problem mit

   For Each oText in Editbox
      oText.Text = "test"
   Next

zu lösen. VBScript, VB6 oder HTA? In VBScript gibt es keine Textboxen 
und dergleichen, ausser du bindest irgendwelche Active-X-Objekte ein die 
Textboxen enthalten. Aber wozu? Die wirst du in VBS niemals zu Gesicht 
bekommen.

Wenn du was zu spicken haben willst, kannste dir gerne den Code aus 
meinem ATMega8 Flash Tool unter atm.pravec.de reinziehn. Da sind jede 
Menge Textfelder, DopDowns und alles kreuz und quer drin. HTA kann ich 
nur empfehlen. Einfacher gehts wirklich nicht mehr.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren